Xref: utzoo comp.object:456 comp.lang.c++:5602 Path: utzoo!attcan!uunet!aplcen!samsung!cs.utexas.edu!pp!cadillac!vaughan@mcc.com From: vaughan@mcc.com (Paul Vaughan) Newsgroups: comp.object,comp.lang.c++ Subject: Re: Guthery slams OOP in latest DDJ Message-ID: <4158@cadillac.CAD.MCC.COM> Date: 21 Nov 89 21:55:17 GMT References: <2664@bingvaxu.cc.binghamton.edu> Sender: news@cadillac.CAD.MCC.COM Reply-To: vaughan@mcc.com (Paul Vaughan) Followup-To: comp.object Organization: MCC VLSI CAD Program Lines: 47 In-reply-to: cjoslyn@bingvaxu.cc.binghamton.edu (Cliff Joslyn) I've thought about a few of these issues, and I can see some merit to comparing OOP with some outdated programming practices, but this Guthery fellow has simply got it wrong. From cjoslyn@bingvaxu.cc.binghamton.edu and his quote of Guthery: He says a lot of things, but one quote: "Stripped of its fancy jargon, an object is a lexically-scoped subroutine with multiple mutiple entry points and persistent state. OOP has been around since subroutines were invented in the 1940s. Objects were fully supported in the early programming languages AED-0, Algol, and Fortran II. OOP was, however, regarded as bad programming style by Fortran aficionados". This would be true if it were only possible to make a single instance of each object class. By making a C file with static variables and several different functions that manipulate those variables, you can get something close to object oriented programming. However, this style is NOT OOP. It is difficult to maintain and has been abandoned by OOP practioners for very good reason. Guthery's mention of multiple entry points isn't even close. And more: "...the programmer is invited to pass the cost of expedience onto the user of the system. This wholesale sacrificing of runtime efficiency to programmer's convenience, this emphasis on the ease with which code is generated to the exclusion of the quality, usability, and maintainability of that code, is not found in any production programming environment with which I am familiar. This hardly deserves a reply, especially given the data reviewed on the net recently showing comparable speed for C and C++ programs. One point I'd like to make though is that sometimes the programmer is the user. That is, programmers USE library code and system facilities to program. Less sophisticated users also write code on a routine basis, only that fact is usually obscured by a fancy interface, like a spreadsheet. Now for what I feel is a valid criticism. Object Oriented Programs are generally not reentrant. This is generally not important to most application writers, but an OO OS or embedded systems writer would need to recognize that. Paul Vaughan, MCC CAD Program | ARPA: vaughan@mcc.com | Phone: [512] 338-3639 Box 200195, Austin, TX 78720 | UUCP: ...!cs.utexas.edu!milano!cadillac!vaughan