^zhurnaly   -   Random   -   Recent   -   Running   -   Mantra   -   Tarot   -   Help


Many people follow the same progression in learning computer programming: start with a mid-level language like BASIC or FORTRAN, move down after a while to flipping bits in assembler (or close to it in FORTH), and eventually mature into using a wide variety of high-level languages, each appropriate to its own domain.

Perhaps as part of my (belated!) maturing process I've recently come to appreciate something I had formerly held in slight contempt: "scripting languages" such as Netscape's Javascript, Apple's Hypertalk, etc. These languages seemed to me like poor stepchildren, designed for amateurs who couldn't hack out a "real" program and who therefore had to have their hands held when crossing the street.

But modern scripting languages, combined with today's fast processors, do a lot more than they used to. The best of them offer associative arrays, regular expression pattern-matching, automatic memory management, and a host of other sophisticated features. They do away with most of the boring and stupid parts of small- to medium-scale programming --- type declarations and conversions, formatting hassles, and the grungier aspects of user interface development, for starters. New scripting languages are reasonably efficient, too, thanks to just-in-time compilation and other tricks of the trade.

In fact, loosely-typed, flexible, friendly scripting languages are getting to be a lot like human natural languages in their tolerance for sloppiness. They float above the level of ugly detail that programmers formerly had to wrestle with. To a tiny degree, scripting languages are starting to act in the same way that intelligent people do ... they fill in the gaps and interpret incomplete instructions, so as to do the reasonable thing in ambiguous situations. That's real progress! Scripting is nothing to be embarrassed about any more.

Tuesday, June 29, 1999 at 19:06:05 (EDT) = Datetag19990629


(correlates: SoftCore, WikiIsIt, KnowHowAndFearNot, ...)