[erlang-questions] node.js vs erlang

zxq9 zxq9@REDACTED
Sat Jun 21 01:58:25 CEST 2014


On Friday 20 June 2014 09:02:29 Roger Lipscombe wrote:
> On 19 June 2014 11:57, zxq9 <zxq9@REDACTED> wrote:
> > Django users certainly don't. The Django documentation and the Python
> > documentation -- two non-trivial documentation projects if there ever were
> > -- are primary examples of how to speak directly to an open source
> > community in its own language while making things approachable without
> > dumbing anything down.
> 
> Personally, I find the Python documentation completely unapproachable.
> Too many details, too few examples.

I've never heard that, but you can hardly be the only one to feel that way. In 
your opinion, how does it compare to the Ruby or Perl documentation? Django?

I highlight the Python docs because they provide a complete tutorial and then 
pass to the library reference. The tutorial is much more decomposable than 
most (its not a walk-through of developing a complete project), and its 
surprisingly complete with regard to feature coverage.

You're right that the Python docs do not include many (any?) examples of 
complete projects (outside of the package/distribution section), but I believe 
they provide sufficient examples of specific features in isolation to be 
useful. This seems to be the exact thing you dislike about them. They have 
proven useful enough, anyway, that someone totally new to Python can jump into 
the code of an existing project and start learning on the fly. It worked for 
me (I understand this is a dangerous phrase, though).

Note the Python docs do not teach OOP or FP. I don't think the Erlang docs 
should, either.

Perhaps its that complete application-package type examples tend to occur in 
framework project documentation, not in language documentation. So, for 
example, after skimming over the Python tutorial one can work through the 
Django tutorial and publish a simple application from that. From there they 
tweak and modify and, viola!, have a trivial thingy running that does what 
they like.

But from there, of course, they run into some serious issues. ORMs simply 
don't work well for non-trivial cases. The excited coder now is forced to 
learn more about Python and to return to the docs, but this time to the 
library reference, not the tutorial. At some point he must understand more 
about the database bindings that are letting him talk to Postgres, and he 
finds relative uniformity among the Django, Python and psycopg2 docs (we can 
learn a lot from this detail, I think). Ultimately he must learn about 
Postgres itself, and that means learning about relational concepts if he 
didn't know them already -- and the Postgres docs fill the gap remarkably 
well.

This is a confluence of docs from totally different projects written at an 
appropriate level for their purpose. I can't imagine the core Erlang docs ever 
being so comprehensive without an absolutely staggering amount of effort.

Few people start with an initial goal of learning Ruby; they start with a 
desire to use Rails or work on Puppet or something else -- Ruby is an artifact 
of implementation. Few people (who get very far) start with an initial goal of 
learning Python, either; most start with a desire to use [any killer app in 
Python], and wind up learning a lot about Python along the way. I suppose the 
key is to find that killer project everyone wants to work on or killer 
framework everyone wants to use -- write it in Erlang, and diligently garden 
the docs of that other project.

-Craig

(Sorry for the long message. This turned out to be part live brainstorm and I 
don't have enough time to shorten it just now.)



More information about the erlang-questions mailing list