Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!vrdxhq!bms-at!stuart From: stuart@bms-at.UUCP (Stuart D. Gathman) Newsgroups: comp.lang.c Subject: Re: Unary plus Message-ID: <374@bms-at.UUCP> Date: Wed, 15-Apr-87 23:27:59 EST Article-I.D.: bms-at.374 Posted: Wed Apr 15 23:27:59 1987 Date-Received: Sun, 19-Apr-87 05:13:37 EST References: <6772@brl-adm.ARPA> <803@viper.UUCP> Organization: Business Management Systems, Inc., Fairfax, VA Lines: 46 Summary: A lot of people shouldn't be programming in 'C' If y'all succeed in turning C into Fortran, I'll just have to get GNU C before it gets corrupted. If the possibility that the compiler might reorder your expressions bothers you, *don't program in 'C'*. Try Fortran, Algol, SPL, whatever. 'C' was not designed for applications programmers. It can be best described as a portable, structured assembler. The proposal to make parens work like Fortran defeats the purpose of 'C'. If 'C' is destroyed in this manner, I might revert to Pascal. The current rage of writing every piece of code in the world in 'C' may be doing the language a disservice. I am glad there are some LISP programmers out there who realize the value of using the right tool for the job. If you like structures, pointers, and user defineable types, but don't like the close attention to portability required, try Pascal. It has a lot of improvements over 'C' along those lines a) no need to worry about how many bits integral types might have. Just define the range! Pascal will automatically generate bitfields, bytes, words, regardless of architecture. You can even select between optimizing space (PACKED) or speed (not PACKED). b) enumeration constants are actually type checked. c) You don't have to remember the '&' before function arguments passed as pointers. Just declare them as VAR and compiler takes care of the rest. d) Parens define order of evaluation as well as syntax. This is just a partial list. There is a price to pay, but there are just different tradeoffs than with 'C'. There are some dumb things about 'C' (like making vars public instead of private by default), but the definition of parens is not one of them. The ambiguous definition of 'int' and certain operators is also based on careful consideration. If you want a variable with a particular number of bits, DON'T USE 'int'. That is not the purpose of 'int'. If you want parens to determine order of evaluation, DON'T USE 'C'. That is not the purpose of 'C'. -- Stuart D. Gathman <..!seismo!dgis!bms-at!stuart>