[erlang-questions] Erlang for youngsters
Mon Jun 16 12:50:29 CEST 2014
I'm not a teacher at all and I don't pretend to be objective here. But
my and my colleagues' experiences with Erlang tell me that Erlang is
simple to learn. Most of us came to the current company with _zero_
experience in Erlang or any other functional programming experiences.
I personally was a complete PHP guy. My first impression on Erlang was
"it's very different and hard to learn". But in two weeks we was able
to read and understand Erlang code and write simple stuff.
My point is that Erlang is not hard-to-learn, but rather
hard-to-realize-it-is-easy-to-learn. It's easier than one can imagine.
Perhaps, that could be a statement to spread out.
Just thinking aloud.
On Mon, Jun 16, 2014 at 11:51 AM, Torben Hoffmann
> The wonderful thread on "Beginners tutorials"
> (http://erlang.org/pipermail/erlang-questions/2014-June/079485.html) that Joe started
> after the EUC last week has touched something in me and I want to get some feedback
> on my ideas.
> I think that Joe's original suggestion in the "Beginners tutorials" thread can do
> something with regards to easing people into Erlang, but it cannot be the only thing.
> I saw Garrett's wonderful talk at the EUC last week - Why the Cool Kid's Don't Use
> Erlang (http://www.erlang-factory.com/euc2014/garrett-smith) - and it suggested a
> number of things we, as a community, can do better.
> One thing that stood out in relation to this thread was HardToLearn.
> HardToLearn influences a lot of things, but it also drives the worry
> FindingDevelopers, which bad for the career prospects for all of us.
> See Garrett's talk (when online) and you will understand.
> Why is Erlang HardToLearn?
> One can point to documentation and say it is not optimal.
> One can ask for books on Erlang Concurrency Patterns as Joe did.
> But I feel there is a more fundamental problem that we need to address:
> how to think like an Erlanger.
> Erlang is a concurrent functional language with a unique failure model.
> More than 2 nines of the people being taught anything on programming will be exposed
> to procedural or object oriented languages with exceptions and be told that threads
> are hard (they are 'cause they will make you loose your hair).
> I think that a learning resource focused on teaching people the Erlang model from the
> ground up would be a great improvement. A clear narrative around how do we solve a
> problem the Erlang way. Teaching the basic constructs is not the problem.
> My initial target for such a learning resources would be young people in the higher
> grades of elementary school, say 12-15 years. Why? Because I want to influence them
> before their minds are totally corrupted by other programming models.
> I don't think we would have to dumb anything down in particular for this group - we
> just have to find a cool example and organise the learning around how to become so
> good that one can solve such a problem.
> Some sort of game will probably be the best candidate, say, some sort of Transport
> Tycoon clone?!?!
> And now for the controversial part of my idea: this should probably be done using
> Elixir plus something for the GUI.
> Yes, I said the other E word, so I'm ready to be stoned ;-) 
> Why Elixir?
> Programming Elixir requires the same understanding of the Erlang concurrency model in
> order to program well. Otherwise you are just doing Ruby-on-BEAM, which is kinda lame
> and misses the boat totally.
> So using Elixir would allow us to expose people to the Erlang model, which I think is
> the main point. The more people that uses the BEAM, the better for the
> FindingDevelopers problem.
> What is better about Elixir from a learning standpoint is, in my highly subjective
> opinion, that you can get started quite easily with the mix tool.
> Furthermore, the Elixir syntax is more familiar to youngsters. I asked my 12 year old
> son to have a look in the "Introducing Elixir" book and his initial reaction was
> "That's easy to read, it looks like lua." Minimising the amount of surprise is a good
> Given that I think games are awesome for teaching there needs to be some sort of GUI
> element at some point and here I'm leaning towards Elm (http://elm-lang.org) since it
> is functional, but other suggestions are most welcome.
> Am I on the right track to anything with this?
> Is there a need for such a learning resource?
> Is Concurrent, Functional Programming relevant enough to warrant putting some energy into?
>  https://www.youtube.com/watch?v=SYkbqzWVHZI
> Torben Hoffmann
> Erlang Solutions Ltd.
> Tel: +45 25 14 05 38
> erlang-questions mailing list
More information about the erlang-questions