Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!nx02.iad01.newshosting.com!newshosting.com!novia!news-out.readnews.com!news-xxxfer.readnews.com!news.misty.com!news.iecc.com!nerds-end From: Kaz Kylheku Newsgroups: comp.compilers Subject: Re: Looking for volunteers for XL Date: Mon, 28 Nov 2011 04:45:11 +0000 (UTC) Organization: A noiseless patient Spider Lines: 57 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-11-061@comp.compilers> References: <11-11-048@comp.compilers> <11-11-053@comp.compilers> <11-11-054@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1322457070 38613 64.57.183.58 (28 Nov 2011 05:11:10 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Mon, 28 Nov 2011 05:11:10 +0000 (UTC) Keywords: design, comment Posted-Date: 28 Nov 2011 00:11:10 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: x330-a1.tempe.blueboxinc.net comp.compilers:363 On 2011-11-26, BartC wrote: > "Christophe de Dinechin" wrote in message >>> [There were a bazillion extensible languages in the 1970s, many quite >>> sophisticated. They all disappeared without a trace, largely because >>> the ability to do per-program extensions meant that every program was >>> written in a different language, making them all unreadable. ... > >> [I wrote actual programs in IMP-72. The compiler was slow, but not >> unduly so for the time, and it was in the same ballpark as BLISS-11 >> which got a lot of use. (They both cross-compiled on a PDP-10.) We >> gave up on it because we didn't want to try to remember which of six >> slightly different case statements each program used. -John] > > Extensible languages have to be used with some care I think. Those > features aren't for everyday use. Actually, perhaps surprisingly, language extensibility features are for everyday use. > They should be used to turn a language X into a new language X2. X2 > should be properly designed, implemented, and documented. Then > development should be halted. This is worth doing for language extensions that are significant, and of interest to a wider community of people. But it's a time-consuming process. Extensibility in the language allows such a thing to be conducted as a project which regularly releases code (rather than just paper). It also allows some fraction of any application to consist of some extensions to give it a little domain-specific language or whatever. > However, if the design of X2 isn't going to change, you might as well > just write a compiler directly for X2; it's not necessary to make > available, to the programmer of X2, all those untidy language-building > features (for an example, see C++). The problem with this idea is that X2 is not a completely new language, but X with some extensions. Those extensions can be used in parallel with other extensions to X. You're trying to fit extensible languages into the traditional model, in which a lone guru (or small group of such) working atop a mountain carves a programming language onto stone tablets, which then descend down to the masses. Under an extensible language culture, the lone guru working in isolation produces not a new language, but some new extension. These can be released as code for people to try. Then when the bug reports pour in and it's all hammered out, a formal spec can be written. The guru deosn't get to ask everyone to ditch their language, only to add something to it. [Are you aware of anyone actually doing this? I agree that you might expect extensible languages to be handy design testbeds, but somehow other than in the Lisp community, it didn't work out that way. -John]