Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/17/84; site wxlvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!unc!mcnc!decvax!ittvax!wxlvax!slack From: slack@wxlvax.UUCP (Tom Slack) Newsgroups: net.ai Subject: Re: Multi-language systems Message-ID: <420@wxlvax.UUCP> Date: Wed, 20-Mar-85 12:31:34 EST Article-I.D.: wxlvax.420 Posted: Wed Mar 20 12:31:34 1985 Date-Received: Fri, 22-Mar-85 02:24:43 EST References: <242@bu-cs.UUCP>, <316@cmu-cs-k.ARPA> <253@bu-cs.UUCP>, <494@harvard.ARPA> <259@bu-cs.UUCP> Organization: ITT-ATC SRD, Shelton Ct. Lines: 60 > However, I my reference to Whorf was possibly to elliptic. Whorf was an > American linguist who advanced the hypothesis that the language you > speak greatly influences the way you think about the world around you. > As I said, whether or not his hypothesis is valid for natural languages, > it is certainly true for computer languages. Implicit in the fact that > I am writing a program in COBOL is the decision that the data flow is > important, and the control flow is trivial. Similar judgements go into > any choice of language for any program I write. I try to match the tool > to the job. Each language has its own strengths and weaknesses, but the > price paid for the strength of any given language is that it imposes a > problem-solving style on the programmer. I agree with this fundamentally, however the correct approach for the progammer worth his salt is to say that all successfull programming languages (read problem-solving styles) have some merit. A good 3rd generation system such as C or PASCAL can implement these styles albeit with some difficulty provided the programmer has them firmly established in his mind. > Just as in natural language, computer languages cluster into families. > There is nothing hard about mixing FORTRAN & COBOL modules into a big > system (or FORTAN & PL/I). I've done plenty of that sort of stuff. > It's when you move across families where things break down, and > especially where you try mixing an inherently interpreted language like > LISP or SNOBOL with an inherently compiled one like FORTRAN that things > get dangerous. The Good Programmer should know fairly well languages from several families. > A system which is dangerously multi-lingual will, in my view, perforce > be difficult to maintain because it is opaque for the two reasons cited > above: some of the code will be obscure because it is faking an > environment for the sibling, and the rest will lack unity of style. > Speaking from experience, I can say that no one person is going to be > able to understand the whole system. I've been programming since 1955, > and I've never met a programmer equally proficient in all languages. Here is where I really disagree. I have not known a really good programmer who was not very proficient in at least two families of Languages. Usually one of those was PL/1 C or PASCAL. The others were from RPG ALGOL APL and LISP to many macro assemblers FORTH or even COBOL. It may be that they have a preferred language (Mine was APL till I learned LISP), but they are quite comfortable in the other. Nothing says that people cannot think two ways (or more). > Some languages match their thought processes, and some don't. The > amount of worthwhile communication between a FORTRAN programmer and a > LISP programmer is non-measurable, because their fundemental ideas about > what programming is are irreconcilable. > > Bill Henneman I would change this to read: The amount of worthwhile communication between a programmer who only knows FORTRAN and one who only knows LISP is non-measurable, ... Tom Slack