Saturday, August 07, 2004
Dynamic Languages Wizards
While lurking on IRC yesterday, I noticed somebody mention a link for a set of videos hosted at MIT. These were panel discussions done for the dynamic languages class there. The set of three videos was filmed in the spring of 2001 and features the who's who of dynamic language design, including many people involved with Scheme, Lisp, and Dylan. I recommend watching each of the various videos, which can be a time sink as they are each about 1.5 to 2 hours long. In particular, resist the urge to move straight to the Language Design panel that includes Guy Steele, Jonathan Rees, Paul Graham, and John Maeda. There are some huge nuggets in the panels on Runtime and Compilation.
That said, funny quote of the whole series is in the Q&A of the Language Design panel. A questioner asks the panel whether they see something beyond expressing programs in simple ASCII. Rees asks whether the questioner means something like Unicode, to which the questioner responds with something to the effect of, "Yes, and other things too." Steele starts talking and says that he really doesn't have much need beyond the Latin 1 character set and maybe some of the mathematical portions of Unicode. He says, in particular, that he doesn't feel a need for Croatian characters to be there, but maybe somebody in Croatia might. At that point, Graham pipes up, with, "Maybe in the next version of Perl. Think of all the additional characters you'll have..."
Other things which struck me from these:
- Scott McKay is a really smart guy. I don't know too much about his background, but he's clearly sharp. He seems like he would be fun to work with.
- It was interesting the almost unanimous consent that languages should strive to save people, namely programmers, time. If that requires a bit of efficiency loss, then fine. In general, people said that virtual machines were a good idea. The main dissenter here was Paul Graham who, thinking from a server-side perspective saw program efficiency as the denominator in the economic equation for how many clients you can serve with a fixed capital budget for servers. He said that to ignore efficiency was a definite pitfall.
- Steele had a lot of really interesting general comments. He has clearly worked on so many different languages fairly closely that he offers a really unique perspective.
- The Runtime panel seemed to be very open about the various battlescars that they had from their various experiences. I think this is important. Theories are great, but tested theories are even better. It's important to run the experiments and see what happens. Even if things fail, at least you have an anti-pattern to write up.
- John Maeda offered an interesting perspective on the Language Design panel. He's working at the MIT media lab and sees the artistic side of the technology. He made the comment that an interesting trend was that there are many artists who are becoming much more familiar with technology, but art is still looked down on by most technologists. When you read some of Richard Gabriel's writings, the theme of a linkage between art and technology (namely programming) is very strong, as well. Graham also wrote about this in Hackers and Painters. The conclusion that I'm rapidly coming to, supported by my own experience, is that most good programmers have a strong appreciation for art. While they may not be artists themselves in other mediums (painters or musicians), they truly are artists in the medium of program design and they need to recognize good design and strive to create it. I'll probably have a lot more to say about that in future blog entries as that's rapidly becoming a theme for me personally.
Links to this post: