[erlang-questions] Beginners tutorials

Loïc Hoguin essen@REDACTED
Thu Jun 12 17:10:46 CEST 2014

The simple nodejs example works because it's a nodejs example and not a 
Javascript example. Someone who doesn't know Javascript (pretty much 
equivalent to someone who doesn't know programming at all) won't 
understand it. In particular it has a number of objects in it, and these 
are not what you start learning a language with.

Most people who look at Erlang necessarily have to learn a number of 
things that people who look at nodejs don't. You can't dumb it down as 
much as nodejs can.

The other issue would be that teaching someone to do that in Erlang 
would be counter-productive. Do you really want to teach people to do 
that and then tell them they're doing it wrong? I think the bigger 
difference here is that nodejs uses a scripting language vs Erlang's 
compiled/run in a VM language. There's simply more to do and learn 
before you can start something. You have to compile the file. You have 
to start the VM with the proper paths set. And so on. Since you have to 
do all that, why not explain it properly from the beginning?

That's why the Cowboy guide starts with building a release. It takes 
about five minutes to go from nothing to your first release running a 
hello world application. Of course that's not as fast as nodejs, but we 
simply can't go that fast anyway. We're not a scripting language. Still 
I think that's a pretty quick way to start.

The chapter is here if you want to take a look and provide feedback: 

On 06/12/2014 04:54 PM, Joe Armstrong wrote:
> Re: Garrett's great talk at EUC2014
> The point has been made many times before that
> "There are no easy Erlang getting started guides"
> So I thought I'd take a look at Node.js.
> The node js home page (node.js) starts with a simple example
> <quote>
> var http = require('http');
> http.createServer(function (req, res) {
>    res.writeHead(200, {'Content-Type': 'text/plain'});
>    res.end('Hello World\n');
> }).listen(1337, '');
> console.log('Server running at');
> To run the server, put the code into a file example.js and execute it
> with the node program from the command line:
> % node example.js
> Server running at
> </endquote>
> It's pretty easy to knock up an almost identical example in Erlang -
> using any of the well-known web
> servers in the background, unfortunately this has not been done, or if
> it has been done
> it's not easy to find the examples (or if there are examples I can't
> find them)
> I was vaguely thinking of making some examples that are more-or-less
> isomorphic to the
> node.js examples and then applying small transformation steps to turn
> then from idiomatic node.js code to idiomatic Erlang code.
> Although I could find a simple hello world example in node.js I could
> not find a tutorial that
> started with a simple example and then built on it in very small steps
> adding routing, authentication,
> database access and so on.
> Does anybody know of some examples of node.js that could be used for this.
> Cheers
> /Joe
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

Loïc Hoguin

More information about the erlang-questions mailing list