[ | smalltalk dot org ].
Community and industry meet inventing the future.
Optimizing Person-time, Not Computer-Time
written by Peter William Lount
Version 3, 20041003 2:15am PDT
Added comments made on OSNews plus Perl article series at bottom of article.
Version 2, 20040912 9:08am PDT
Version 1, 20040813 2:46am PDT

Active State's David Ascher has this to say about the benefits of Dynamic Languages:

"Optimizing person-time, not computer-time
The driving forces for the creation of each major dynamic language centered on making tasks easier for people, with raw computer performance a secondary concern. As the language implementations have matured, they have enabled programmers to build very efficient software, but that was never their primary focus. Getting the job done fast is typically prioritized above getting the job done so that it runs faster. This approach makes sense when one considers that many programs are run only periodically, and take effectively no time to execute, but can take days, weeks, or months to write. When considering networked applications, where network latency or database accesses tend to be the bottlenecks, the folly of hyper-optimizing the execution time of the wrong parts of the program is even clearer. A notable consequence of this difference in priority is seen in the different types of competition among languages. While system languages compete like CPU manufacturers on performance measured by numeric benchmarks such as LINPACK, dynamic languages compete, less formally, on productivity arguments and, through an indirect measure of productivity, on how "fun" a language is. It is apparently widely believed that fun languages correspond to more productive programmers-a hypothesis that would be interesting to test."

I must concur with David as he has hit the nail on the head of the most important issue, in the vast majority of cases (and almost all cases in business programming) a top priority in programming is about optimizing people time not computer time. When programmers write "typed code" they are taking time from other activities to concentrate on the types. They are spending valuable time debugging those variable typed programs when they don't have to. Time better spent on more important aspects of their projects. Money better spent! Lives better spent.

What about the Dynamic Languages: LISP and Smalltalk?
David's article neglected to mention LISP and Smalltalk as two of the first dynamic programming langauges that are still popular.

Smalltalk is generally considered a fun langauge to program in by people who've used it. It's also been shown that Smalltalk programmer's productivity is typically above those of programmers in other languages and tools.

A Clear Definition of Dynamic Language
However on another point I must differ with David and request that clarity prevail. If you read his full article you'll see that he usurps the phrase "dynamic languages" by collapsing "open source" definitions into it. David please find a different term, such as "Open Source Dynamic Language", since "dynamic language" has already been in use for decades and your new definition just confuses the issue as not all "dynamic langauges" are "open source"!

To illustrate why this "proposed" new definition won't work just look at Smalltalk, there are many versions of the Smalltalk language, some of which are fully open source (using various licenses), some proprietary (usually with all Smalltalk level source but not the virtual machine source), some "free" (for personal or commercial use) with Smalltalk level source but without the virtual machine source, and even some in the public domain (arguably the most free license of all). Does this mean that only the "open source" versions of Smalltalk would be considered a "dynamic language" under the "proposed" definition? That just wouldn't work as the proposed new defiition doesn't fit the fact that all these versions of Smalltalk are clearly dynamic languages independant of their "licensing" status. When the facts don't fit the catagorization scheme adjust the scheme to fit the facts!

Here's to the future of dynamic langauges, open source, proprietary and otherwise!

[Update: 20041003, posted comment at OSNews in response to their coverage of David Ascher's white paper. The posting is replicated here:
Hi,

After writing the following article in response to David Ascher's white paper, "Dynamic Languages - ready for the next challenges, by design", he and I had lunch (a few weeks ago). In addition to acknowledging the points that I make below [above] he agrees that a rewrite or updated version of his white paper is needed however you don't usually update "white papers".

In any event, it's clear to all including David that Smalltalk and Lisp are dynamic langauges and open source languages and should be included.

The issue of dynamic languages continues to be volitile as there are many valid perspectives that people are coming from.

When creating a next generation language are you adding complexity or attempting to reduce it?

i.e. Will Perl 6 be simplier or more complex than earlier Perls?

Those that are working on the next generation of languages would be wise to learn from Smalltalk's simplicty and power which derive in part from it's elegant and simple syntax that enables most extensions to be implemented in the class hierarchy library rather than in adding layers of complicated syntax.

Smalltalk is spreading. Catch the wave.

All the best,

Peter William Lount, Smalltalk.org Editor

[Link to the article above]

Resources

Copyright 1999-2010 by Smalltalk.org"!, All Rights Reserved.