[erlang-questions] "Erlang as a First Language" -- crazy? or just stupid?
Garrett Smith
g@REDACTED
Mon Dec 21 19:22:36 CET 2009
On Sat, Dec 19, 2009 at 11:33 PM, Michael Turner <leap@REDACTED> wrote:
> What are the first-language learnability issues with Erlang? I'm poorly
> qualified to think about this.
My college level intro course in Computer Science presented
"algorithms" as a building block for the rest of the couse. We used
Pascal.
I was later at the University of Edinburgh where they used ML. The
introductory phases in that course centered on functions, recursion,
and logic.
I think imperative languages are far more helpful in helping students
grok the traditional "stack" of computers and software, at least
moving from the language toward the hardware. This journey:
Pascal -> C -> assembler -> microcode/chipset
I think is very intuitive and doesn't distract the student with higher
level abstractions early in the learning process.
So if the student's goal is to move toward Von Neumann architectures,
etc. I'd start with C or even basic. Those may seem like dated
languages, but they're great starting places if you're next step is
assembler.
As a language for learning functional programming, I think Erlang is a
great choice - because it's very both simple and extremely practical.
Joe's book, as an example, shows how quickly you can get down to using
the language to build cool little programs.
One of my stumbling blocks in learning (and using) ML was that it
didn't give me a sense of "writing software". I felt more like a
mathematician or logician using a computer than a software developer.
(I haven't kept up with ML - my experience was waay back in the day -
so it may be very different today.)
Erlang is being used by commercial and open source hackers to build
*amazing* software. If you're approaching a student of computer
science, you'd be hard pressed to find a functional language that
provided a more immediate sense of gratification than Erlang - and IMO
that should be a factor in deciding what to teach.
Garrett
More information about the erlang-questions
mailing list