home ¦ Archives ¦ Atom ¦ RSS

Ascher: Dynamic Languages

David Ascher of ActiveState, recently published an extended essay on dynamic languages. The piece was essentially meant as an update of John Ousterhout's classic paper on scripting languages. Ascher attempts to update the discussion in the face of the changing productivity and deployment demands for software development. We can spend more cycles on higher level languages that make programmers more productive developing Web and distributed apps.

Frankly, I found the essay disappointing for two main reasons.

First, programming language designers and implementors have been using the term "dynamic languages" for quite a while now. Granted it was all those old fuddy, duddy Lisp, Smalltalk, and ML hackers, but when the designers of the current popular crowd look to swipe ideas, who do you think they crib from? All Ascher's paper does is muddy the waters in an attempt to get away from a term "scripting" that isn't all that pejorative anymore.

Second, Ascher's definition of dynamic language mandates that the language be open source. This in itself is non-sensical since "open source"ness is a property of language implementations, not languages themselves. There's nothing that prevented Jython from being closed source. And has anyone seen the source for Microsoft's implementation of JavaScript in IE recently?

Open source, especially access to the source code, is a red herring for this discussion. Open access to the language design process is what developers really want. Scheme, Smalltalk, and Common Lisp all advanced without a "primary" open source implementation, although there were some. The key was that developers could experiment in their own implementations with new language features and then profer those as changes to the language.

An argument could be made that having a primary implementation actually hinders a language's progress. There's little chance radical implementation approaches and dependent design features, ala Scheme, can arise in something like Python due to the limitations of the CPython implementation.

Common Lisp will always be a dynamic language to me, no matter what anyone else says.

© Brian M. Dennis. Built using Pelican. Theme by Giulio Fidente on github.