kateveni@Shasta (05/25/84)
From: Manolis Katevenis <kateveni@Shasta> ------- Forwarded Message Date: Fri, 25 May 84 11:50:52 edt From: macrakis@harvard (Stavros Macrakis) Message-Id: <8405251550.AA20833@harvard.ARPA> To: ELLHNES@Berkeley, kateveni@Berkeley Subject: Re: (forw-net-42): Glwssa gia anaptyxi systimatwn stin Ellada ? Cc: macrakis@harvard Oti i C ine hrisimi sto Unix, den amfivolo. Na exiyiso kalitera sta Anglika. 1. Machine-oriented programming model. Rather than encouraging thought in terms of the concepts being programmed about, it encourages implementation- level constructs: everything is thought of in terms of its constituent bytes. 2. Very poor type checking. Although more and more is being done, partly by Lint and partly by the compiler, still many type errors are undetected. Worse, many existing programs depend on type punning for their correct operation. 3. Terrible diagnostics in all compilers I know. One typically gets an error message unrelated to the actual error, then a dozen errors after- wards because of poor error recovery. 4. Difficult and confusing syntax. Many irregularities (e.g. aggregates exist for initialization of static objects only). 5. Difficult and confusing semantics (consider semantics of array names, for instance). 6. No nested declarations of functions to support top-down programming. 7. No runtime checking of ANYTHING (pointer dereference, array reference, arithmetic overflow...) in any implementation I know. C has the advantage, of course, that it is the Unix systems programming language. But it's really just machine-independent machine language. Also, future languages seem unlikely to be based on C, as they have been on Algol for so long. An Algol-like language of some kind seems a better choice if there is to be a single standard (even some dialect of Pascal). Ada would be best if the schedule you have in mind allows the wait for better facilities. Stavros ------- End of Forwarded Message