At dim sum on Sunday Arthur was wearing a Lisp Conference T-shirt. Kleanthes asked “What do they do at the Lisp Conference?” I chimed in “it is a bunch of old guys talking about how a 20-year-old version of Lisp is so much better than all the language tools being hyped right now.” My position was that this isn’t a credible stance. Though it is probably true that you can be more productive in Common Lisp (1982) than in C# (2002), nobody will believe that the industrial software world has stagnated for 20+ years. I said that nobody will take Lisp seriously until it at least adds the truly state-of-the-art language features such as type-inferencing (from ML) and preconditions, postconditions, and invariants (from Eiffel). Bill came up with a novel objection to this idea: “My style of programming is exploratory and anything that gets in the way of that slows me down.”
Could he be right? Is old-style Common Lisp or Scheme actually the best that we can do?
——————– a quote from a problem set that I wrote a few years ago
“Another issue is a perennial side-show in the world-wide computer programming circus: the spectacle of nerds arguing over programming tools. The data model can’t represent the information that the users need, the application doesn’t do what what the users need it to do, and instead of writing code, the “engineers” are arguing about Java versus Lisp versus Perl versus Tcl. If you want to know why computer programmers get paid less than medical doctors, consider the situation of two trauma surgeons arriving at an accident scene. The patient is bleeding profusely. If surgeons were like programmers, they’d leave the patient to bleed out in order to have a really satisfying argument over the merits of two different kinds of tourniquet.
“If you’re programming one Web page at a time, you can switch to the Language du Jour in search of higher productivity. But you won’t achieve significant gains unless you switch from writing code for one page. You need to think about ways to write down a machine-readable description of the application and user experience, then let the computer generate the application automatically. “