[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
The Highlander Principle
> I agree 100%. Too many choices in programming language design are
> mutually exclusive (in practice, if not always in theory) for me to
> believe in the One True Uberlanguage. But 700 is surely too many.
> I'd guess that the number should be more like 100, and should be
> proportional to the number of existing programming paradigms with a
> fairly small multiplicative constant.
Granted we won't see the One True Uberlanguage (although I'm trying
to come as close as humanly possible with Clear), but perhaps we could
at least try to normalize the semantics of each language's notation.
It is all too easy to glance at code in a language one doesn't use
regularly, see a familiar looking notation and forget that it represents
semantics at variance from those of one's language of choice.
This is why, in my humble opinion, the encoding redundancy of a more
verbose constrained natural language oriented notation offers superior
comprehensibility and long term maintainability to terse mathematically
oriented symbolic representations. Note that I am not suggesting that a
programmer ought not be able to use such constructs as shorthand, merely
that the resulting code should be normalized to an explicit canonical
form that is not dependent on the reader's having memorized a
language-specific lexicon and grammar of symbolic transformations.
In cases of C and (to an even greater degree) APL, code can be quite
dense and convey considerable algorithmic content to the trained eye in
minimal space. But even with a copy of "Code Reading" in hand, wading
through such source code can be extremely painful and require extensive
mental computation on the part of the reader.
Moreover, the more new programming and scripting language designers
try to wrap variant semantics in identical *looking* notations, the
greater the likelihood of misinterpretation and elusive logic errors.
In essence, in an ideal world, alternate semantics (the substantive
reason for one's desire to experiment with coding in The Next 700
Languages) should be explicitly factored out (ie. flagged by name) in a
canonical notation into which any new syntactic constructs can be
But as for that canonical notation - the meta language (or
interlingua if you will) to which the adept of any of our schools of
expression should be able to turn to understand the work of a colleague
whose language of choice might otherwise resemble Etruscan - "There Can
Be Only One"!
Then our development environments can much more effectively augment
our code reading ability and we can free up the sizable chunk of our
brains that has been emulating multiple compliers for use in designing
* Extra points for spotting the references alluded to herein.
Peter J. Wasilko, Esq.
Executive Director, The Institute for End User Computing, Inc.
Visit us on the web at: http://www.ieuc.org
Its time to abandon brittle architectures with poorly factored
interfaces, gratuitous complexity, and kludged designs dominated
by sacrifices on the altar of backwards compatibility.
Such artifacts are vulnerable to cyber-attack, weigh down the
economy costing trillions of dollars in lost productivity, and
suffer from an impoverished conceptual model that lacks the
integration and elegance needed to empower end users to
get the most from advanced applications in the future.
The Institute for End User Computing --- Pursuing Secure, Simple,
Supple, & Sophisticated Systems to Unlock Our Human Potential
* The Institute is incorporated under New York State's
Not-For-Profit Corporation Law