Friday, July 16, 2004
Extensible Programming revisited
Code Generation Network has an interview with Greg Wilson that is sort of interesting. Generally speaking, I think Wilson has it wrong. He spends a lot of time talking about "extensibility" in both his paper and this interview but never really defines what that is or why it really matters. I think he basically means macros. He spends way too much time talking about XML, which is really irrelevant to the discussion.
A notable quote from the interview is
We've spent the last twenty-five years slowly moving ideas from languages like Smalltalk and Scheme into languages like C (now C++), Java, C#, and so on: objects, garbage collection, reflection... The biggest idea that _hasn't_ been brought over (so far) is extensibility, i.e. the ability to add new constructs to the language to tailor it for your problem domain. If you've worked with Scheme's macro system, you know just how much this can do for you.
As I discussed previously, my first reaction is, "If you want Scheme's macro system, then use Scheme." Rather than trying to bolt all the various Lisp features into an XML-based, blah, blah, blah, maybe we should spend a bit more time trying to simply get over the parenthesis and use Lisp.
Anyway, where Simonyi seems to be on to something in terms of the larger issues, Wilson seems to be suggesting the same sorts of things, but with a weaker voice as he bogs down with junk like XML.
Links to this post: