Re: Some Laws

From: Aaron Sherman <AaronJSherman_at_gmail.com>
Date: 23 Sep 2004 15:05:07 -0700
Message-ID: <a2d0070.0409231405.58422759_at_posting.google.com>


"Laconic2" <laconic2_at_comcast.net> wrote in message news:<ubmdncUAr--WSszcRVn-rg_at_comcast.com>...

> Yeh. The guy who tried to convince me that Java introduced the automatic
> garbage collector. I think he had never heard of Lisp.

There's a flaw in that reasoning.

First, howver, just to disclose, I'm not a fan of Java. I like its object model to a point, and it certainly is a usability improvement over C++ (C++ has other advantages as well).

Ok, on to your comment. Yes, garbage collection has been around for decades, and no one who knew more than 3 languages was shocked when Java came out and had garbage collection. Perhaps, some of us were shocked that it was as agressive a GC scheme as it was, since we'd come to think of all things C-derived as "close to the metal", but that was just a mental block, not a valid observation.

However, the reason that Java (rightly) gets much of the credit here, is not that there wasn't amazingly valuable work done previously, but that Java managed to present GC in the context of a language that in turn presented all of the right bits that made millions of computer programmers want to use it.

If you're interested in language design for pure research purposes, sometimes (and only sometimes) adoption doesn't matter, but when you want your language to be able to address the broad tapestry of software engineering and computer science tasks, you really do need to tackle the adoption problem.

Java brought GC to the great mass of software engineers, and the only language to come within a couple *orders of magnitude* of that accomplishment previously was elisp (of EMCAS fame).

Now, since this is a databases theory group, let me try to drag us back to topic... Java's success can be explained by a combination of timing, corporate acceptance of Sun as a backer and a widely needed combination of features. The first two are ignorable for my point, but the third seems to be to be a problem for which the relational model is idealy suited to describe. Has anyone ever tried to model the feature-sets of various programming languages (in terms of semantics and tools) and the needs of the environments in which they are used, and abstract from that the feature set of a hypothetically ideal language for each environment?

I wonder what that would look like.... Received on Fri Sep 24 2004 - 00:05:07 CEST

Original text of this message