[erlang-questions] Erlang for youngsters

Mark Nijhof mark.nijhof@REDACTED
Mon Jun 16 11:01:11 CEST 2014

On Mon, Jun 16, 2014 at 10:50 AM, Garrett Smith <g@REDACTED> wrote:

> On Mon, Jun 16, 2014 at 9:51 AM, Torben Hoffmann
> <torben.hoffmann@REDACTED> wrote:
> -snip-
> > 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?!?!
> I don't have enough experience teaching programming to this age group
> to provide anything more than a hunch. But I suspect that the Erlang
> way, which is hard enough for very seasoned programmers to grok, might
> be a bit ambitious for these young learners.

Interesting, I am planning on giving a programming course at my kids school
and was planning on using Erlang as well. I was thinking that because they
don't have proper experience with other less tradition languages like the
common OO languages that they might not face the same problems we do when
adapting this new paradigm. The Erlang language itself is rather simple and
straightforward so I don't think that is a problem in its own. Infect using
something like Elixir might even add too many variance to the whole thing
(I wasn't planning on using that). You can gradually build up towards the
different patterns in Erlang, and once they get that they will thank you
for the rest of the programming live.

> I'm speaking in particular about the model that emerges when you
> isolate processes. It changes everything: your approach to building
> software (move from state oriented to activity oriented), error
> handling (move from defensive measures to assertive/let-it-crash),
> program structure (from monolith to system), and so on. The benefits
> of this shift are hard to get across, in my experience anyway. I wish
> it wasn't, or I wish I was better at communicating.
> I think maybe just teaching a new language might be enough ambition
> for this group. I don't mean to throw cold water on this. Just
> thinking out loud.
> > 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 ;-) [1]
> >
> > 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
> > thing!
> All of these points are true -- Elixir has a huge advantage here.
> Which is why I'm afraid you must be stoned.
> > 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.
> All I can say for sure is that if you can create a simple developer
> experience around building anything related to *Minecraft* you have a
> chance at capturing the minds of an entire generation of programmers.
+1 on minecraft, something I was thinking about is an web app that lets
students communicate with each other. Like facebook but for the class. Not
a game but it enhances the group feeling of the class, and might even be
useful for the school as well. A game is going to take a lot of extra stuff
to make really engaging.

> > 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?
> What does the 12 year old say?

Please keep us (me) updated on this!

> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

Mark Nijhof
t:   @MarkNijhof <https://twitter.com/MarkNijhof>
s:  marknijhof
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140616/68384c99/attachment.htm>

More information about the erlang-questions mailing list