>> jon fernquest: Do programming languages really need to have life spans?|
>Human languages do; why should programming languages be any different?
Human languages evolve more continuously over longer periods
Computer language evolution is discontinuous.
Programming languages are the materials science of
computer science (quote from Benjamin Pierce's lecture notes).
...and as such they should allow programmers to build on and
extend the work achieved by previous programs (i.e. re-use)
(I'll shortly give an example)
How long did it take for the AI Winter to set in
and have people start dumping Lisp as a language for
(This was more a function of the hype surrounding
AI that resulted ultimately in stigmatizing the very idea of AI.
I worked for an AI company in the 1990's where we were instructed not
to refer to our company as an AI company, we were CASE,
there was also exactly one AI specialist in the whole company.)
...and even before this MacLisp was made extinct with the
advent of the Common Lisp standard
...were translators made available from MacLisp into Common Lisp
like Microsoft supplies today for Java to C#?
SHRDLU by Winograd is a famous natural language processing
system written in MacLisp
You might think that people took this program and built on it
but they didn't, it was abandoned and only
Issues arise in its resurrection that touch on the very definition of computer
science as a science.
If you read the link given closely you'll see some people accuse Winograd
of claiming things for the program that were never true,
which brings up the issue of scientific method and repeatability of an experiment
in computer science research.
But apart from this, IMHO *innovative ideas are often implicit in
proof of concept or prototype programs* and *programming languages
should be a vehicle for preserving and communicating these ideas*.
A prior LTU posting also gives an idea of how many lost
programming languages, lost programs and ideas, and
reinvented wheels there are:
> It seems virtually impossible to shrink a language with
> more than one user it seems to me.
Several Scheme implementations stripped macros out of Scheme (e.g. Stalin). Ewe, Waba, and Super-Waba strip out all but a tiny kernel of the Java API and add their own API specialized for PDA's, cell phones and other devices. As per the Java 3 discussion you could simplify things by eliminating primitive types and making everything an object. I think there are a lots of ways you could prune back Java to something more minimalistic like Scheme and then regrow it avoiding all the imperfections (e.g. in threads or the class loader) that people don't like and adding things that purists like , like tail recursiveness to the virtual machine. If Java's imperfections ultimately threatened it with extinction, would it behoove Java to remove them?