The programming language market (was Re: [Haskell-cafe]
Why functional programming matters
catamorphism at gmail.com
Sun Jan 27 22:25:52 EST 2008
On 1/27/08, Dipankar Ray <dipankar at jfet.net> wrote:
> Hello Jerzy and Bulat,
> Thanks for your perspectives. Bulat, I can understand that you find it
> shocking that the folks at Moscow University still study Lisp, but I
> wouldn't be so quick to condemn them for being dinosaurs. After all, they
> just stopped teaching the SICP course (using Scheme) at MIT, and I don't
> believe that they replaced it with an intro to CS course that uses (say)
> Haskell or ML! Nor has Berkeley, far as I know.
Correct -- CS 61A at Berkeley (the 6.001 analogue there) is still
taught in Scheme, and I suspect that anyone who wants to change that
will have to pry the course out of Brian Harvey's cold, dead hands.
> What I mean by this is that if I look at the CS programs at Berkeley, MIT,
> CMU, I don't see a huge emphasis on PL. Looking now at the MIT
> opencourseware offerings in EECS, I see no undergrad course that suggests
> that you'd learn anything about modern type theory.
As a former graduate student instructor for the undergrad compiler
class at Berkeley, I can confirm that this statement is mostly but not
quite true for Berkeley. (As Dan Licata pointed out, CMU is an
exception here; I get the feeling MIT is more like Berkeley than MIT
in this respect.) The compiler class there (CS 164) is required for
all CS majors, and depending who's teaching it in a given semester,
students might well get to see formal presentations of both static and
dynamic semantics for a simple object-oriented language (at least the
the time when I taught a section of the class, though I see that right
now their target language is Python.) Granted, students have the
option of either Java or C++ for the implementation languages, which
is less than ideal.
> Of course we know here of success stories involving modern fp languages.
> But there is no haskell or ml book that has had close to the influence of
> K&R's C book. One might argue that adoption on that scale is not the goal
> of the haskell community (was it Kernighan, Ritchie, or Thompson's goal? I
> think not), but still, it's weird to me that:
At least based on my own experience and that of my peers, I think
people from my generation who got interested in FP languages mostly
got turned on by a particular teacher who was really into it, rather
than by a particular book.
> 1) we're clearly on to something, but still
> 2) many smart people who are interested walk away frustrated (not so easy
> to learn (is the hardness necessary? perhaps?), relative to K&R, for
For #2, note my comment above about teachers. It's always easier and
more motivating to learn when you have someone a little more
experienced to guide and encourage you. But for FP, there are fewer
people around to do the teaching, thus more people get discouraged. I
feel like I'm saying something tautological here, though: if nobody
teaches, nobody can learn.
For some reason or another, I think being self-taught when it comes to
FP is hard in a way that being self-taught when it comes to
programming in general isn't -- perhaps it's for the same reason that
being a self-taught mathematician is hard, though some people pull it
off. Personally I think I'm pretty self-motivated, and am self-taught
in a lot of other areas, but I don't think I ever would have learned
Haskell on my own. So what does that say about programmers as a whole?
> 3) most of the canonical US universities for CS (MIT, Berkeley, Stanford,
> CMU, etc) basically don't teach haskell or ML, or even talk much about it,
> relative to how much they talk about, say, Java.
> It's one thing that companies don't move forward; yet another thing that
> Universities don't either. Why is that? Why, in 2008, is Java taught more
> than Haskell?
There's really only one reason for this: at least in the United
States, universities are becoming more and more like businesses, and
faculty feel they have to give students what they want in order to
"compete". Computer science undergrads, as a whole, want to learn Java
or C++ "so they can learn something that'll be useful and help them
get a job." The faculty know this is ridiculous, but a lot of them
buckle under anyway because they need to boost their enrollments. The
notion of the university as a place where students pay faculty members
so that they might benefit from the vaster experience and judgment of
the faculty -- which means deferring certain decisions to those who
are wiser than you -- seems to be going out the window along with
paper registration cards.
Moreover: At Berkeley, the faculty didn't teach Haskell or ML because
they didn't believe in Haskell or ML. If you personally don't think
that a language is ever going to be adopted -- if you think that it's
elegant but will never be practical -- it's going to be hard for you
to sell it to a 300-person hall full of undergrads, most of whom are
likely to start checking email the moment you say something that bores
Disclaimer: This entire message consists of my personal opinions and
does not represent the opinions of anybody else, and probably won't
represent my opinions either in another day or two.
Tim Chevalier * http://cs.pdx.edu/~tjc * Often in error, never in doubt
"don't you understand / in the day to day / in the face to face / i
have to act just as strong as i can / just to preserve a place where i
can be who i am" -- Ani DiFranco
More information about the Haskell-Cafe