I'm in NYC this week for the 2003 Lisp Conference. There's lots of great work going on in Perl at the moment, and lots of huge improvements to existing projects. But Perl still seems a little, er, stagnant at the moment. What's really fresh and exciting about Perl today? What's putting Perl head and shoulders above other tools?
I came to see what people are doing in Lisp and Scheme today, and it's been a source of inspiration. From the point of view of a pragmatic programmer, there are lots of cool things in Lisp and Scheme, and lots of things the Lisp/Scheme community have got hopelessly wrong (unless you're an academic who needs to prove Lambda Calculus or something).
There have been a couple of speakers who took the position of «we're using the greatest programming language in the world, except no one agrees with us». A couple of talks have taken the opposite approach, namely «here's what the rest of the world is doing, they're wrong, and here's how to do it right with the tools we've been using for decades». Much of that is obviously due to the fractious, and hopelessly academic bent of these communities.
However, there have been many good, constructive and informative talks as well. A few highlights:
- Gerry Sussman co-authored a book on Classical Mechanics and used Scheme in place of standard mathematical notation. He claims that most textbooks get the material hopelessly wrong, and occasionally revel in the fact that the equations are impenetrable. Physicists learn the material through osmosis, in spite of the canon. I'm hoping he gets to do a similar text for Circuits.
- AspectJ is really cool. Some of the features of CLOS are easily recognizable as an early pre-release of AspectJ.
- Paul Graham presented a first draft of the Arc spec, and stated his desire to create "a Lisp that doesn't suck". John McCarthy was in the front row to correct his missteps and clarify some of the original goals behind Lisp in 1959.
- The vast majority of the security bugs we're fixing these days are simply impossible in Scheme. Constructs eval STRING are pretty horrid, and not possible in Scheme (because eval works on an SEXPRs, not raw strings).
- SXML is really cool. SEXPRs and XML are isomorphic, something John McCarthy noted in 1979.
- Scheme programmers hate Java as much as we do (if not more). But they're a pragmatic bunch, and recognize a good idea when they see it. Like writing a J2EE app using Java, Scheme (SISC, to be precise) and XSLT. The app is orchestrated through Scheme, Cocoon provides a transformation pipeline, designers hack XSLT, and support staff deals with the J2EE apps they know and love. Everybody wins.
John McCarthy has the closing keynote tomorrow.
cheers
inkdroid on 2003-10-14T22:59:27
Thanks for the update Ziggy. I saw that this conference was going on, and couldn't justify (get $$$) for going, since we don't use Lisp/Scheme here at work. While it's still in the works, I'd say that the proximity of a
Perl running on a language agnostic interpreter (Parrot) is pretty exciting stuff. I'm totally uninitiated in parrot internals, but I see a scheme subdirectory in my ~/dev/parrot/languages directory, so it seems that Parrot may very well read Scheme someday (perhaps today). The things I find most exciting about Perl are what she does in the spaces between languages, and the QA work that has been done for the past few years (Schwern et al's work with Kwalitee and testing in particular). I'd also be really interested to hear more of the
CPAN ideas that came out of the recent meeting of the minds in London. I think you've got the right idea attending these language conferences (I remember you went to the Python gig last year)...it's good for ideas and inspiration to get out and see the landscape.