Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ames!oliveb!sun!gorodish!guy From: guy@gorodish.UUCP Newsgroups: comp.lang.c Subject: Re: Types Message-ID: <18598@sun.uucp> Date: Mon, 11-May-87 22:59:03 EDT Article-I.D.: sun.18598 Posted: Mon May 11 22:59:03 1987 Date-Received: Thu, 14-May-87 02:24:24 EDT References: <7264@brl-adm.ARPA> <734@sdchema.sdchem.UUCP> <293@osupyr.UUCP> Sender: news@sun.uucp Lines: 54 Summary: Big changes are NOT needed! > > This only solves the problem for the type "complex". What about vectors > > and matrices and (use your imagination)? > > What we people who can program using the power of the computer really need > to do is convince the X3J11 committee to accept the idea that overloaded > operators, defining of new types (not like C++), defining of operator > symbols corresponding to operations not included in the default language, > forcing inline, substitution of compiler-determined locations in inserted > assembler instructions, and other versatile devices, and in general enabling > the production of good semi-portable code is worthwhile. Good luck. I suspect you'll need it. 1) Why is it worthwhile to throw all this stuff into C *now*? One thing to note - the more stuff you throw into ANSI C, the longer it'll take to see ANSI C implementations, and the longer you'll have to wait for all these whizzy features. 2) Why is "defining of new types" followed by "(not like C++)"? 3) Why is "defining of operator symbols corresponding to operations not included in the default language" worth the cost of adding this? It is a relatively uncommon feature in programming languages, and can complicate the parsing of a language. 4) What does "enabling the production of good semi-portable code" mean? What is the significance of "semi" in "semi-portable"? Why do features like overloading of operators "enable the production of good semi-portable code", as opposed to the production of code in general, or portable code, or whatever? 5) What does "program using the power of the computer" mean? It sounds like a buzzphrase to me. Plenty of people who don't think C should grow without bounds are quite capable of writing efficient and portable (and "semi-portable") code. This looks more like a Christmas list than a practical proposal for additions to C. The purpose of a standards effort is *not* to stuff every feature that somebody thought they needed, or at least wanted, into the item being standardized. (To quote Dennis Ritchie - "If you want PL/I, you know where to find it.") The language that has every feature you want doesn't exist, and probably *can't* exist; there are always tradeoffs, and some features that might seem really nice just cost too much. As for "Big changes are needed", well, I shall merely point out that a LOT of software has been written in C, and is being written in C, for a host of applications. I see no reason to believe that this flow of applications will diminish to a trickle shortly unless this shopping list of features is added to the language. (In fact, enough features added to the language could *itself* diminish the flow of applications, if it complicates the language or its implementations to the point that the language is no longer a good choice for the applications for which it is currently being used.)