Thursday, March 29, 2007

Brand New You're Retro

Lisp and Smalltalk are sometimes thought of as the languages of the gods. They are strange. They are esoteric. They are pure.

They are JavaScript and Ruby, respectively.

Ruby's object structure and "metaprogramming" emphasis are so thoroughly Smalltalk that many Smalltalkers consider Ruby a Unix dialect of Smalltalk. (That's actually downplaying the Perl influence, but it's still a very relevant view.) And JavaScript is so Lispy that you can run through The Little Schemer in it and even, if you're crazy enough, implement a Scheme interpreter in it too.

I'm resisting the temptation to say that "X is the new Y" as strenuously as I can, but it's a powerful temptation. Lisp and Smalltalk gurus are as famous for grudgingly refusing to ever admit defeat as they are for incredible feats of wizardry. But the reality is, if you look at the Web development landscape in 2007, Lisp and Smalltalk appear to be winning. Is this another bubble, tinier and yet stranger than the first one? The Lisp and Smalltalk in disguise bubble? Or is it something more familiar?

In the movie Aliens, there's a scene where the Marines enter the space colony, and there's one particular shot in that scene which is just a great shot of them moving down a hallway with some flashlights. Mind-numbingly simple, but you can't watch a science fiction movie made after 1986 without seeing a rehash of that moment. Even today, in 2007, there was a version of it in a recent episode of the new Battlestar Galactica.

People repeat stuff that works.

If you're working for a hip, Web 2.0 startup building stuff in Ruby on Rails with Ajax, you're very nearly working entirely in Lisp and Smalltalk. The all-in-one OS-ness of Smalltalk failed, and the fingernail-clippings-everywhere syntax of Lisp failed, but in every important respect, those languages are absolutely alive and well and living in Philadelphia.


  1. The all-in-oneness of Smalltalk is nice, but mostly what I like are 1) objects being active in an image (which is Lisp-like), and 2) its concept of message passing, which is similar to named parameters in other languages. Ramon Leon has covered this in the past. So I won't repeat his argument.

    The reason Ruby is growing is because of the Rails web framework. Before it came along it was one of those obscure languages most didn't care to look at. More than that it's the "instant gratification" feel of Rails. I definitely get that from the demos I've seen of it. The scaffolding makes web development look easy, finally.

    A quiet voice in the back of my head, though, wonders, "Is Rails just VB for the web?" This isn't the fault of Ruby the language. I just wonder whether Rails has its limitations that will eventually be run into, and there will be the need for a more flexible framework--something more along the lines of Seaside. I forget who covered this (perhaps you), but I believe Avi Bryant has talked about giving a presentation on implementing Seaside-like features in Ruby and Python.

  2. That's right, Avi Bryant at ETech very recently. It's true about the Ruby/Rails thing, unfortunately. The thing is that doing awesome things in unpopular languages makes those unpopular languages popular. I tend to tune out the language debate for that reason, and yet mine it for insights at the same time. None of the conclusions are ever interesting to me, because it's always like "therefore Language X is the One True Language," but it *is* always interesting to find out what features languages share with each other and what features are unique.

  3. Re: "Aliens"

    I hadn't noticed the thing you're talking about with the corridor scene. Interesting.

    I did see some influence, though. The scene at the end where Ripley is escaping the plant that's about to blow up has this music in it that was repeated often in trailers for other action movies more than a decade later. That's impact! This has happened with other movies/trailers, too. I guess because by the time the trailer is being made the budget is kind of low and so they decide to just use music that's been recorded already. I always get a smile when I can pick out when they've done this, but at the same time I think, "Be original, goddammit!" Another thing that annoys me is they put clips in the trailer which are from scenes that are not in the movie, because they've been cut. What's up with that? Is that some way for the director to get vengeance for their favorite scene being cut on orders from higher-ups? It doesn't make sense to me. I'm a movie buff, so I watch the trailers closely. When I don't see a scene that I saw a glimpse of in the trailer I remember that, and get a little disappointed. This has happened in movies from years ago, but it seems like it's happened more and more with the recent ones. When they do this it makes going to the theater almost pointless. I can see the scenes they cut in the "deleted scenes" feature of the DVD, yet they want me to pay $8-$10 to see a movie with them cut out. Good things come to those who wait.


Note: Only a member of this blog may post a comment.