[erlang-questions] hobbyists, erlang, elixir (was Improve $handle_undefined_function)

James Rosenblum jrosenblum@REDACTED
Wed Jan 23 15:29:08 CET 2013

For what its worth, in the mid 80's, my University's Computer Science program required every student to take a year-long course called Structure and Interpretation of Computer Programs. It was the *first* class any CS major took, and it was taught exclusively in Scheme. As far as I know they continue this practice.

I have been grateful for that experience ever since and have wished that the young-guns coming into my organizations had had a similar experience - so often their experiences and thinking has been locked into an "OO - Java (or C#) - hey JavaScript is Functional - Apache" mind-set. There is nothing wrong with this, per se, (and many of them are super talented), but I feel like I had a real advantage by my first experience being what it was. I have since learned and used a number of languages in academic and industry settings (Clipper, C, C++, Erlang, Pascal, SmallTalk, Visual Basic, etc.), but I continue to be served by that first-class.

I am convinced of the educational benefits of a functional language that better allows one to think about the nature of a problem to be solved and the structure of a solution as opposed to wrestling with the language

... now that was probably worth $.02 

 From: Richard O'Keefe <ok@REDACTED>
To: Garrett Smith <g@REDACTED> 
Cc: erlang-questions@REDACTED 
Sent: Tuesday, January 22, 2013 11:44 PM
Subject: Re: [erlang-questions] hobbyists, erlang, elixir (was Improve $handle_undefined_function)

On 23/01/2013, at 2:56 PM, Garrett Smith wrote:
> I'm almost inclined to think the real solution (assuming there's a
> problem, and I do) is that instructors *teach* this stuff! Why the F
> are students learning to program with *Java*

Ah, said The Man In The Corner, drawing up his chair.
Let me tell you a story.

Once upon a time (about 1992ish) in a land where the moles
have beaks and swim and the deer jump on their hind legs
(Australia), a certain computer science department (RMIT)
decided that Pascal had reached its use-by date.  What shall
we do?  What shall we replace it with?  Set up a committee!
I was on the committee.  We set up a short list.
(1) Scheme.
     Tiny language, amazingly capable, REPL so you can try
     things out, implementations for all the machines we
     cared about.  And Rob Hagan at Monash had shown that
     you could teach students more COBOL with one semester
     of Scheme and one semester of COBOL than you could
     with three semesters of COBOL.
(2) Miranda.
     The commercial precursor of Haskell.
     Melbourne University were also looking at this (or had
     already switched to it) which would make it easier to
     pick up some of their students.
(3) Ada.
     Close enough to Pascal that our staff were comfortable with
     it and our material would not need major revision.
     A better Pascal than Pascal.
     Handled concurrency about as nicely as an imperative language can.

What was the deciding factor?


Our deliberations leaked, and we started getting phone calls from
careers masters saying "if you go all theoretical [read: (1) or (2)]
we'll tell our pupils not to study with you."

There's no point teaching the ideal course if nobody comes,
so (1) and (2) were abandoned and Ada was chosen.

Actually, I like Ada.  And that's why I was disappointed a few years
later.  The cry went up
  - Ada is not sexy!
  - Ada has no native graphics!
    (X11 bindings, yes, but you needed to read C oriented books to
    learn how to use X11 and then translate that to Ada.)
  - Ada does't run in your browser!
  - Ada doesn't have suitable books!  (I don't agree.)
  - Students won't be motivated!
I was not on the committee that switched to Java.

The belief was that if students couldn't make flashy graphicy
things in their web browsers -- this being a time when HotJava
was still around -- they would fall away and what's the good
of teaching the >right< stuff to an empty classroom?

The department I'm in now went straight from Pascal to Java; it was
not so much that we abandoned Pascal as that it abandoned us.
There were plenty of Java books to choose from, ranging from bad
to very bad, but that's Sturgeon's Revelation for you.

One problem is that Computer Science departments simply do not have
the time to teach everything they need to teach.  Students want to
leave in 3 years with qualifications an employer will like, and
employers want 'practical' languages in CVs.  I have a colleague
who cannot spell because he was taught to read using the Initial
Teaching Alphabet, so I'm less convinced about the educational
benefits of neat languages than I used to be.

erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130123/a910b759/attachment.htm>

More information about the erlang-questions mailing list