Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!uakari.primate.wisc.edu!uflorida!mephisto!ncar!noao!arizona!gudeman From: gudeman@cs.arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Re: The Universal Language (Was Re: Efficient Fortran) Message-ID: <23950@megaron.cs.arizona.edu> Date: 6 Aug 90 23:47:14 GMT Organization: U of Arizona CS Dept, Tucson Lines: 79 In article{ <1360@fs1.ee.ubc.ca> mikeb@coho.ee.ubc.ca (Mike Bolotski) writes: > >I apologize for the personal nature of the attack on Herman and David. >In view of the high quality of discussion on this newsgroup, it was >completely uncalled for. Thank you, Mike. I think many of us have trouble remembering that we are writing to real people out there in net land, and tend to get carried away. It has happened to me many times, and I wasn't completely innocent in this exchange. (I did make a crack about lack of imagination...) >I would be interested in the opinion, as I still believe that a >universal language isn't a good idea. Well there are two different questions here: whether a universal language is possible, and whether it is a good idea. I don't think you can answer the second until you know what a universal language is. First, I doubt that there will ever be any formally specified language the size of, say Ada or smaller that can make a true claim to universality (although we can't really know for sure). But there is another approach to universality. The existence of English plus current programming languages plus all the specialized notations of mathematics, logic, linguistics, chemistry, and many other areas show that a fairly universal language is possible. I don't think there is anything inherently wrong with saying that all this is one language. Of course it is not a very cohesive or elegant language. Given this view of what a universal language is, the question becomes ``to what extent can this hodgepodge be unified and streamlined?''. The question becomes a quantitative rather than a qualitative one. There is a lot of work being done today attempting to unify various programming language paradigms. And other work studying the underlying nature of language and what different languages have in common (both natural and artificial language). If these researchers can come up with a small set of basic underlying principles then it may be possible to use these principles to bring together many of the divergent languages being used. This unification is not a process of throwing out the specialized features of various languages, rather it involves finding relationships among the various specialized features, subsuming them with more general features. This has already been done in different contexts. For example, functions and relations were once separate concepts, but now both may be thought of as sets. (Actually, I'd like to discredit that particular model, but that's another story ;-) Similarly, plane geometry and algebra were once considered completely unrelated, but now geometry can be done in algebra in a cartesian plane. In these and many other cases, the unification of different languages gave great insights into the problem domains that the languages were meant for. Unix has shown pretty conclusively the benefit of combining different languages. C alone would not have been adequate for all the work that has been done, but add lex, yacc, shell, make, awk, and other languages and you have an extremely powerful system. The power comes not just from the existence of the separate languages, but from the combination. There would be little point to lex and yacc if you could not combine them conveniently with C. If the shell could not call C programs or make could not invoke shell commands, a lot of power would be lost. And there would even be considerable power lost if C could not run shell commands. Even so, I don't think anyone would call this collection a single language. But maybe with enough ingenuity something similar can be designed that is so cohesive that it _could_ be called a single language. I have often come up with a problem working in one of the above languages that could have been easily solved if I'd had more direct access to some other language. Maybe a universal language would involve a lot of little sublanguages, but all fully integrated into a single entity, so that you are not committed to a single sublanguage just because you chose to start in that language. -- David Gudeman Department of Computer Science The University of Arizona gudeman@cs.arizona.edu Tucson, AZ 85721 noao!arizona!gudeman