Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!duke!unc!mcnc!ecsvax!dgary From: dgary@ecsvax.UUCP Newsgroups: net.lang Subject: Re: Modula-2 faults - (nf) Message-ID: <1246@ecsvax.UUCP> Date: Fri, 23-Sep-83 09:32:06 EDT Article-I.D.: ecsvax.1246 Posted: Fri Sep 23 09:32:06 1983 Date-Received: Sun, 25-Sep-83 12:02:42 EDT References: hp-pcd.1891 Lines: 34 My first impressions of Modula-2 were very positive, but I quickly became disillusioned (a similar thing happened with Gerald Ford). Since my objections are the same as everybody else's, I won't bore you by ranting on END versus FI and OD, no character handling, cumbersome I/O, etc. I would like to drag two philosophical issues into the fray. These aren't strictly specific to Modula-2, but it makes a nice background. One important question is just how inflexible the language should be in its data typing. I'm not talking about languages like LISP and APL which keep track of variable type for the user. I'm speaking rather of the FORTH-Pascal axis, with Pascal (the Edwin Newman of programming languages) determined not to let the programmer get away with anything, and FORTH, which would overwrite its own family if you told it to. Being a fan of Aristotle (I get everything he writes as soon as it hits the stands), I prefer the middle course I get from the PL/I compiler I use: If I do something dangerous it raises all kinds of hell but lets me do it. I prefer this to being prohibited altogether from using "dangerous" constructs, or having to fill out twelve forms to seek permission from the compiler. Curious that no language definition I'm aware of (maybe Ada's, since I haven't got through that DoD prose yet) makes provision for specifying warnings. Another consideration is how portable a language should be. It seems to me that the 8-16-32-64 family is well-enough established (IBM and Burroughs mainframes, most minis, almost all micros) that portability among this crowd is fine, even if we have to give up compatibility with 12, 30, 36 and other weird architectures. I'd be satisfied with a language that demanded 8 bits in a character, for example. If only the order of bytes in a word had some official or de facto standard... Anyway, what do you think? Should languages guide programmers or straitjacket them? Should languages sacrifice universality if that could make for greater efficiency and perhaps even more compatibility among a large family of machines?