Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!mit-eddie!uw-beaver!ubc-vision!ubc-cs!manis From: manis@ubc-cs.UUCP Newsgroups: comp.lang.c Subject: Re: Portable C vs Efficient C or \"Cost of Portability\" Message-ID: <1294@ubc-cs.UUCP> Date: Tue, 28-Apr-87 15:07:50 EDT Article-I.D.: ubc-cs.1294 Posted: Tue Apr 28 15:07:50 1987 Date-Received: Fri, 1-May-87 01:01:09 EDT References: <7134@brl-adm.ARPA> Reply-To: manis@ubc-cs.UUCP (Vincent Manis) Organization: UBC Department of Computer Science Lines: 35 In article <7134@brl-adm.ARPA> jfjr@mitre-bedford.arpa writes: >... If you are involved in a project of significant size (upwards of >20k lines) and more than two programmers who are office mates >related and very good friends I wouldn't touch C with a ten >foot pole. For such things the type checking and abstractions >supplied by Pascal or even better are absolutely necessary. As one of the contributors to this discussion, I should clarify that I am of course talking about "typed C", i.e., coding practices which satisfy even extremely fussy compilers (of which pcc is not one). Such things as required function prototypes (oh, I wish I had a compiler which implemented them...), fussy pointer checking, etc., are of course essential for any real project. In my naivete, I didn't point out that distinction. The real mileage you get in high-level languages isn't the 10:1 source code reduction (though that is of course significant) but the fact that good compilers flag nonsense rather than letting it through (on the basis that the programmer *knows* that this construct generates a Reverse Backscratch on the Whizzbang 4176). Of course, one could denigrate such fussy compilers on the basis that they allow sloppy people to move from burger-flopping to programming. However, fussy compilers don't enforce good design (this I know: I'm in the process of marking a stack of term projects written in Modula-2), and that is what separates the good programmers from the bad ones. ----- Vincent Manis {seismo,uw-beaver}!ubc-vision!ubc-cs!manis Dept. of Computer Science manis@cs.ubc.cdn Univ. of British Columbia manis%ubc.csnet@csnet-relay.arpa Vancouver, B.C. V6T 1W5 manis@ubc.csnet (604) 228-6770 or 228-3061 "Long live the ideals of Marxism-Lennonism! May the thoughts of Groucho and John guide us in word, thought, and deed!"