Sat, 23 Mar 2013
What if languages were free?
In 1980, George Copeland wrote
titled "What if Mass Storage were Free?".
Costs of mass storage were showing signs
that they might fall dramatically.
Copeland, as a thought exercise, took this trend to its extreme.
Among other things, he predicted that deletion would become
unnecessary, and in fact, undesirable.
thought experiment has proved prophetic.
For many purposes, mass storage is treated as if it were free.
For example, you probably retrieved this blog post from a server
provided to me at no charge, in the hope
that I might write and upload something interesting.
Until now languages were high-cost efforts.
Worse, language projects ran a high risk of disappointment,
up to and including total failure.
I believe those days are coming to an end.
Small languages, shaped to the problem domain
What if whenever you needed a new language, poof, it was there?
You would be encouraged to tackle each problem domain with
a new language dedicated to dealing with that domain.
Since each language is no larger than its problem domain,
learning a language would be essentially the same as learning
the problem domain.
The incremental effort required to learn the language
itself would head toward zero.
No more language bloat
Language bloat would end.
Currently, the risk and cost of developing languages
make it imperative to extend the ones we have.
Free languages mean fewer reasons to add features
to existing languages.
No more search for THE perfect language
No language is perfect for all tasks.
But because the high cost of languages favors
large, general-purpose languages,
we are compelled to try for perfection anyway.
Ironically, we are often making the language worse,
and we know it.
A world full of perfect languages
An older sense of the word perfect is
"having all the properties or qualities requisite to its nature and kind".
The C language might be called perfect in this sense.
C lacks a lot of features that are highly desirable in most contexts.
But for programming that is portable
and close to the hardware,
the C language is perfect or close to it.
If languages were free, this is the kind of perfection
that we would seek --
languages precisely fitted to their domain,
so that adding to them cannot make them better.
Moving toward free
My own effort to contribute to
a fall in the cost of languages is the Marpa parser.
Marpa produces a reasonable parser
for every language you can write in BNF.
If the BNF is for a grammar in any of the classes currently in practical
use, the parser Marpa produces will have linear speed.
In one case, using Marpa,
a targeted language
in less than an hour.
More typically, Marpa reduce the time needed to create new languages to hours.
As one example of going from "impossible" to "easy",
I have written a drop-in solution to an example in the
of Four book.
The Gang of Four described a language
and its interpretation,
but they did not include a parser.
Creating a parser
to fit their example would have been
impossibly hard when the Gang of Four wrote.
Using Marpa, it is easy.
The parser can be found in
earlier blog post.
Marpa's latest version is
which is available on CPAN.
Recently, it has gained immensely in "whipitupitude" with
a new interface,
which has tutorials
a web page,
and of course it is the focus of
my "Ocean of Awareness" blog.
Comments on this post
can be sent to the Marpa's Google Group:
posted at: 10:16 |
direct link to this entry