How Heraclitus would Design a Programming Language
CowboyRobot writes "Developer of Smalltalk Alan Kay has an interview on ACM Queue where he describes the history of computing and his approach to designing languages. Kay has an impressive resume (PARC, ARPAnet, Atari, Apple, Alan Turing Award winner) and has an endless supply of memorable quotes: 'Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term,' 'Once you have something that grows faster than education grows, you're always going to get a pop culture,' 'most undergraduate degrees in computer science these days are basically Java vocational training,' 'All creativity is an extended form of a joke,' and 'nobody really knows how to design a good language.'"
Perl fills a 'tiny short-term need'? Is that why Morgan Stanley, RyanAir, Amazon, Ticketmaster and even increasingly Google to name but a few are using it for real, business-critical applications?
I'm so sick of all this anti-Perl talk. I write powerful applications in Perl and they are definetly not 'write only'. If anyone writes a 'write only' program in any language then it is the programmer who is at fault. Perl assumes a bit of intelligence on the programmer's side, rather than adopting Java's policy of bondage. And contrary to what a previous comment said, Perl is a general purpose language (with excellent built-in data structures and regular expressions, and a convenient and expressive syntax).
This guy might have an impressive [sic] resume, but he is badly showing his ignorance about Perl.
So I don't particularly like his pigoenholing of lisp - he says there were three working extensible languages, and smalltalk was one of them, kindof not mentioning however, that lisp _wrote the book_ on extensible languages.
I wouldn't be that hard on him.
If you search him further you'll see he has probably done more to promote Lisp than most others whose speciality isn't _already_ Lisp.
In his Turing award lecture this past October at OOSPLA 2004, he told the audience (paraphrased): "you owe it to yourself and your profession to seriously learn Lisp".
-Stu
If you want a quick and simple answer, you can't go wrong learning Python and/or C#: they are good, useful compromises between language design and practicality and if you do anything with computers, you'll probably find a use for them at some point. And they support and teach what are generally considered good mainstream programming practices. (Python has excellent numerical support, by the way, and may be a reasonable alternative to MATLAB if you don't depend on toolboxes that aren't available for Python yet.)
It is perfectly fine, though, to stick with C and MATLAB as long as they work for you; programming languages are a means to an end, and everybody's needs are different. I was using MATLAB for many years even though I thought the language sucked, and I stopped using it only when the language actually started getting in the way too much.
First off, every language has its purpose, and just because some of these languages aren't as well designed as the author's languages, that's not a good enough excuse to bash them.
When someone like Alan Kay, with a very inventive and academic background, criticizes the workhorse stuff out in the "real world", he's pointing out where the ideas don't work, rather than the thing itself. Basically, he's thinking on another level than the one most of us are.
He's not really saying Java just sucks. He's Java sucks insofar as it was founded on some bad ideas. That doesn't mean you can't or shouldn't do real work in it. It just means that there are limits to what you can do with it. Someone like Alan Kay can't really get over this, which is part of what makes him a genius.
Paul Graham (who, of course, is a big fan of Lisp), has written quite a bit on language design. I think I would have reacted to this interview the same way you have had I not read The Hundred-Year Language, and others. I highly recommend them.
Don't become a regular here -- you will become retarded.