<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:14pt"><div><span><font size="4">For what its worth, in the mid 80's, my University's Computer Science program required every student to take a year-long</font><span style="font-size: 19px;"> 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.</span></span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal;"><span style="background-color: transparent;"><font size="4"><br></font></span></div><div style="background-color: transparent;"><span style="background-color: transparent;"><font size="4">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, <span style="font-style: italic;">per</span><span style="font-style: italic;"> se,</span> (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.</font></span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; font-style: normal;"><span style="background-color: transparent;"><font size="4"><br></font></span></div><div style="background-color:
 transparent;"><span style="background-color: transparent;"><font size="4">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</font></span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; font-style: normal;"><span style="background-color: transparent;"><font size="4"><br></font></span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; font-style: normal;"><span style="background-color: transparent;"><font size="4">... now that was probably worth $.02 </font></span></div><div style="font-family: arial, helvetica, sans-serif; font-size: 14pt;"><br></div>  <div style="font-family: arial, helvetica,
 sans-serif; font-size: 14pt;"> <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Richard O'Keefe <ok@cs.otago.ac.nz><br> <b><span style="font-weight: bold;">To:</span></b> Garrett Smith <g@rre.tt> <br><b><span style="font-weight: bold;">Cc:</span></b> erlang-questions@erlang.org <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, January 22, 2013 11:44 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [erlang-questions] hobbyists, erlang, elixir (was Improve $handle_undefined_function)<br> </font> </div> <br>
<br>On 23/01/2013, at 2:56 PM, Garrett Smith wrote:<br>> I'm almost inclined to think the real solution (assuming there's a<br>> problem, and I do) is that instructors *teach* this stuff! Why the F<br>> are students learning to program with *Java*<br><br>Ah, said The Man In The Corner, drawing up his chair.<br>Let me tell you a story.<br><br>Once upon a time (about 1992ish) in a land where the moles<br>have beaks and swim and the deer jump on their hind legs<br>(Australia), a certain computer science department (RMIT)<br>decided that Pascal had reached its use-by date.  What shall<br>we do?  What shall we replace it with?  Set up a committee!<br>I was on the committee.  We set up a short list.<br> (1) Scheme.<br>     Tiny language, amazingly capable, REPL so you can try<br>     things out, implementations for all the machines we<br>     cared about.  And Rob Hagan at Monash had shown
 that<br>     you could teach students more COBOL with one semester<br>     of Scheme and one semester of COBOL than you could<br>     with three semesters of COBOL.<br> (2) Miranda.<br>     The commercial precursor of Haskell.<br>     Melbourne University were also looking at this (or had<br>     already switched to it) which would make it easier to<br>     pick up some of their students.<br> (3) Ada.<br>     Close enough to Pascal that our staff were comfortable with<br>     it and our material would not need major revision.<br>     A better Pascal than Pascal.<br>     Handled concurrency about as nicely as an imperative language can.<br><br>What was the deciding factor?<br><br>Schools.<br><br>Our deliberations leaked, and we started getting phone calls from<br>careers masters saying "if you go all theoretical [read: (1) or (2)]<br>we'll tell
 our pupils not to study with you."<br><br>There's no point teaching the ideal course if nobody comes,<br>so (1) and (2) were abandoned and Ada was chosen.<br><br>Actually, I like Ada.  And that's why I was disappointed a few years<br>later.  The cry went up<br>  - Ada is not sexy!<br>  - Ada has no native graphics!<br>    (X11 bindings, yes, but you needed to read C oriented books to<br>    learn how to use X11 and then translate that to Ada.)<br>  - Ada does't run in your browser!<br>  - Ada doesn't have suitable books!  (I don't agree.)<br>  - Students won't be motivated!<br>I was not on the committee that switched to Java.<br><br>The belief was that if students couldn't make flashy graphicy<br>things in their web browsers -- this being a time when HotJava<br>was still around -- they would fall away and what's the good<br>of teaching the >right< stuff to an empty classroom?<br><br>The
 department I'm in now went straight from Pascal to Java; it was<br>not so much that we abandoned Pascal as that it abandoned us.<br>There were plenty of Java books to choose from, ranging from bad<br>to very bad, but that's Sturgeon's Revelation for you.<br><br>One problem is that Computer Science departments simply do not have<br>the time to teach everything they need to teach.  Students want to<br>leave in 3 years with qualifications an employer will like, and<br>employers want 'practical' languages in CVs.  I have a colleague<br>who cannot spell because he was taught to read using the Initial<br>Teaching Alphabet, so I'm less convinced about the educational<br>benefits of neat languages than I used to be.<br><br>_______________________________________________<br>erlang-questions mailing list<br><a ymailto="mailto:erlang-questions@erlang.org"
 href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>http://erlang.org/mailman/listinfo/erlang-questions<br><br><br> </div> </div>  </div></body></html>