[Editor's Note: Yes, we omitted the listing from last month's letters column. It appears as a separate article in this issue, Dealing With Memory Allocation Problems. rlw]Dear Sir,
It has been many years since I sent a letter to a periodical, some 16 or 17 years to be precise. I have some 22 years of programming background, ranging from systems programming to applications and telecommunications. As the original designer and author of SHADOW (IBM mainframe telecommunications system), and co-designer of MANAGE-IMS I feel I can speak with some experience.
I mention my background not to attempt to impress, but to add some weight to my words about the latest fad in the C world. C++.
When C was first inflicted on us I welcomed it and disliked it, however, two facts stand out. First, K&R are undoubtedly very bright people with much insight. Secondly, ANSI cleaned up the loose ends and now C is a serious commercial language. C is now one of the four that the IBM SAA endorses. I have written in C since 1982, using MVS, UNIX and the micro versions.
Many years ago we in the mainframe world discovered the benefits of control blocks, pointers and vector tables. In fact the control block structure of any dynamic operating system is, no ifs, no ors, no buts about it, is an object oriented programmed system. This "new" concept of O.O.P. (object oriented programming) is what worries me.
First, it is not new. We have used object oriented systems for all the 22 years I have been in the industry. I have a fear that OOP will become OOPS. I feel that as far as C goes, C++ is violating the cardinal rule "IF IT ISN'T FIXED, DON'T BREAK IT"!
I have studied OOP systems, the new window systems are OOP, and on the whole well done. They exist without the ?benefit? of C++. As is stands, C supports objects very well. I have an example in the C language forum of Compuserve, complete in and of itself for anyone who cares to study it. In short, C++ is a farce. C++ I feel was implemented by some well intentioned people who have no serious commercial programming expertise, and certainly no IBM mainframe internals experience.
C++ is a random collection of items, a mixed bag of minor changes, and the OOP extension. The minor additions attack the heart of structured programming (for example allowing data to be defined anywhere code may exist). They had some good ideas, existing for a quarter of a century in the mainframe world, such as defaults. Yet the defaults are positional as opposed to pure keyword! When keyword parameters are introduced into functions and macros then a whole new world is opened up. C++ felt it was better to stick to methods flying in the face of good mainframe experience and thus limit its abilities. The data reference, the change to casting, the inline functions are questionable at best, and ignore the potential increase in power of the processor and the optimisation ability of future compilers. Programmers are made to get involved with optimisation, not the machine.
Overloaded functions I admit are a benefit. They are the base of the C++ object implementation. I ask myself if that benefit isn't perhaps the only benefit of C++. The object oriented side of C++ does nothing, except inheritance, that any C compiler today can do. And if serious preprocessors were defined with global symbols then inheritance can also be implemented.
What I am saying is that rather than C++, let us have a full preprocessor with typical mainframe abilities, and skip the rest. C was designed to be bare bones, enhanced (very successfully) with functions. The quantum jump should be a preprocessor and proper macro and language preprocessor such as the IBM assembler macro facility. The next quantum leap is not the poorly thought out ideas of C++. In creating an object based system, much thought has to go into the structure, and this is true whether C++ is inheritance and scope, easily controlled in other ways if C is used, employing run time inheritance and binding.
I am getting suspicious that perhaps AT&T felt it was losing control of its brilliant child, "C" and needed to show that perhaps they were still in the lead. I suspect that since OOP was becoming more the rage that they jumped on the bandwagon. They used that to reestablish their leadership. The C++ authors wanted to become the next generation of venerated programmers, to be the next K & R. I am sorry, but as senator Benson put it, "they are no K&R".
OOP was not invented by AT&T, it is a long established method for handling interrupt and interrupt driven systems. The resurgence of OOP came about with among other things the need to handle the dynamic world of dynamic objects such as in windowing systems and the like. OOP is a good discipline where applicable. It has many uses in the distributed processing world of the future.
I hope that the readers will take a closer look at C++ and study some OOP systems implemented in C and realise that C++ is a farce, a joke being perpetrated on the data processing world. I am all for positive change, this isn't it. I am recommending to my company that C++ not be implemented. I note that there will be no ANSI C++, they have seen the light.
I thank you for your patience,
Simon Wheaton-Smith
2902 N. Manor Dr. West
Phoenix, AZ 85014You're welcome to my patience, but not to any support for your position.
I wonder if K&R had any IBM mainframe internals experience? If not, perhaps we should make them rescind C? rlw
Dear CUJ,
Please allow me to introduce myself. My name is Chris Proctor. I'm an IBM mid-range systems contractor. I felt compelled to write you a letter to tell you why I would not be renewing my C Users Group subscription.
I am relatively new to C programming and I was hoping that your magazine would provide me with helpful hints and programming tips that would help me become a better C programmer. Unfortunately, in most issues I found nothing that was beneficial to me. Please believe me when I tell you that I am not "knocking" your magazine at all. I'm sure that if I was more knowledgeable in C, your magazine would be very interesting. But, quite frankly I don't understand half of the articles in each issue.
What I would like to see is an article or section of each issue dedicated to the basics of C, or at least programming tips that the layman can understand. I can't believe that I am the only one that has not renewed my subscription because the articles are "over my head". Perhaps, something like I have mentioned may even increase subscriptions just from people glancing through the C Users Journal on the magazine rack.
I realize that you have to appeal to the masses and not the exceptions and if that's the case, I'll probably subscribe to the magazine when I feel that it would be of some use to me.
You have an excellent magazine. Keep up the good work.
Sincerely yours,
Chris Proctor
21352 Avenida Ambiente
El Toro, CA 92630I too would like to see some quantum of good tutorial material in every issue, in addition to the more demanding copy. Unfortunately, we don't get very many well-written tutorial submissions. If my readership includes some willing but uninspired authors, here's your chance. Send us a concise but thorough tutorial on some aspect of C. We need more such submissions than we are currently receiving. rlw
Dear Howard,
I was pleased that my article, "The C Programmer's Reference: A Bibliography of Periodicals," appeared in print in your January, 1990 issue. However, I was dismayed to learn that I had inadvertently omitted a couple of worthy entries. These annotations, with the appropriate citations, are as follows:
C Gazette (quarterly, $6.50/issue, $21.00/year) C Gazette, 1341 Ocean Avenue #257, Santa Monica, CA 90401.
A "code-intensive" quarterly which thrives on printing lots of C code (and some C++). Specializes in MS-DOS and OS/2, but no UNIX. An in-depth publication aimed at intermediate and advanced C programmers. Few advertisements and few reviews. For programmers who are serious about their C code.
Journal of C Language Translation ($235.00/year) Journal of C Language Translation, 2051 Swan's Neck Way, Reston, VA 22091.
An academic quarterly which just recently commenced publication. Aimed at compiler writers and programmers who must implement the ANSI standard in language products. Covers extensions to the standard, such as implementation of numerical representation, etc. No advertisements and few reviews. An important resource for programmers in this narrow niche.
I had compiled the original bibliography some time ago, and from the holdings of a corporate library. I assumed that the library's holdings were relatively complete, and I overlooked the two periodicals above.
I hope that this letter will fill the gap. I regret it if anyone was offended, and I trust that this information will further assist readers of The C Users Journal in their language research.
Sincerely,
Harold C. Ogg
Chicago State University
The Paul and Emily Douglas Library
Ninety-Fifth Street at King Drive
Chicago, Illinois 60628-1598(For those wondering, Howard is our editorial coordinator. I should let him respond to this letter, but he's buried somewhere under some manuscripts and pasteups.)
I appreciate the information. In addition to his column for CUJ, Rex Jaeschke also writes a C column for DEC Professional not a "C magazine", but at least another C resource.
If you regularly refer to a C-related information source we failed to include, please write and we'll mention it here in a future issue. rlw
Dear Mr. Ward;
I'm glad the C Users Journal is starting to publish articles on the Macintosh, its development environment, and its operating system. Keep 'em coming! Nice article by Allan Brown [Bruton] in the October '89 edition. True, the Macintosh toolbox does add some additional complexity, but once one becomes accustomed to it and it may take quite a bit of time becoming fluent in "toolboxese" one can be assured, though, that there is less likelihood of code obsolescence and greater possibilities for code portability among the various Macintosh hardware platforms and operating systems by following the development guidelines and using the toolbox calls for performing window manipulations.
Anyway, I tried executing the code presented on page 99 (Listing 1), and the code as written does not draw a set of nested rectangles as promised at the beginning of the article. When one executes the code specified in Listing 1, nested triangles are drawn on the screen. To obtain nested rectangles the variable yb will have to initialized to read
yb = 25;rather than
yb = 300;as printed in the article. That's the only change necessary for having the Macintosh draw nested rectangles.Thanks again for printing an article of interest to programmers who program the Macintosh in C.
Yours truly,
Clifford J. Campo
123 Fennerton Road
Paoli, PA 19310Gee, you mean rectangles have four sides? Maybe I should spend more time watching Sesame Street with my son.
Thanks for the correction, and thanks for noticing our Macintosh coverage. We've really worked hard to get those stories. rlw
Dear Robert:
I'd like to offer several comments to your "Publisher's Forum" in the August 1989 issue.
I like the new glossier paper; I think it makes the pages easier to turn because there's less friction between them. Goodness knows, we readers don't want too much friction. (Truly, I do like it better.)
I can't tell you what a relief it is to read that you're refusing to get involved in C puns. At least in your articles. Your advertisers more than make up for it. (Of course, it's not just CUJ advertisers...) Too bad X3J11 didn't outlaw C puns as part of the ANSI standard.
Regarding swimsuits, etc.: I agree that would be out of place in CUJ. There's plenty available elsewhere. However, your comment, "Wouldn't you rather explore lex than sex?" leaves me concerned. Have you somehow arrived at the assumption that real programmers are so obsessed with digital high tech that they will forego sex? Of course not. How do you think we burn off all of that Jolt and pizza? Not at a keyboard surely!
Speaking of sex and assumptions, and here I am finally being serious, there's a big one or two in your comment, "We've even considered running pictures of all the staff (especially the women since most of them are single and most of you are male).", namely that all male CUJ readers are straight. I assure you, it ain't so! About 10% of most any population is gay and lesbian, and while I haven't seen any polls to confirm that this is true of programmers, I have no reason to feel I should believe otherwise. So, if you were to do swimsuits, it would only be fair to include your female and male staff. Fair to your straight women readers too, don't forget them!
CUJ is great, please keep it up (speaking of standards and high ones at that)!
Sincerely
Bill Lee
5132 106A Street
Edmonton
Alberta, CA T6H 2W7What can I say? rlw
To The C_Users Group,
Concerning Numerical Software Tools in C. It is a fine book for those starting to program in C. Any book in your Advanced topic area, I as well as all others, assume that Advanced means just that Advanced! An advanced book would be like Numerical Recipes in C by Press et.al. from Cambridge University Press. You truly need to re-analyze what is considered advanced considering that more and more books actually treating advanced topics are coming out. In the past, few knew anything about C. Since it is now the #1 language of choice, advanced isn't the advanced of yesterday. The book which I'm sending back should be considered elementary to intermediate. Even though it was published in 1987, does not mean that it is advanced. Further, four routines of the most elementary type, does not in my view constitute "Tools". Tools to me are a compendium of primitives that one may use in developing one's own applications. This book falls way short of that. Again further, the price is outrageous for what one receives.
Jerry Rice, PHD.
504 Eastland St.
El Paso, Texas, 79907In all truth, I haven't read this book. In fact there are more then a few books among the 100 or so that we carry that I haven't read. Except when I have personal knowledge of the book's contents, we rely upon publisher's descriptions when categorizing the book. rlw