Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uwm.edu!lll-winken!decwrl!shelby!csli!poser From: poser@csli.Stanford.EDU (Bill Poser) Newsgroups: comp.lang.misc Subject: Re: Anyone want to design a language? Message-ID: <12336@csli.Stanford.EDU> Date: 20 Feb 90 04:27:57 GMT References: <22569:05:10:24@stealth.acf.nyu.edu> <2346@castle.ed.ac.uk> Sender: poser@csli.Stanford.EDU (Bill Poser) Reply-To: poser@csli.stanford.edu (Bill Poser) Organization: Center for the Study of Language and Information, Stanford U. Lines: 38 In article <2346@castle.ed.ac.uk> nick@lfcs.ed.ac.uk (Nick Rothwell) writes: > >You're kidding, right?. If you're going to mess around with antiquated >low-level languages like C, I don't see the point of bringing yet >another one into the world. Look at the functional languages like ML,... I don't quite agree. It's true that there are too many low-level languages (and there probably always will be), but there is a role for languages of this type. Many of the new-fangled languages are either nice for limited sorts of tasks (e.g. logic programming languages) or carry with them a lot of overhead and or "protection" from low-level aspects of the machine. However much you may like ML or Prolog or whatever, there is a role for system programming languages, and C is one of the best. Nonetheless, it isn't perfect, so it makes sense to design improved C-like languages. Perhaps eventually some of the nicer higher-level languages will prove to be good for the sorts of applications that C is used for, but that hasn't yet proved to be the case, has it? Another point to consider is how easy it is to try out innovations. Languages that are highly developed in certain directions may be quite difficult to modify in other directions. Lower-level languages like C are often better testbeds for innovations. Consider, for example, the sources of some programming language innovations. Pattern matching and goal-directed evaluation, as in ICON, have their origin in SNOBOL (and to some extent in still more primitive languages like COMIT). SNOBOL's structuring is poor even by the standards of the day (compare ALGOL) but it led to some important and interesting ideas. Similarly, object-oriented programming started off with Simula, a language that in other respects probably wasn't state-of-the-art. And look at how many innovations come from LISP. (To ward off the claim that LISP is a high-level language, let me point out that while it was innovative from the beginning, LISP was for many years quite low level, in terms, for example of the primitive nature of its control structures, its lack of aggregate data structures other than lists, and, to take a stand on a religious issue, the lack of useful syntax. It is only in recent years that LISP has acquired more reasonable control structures and other modern conveniences.)