From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public From: eachus@spectre.mitre.org (Robert I. Eachus) Subject: Linguistic invention (was Re: Software landmines (loops)) Date: 1998/09/17 Message-ID: #1/1 X-Deja-AN: 392220658 References: <6rf59b$2ud$1@nnrp1.dejanews.com> <6sjnlu$83l$1@hirame.wwa.com> <6spia2$1s36$1@prime.imagin.net> <35F06D6A.91A3D34E@s054.aone.net.au> <35F99210.D3ECCB6E@s054.aone.net.au> Organization: The Mitre Corp., Bedford, MA. Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-17T00:00:00+00:00 List-Id: In article <35F99210.D3ECCB6E@s054.aone.net.au> Loryn Jenkins writes: > But I may say that your counter-example isn't a counter-example. > One day, if you're interested, I'll try to describe something like this > in terms that doesn't carry a whole lot of linguistic baggage. There are two types of langauge creation. The first is fairly common, when someone creates a neologism that is instantly recognizable as part of the surrounding linguistic system. They are just adjusting the language to things that already exist. The second is much rarer, when some person or group creates truely new language, which can be used to express thoughts totally outside existing experience. Outside the area of programming languages, this used to be a once in a lifetime experience, such as when Gauss and Newton invented calculus. But programming languages have developed in our lifetimes. (Well mine at least, you may be younger.) There have been dozens of such epochal events in that period. To choose a simple example, at a meeting in Boston, we discussed a change to the grammar for declaring abstract types in Ada 95. Tucker Taft proposed almost exactly the final form as a "minor" fix to an obscure problem. But it was late in the Ada 9X development process, and such a large change for such a trival gain troubled people. The next day the change was adopted without argument. It had become clear to most of the language developers present that the change allowed new thoughts to be thought. The change, for those of you not that familiar with Ada, was to recognize that while abstract subprograms and abstract types (classes) are intimately related, there are times when you want abstract types which don't necessarily have any abstract subprograms. Sound simple and silly? It interacts with generics in very useful ways. But the most interesting thing is that, although it did allow a few programs to be written more simply, that was a minor detail. The change was well worth the effort because it allowed people to think new thoughts, even though the resulting programs could have been expressed using the previous notation. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...