Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!wuarchive!usc!bbn!granite!kiso From: kiso@granite.cr.bull.com (James Kiso) Newsgroups: comp.lang.c++ Subject: Re: what is c++, c, ansi c etc... Message-ID: <1990Apr10.191547.18273@granite.cr.bull.com> Date: 10 Apr 90 19:15:47 GMT References: <6000:Apr720:31:1490@stealth.acf.nyu.edu> <28742@cup.portal.com> Reply-To: kiso@granite.cr.bull.com (James Kiso) Distribution: usa Organization: Bull HN Information Systems Inc. Lines: 63 In article <28742@cup.portal.com> Chewbacca@cup.portal.com (Paul Frederick Snively) writes: >brnstnd@stealth.acf.nyu.edu writes: > >>> Also what is object oriented programming? >> > >Hopefully this is a reasonable introduction to the underlying concepts. Some >readers may point out that none of the features of object-oriented programming >is impossible to accomplish without using object-oriented programming >languages, and of course, they are correct--as usual, the issue is solely one >of whether you wish your language to assist you in such architectural trivia >or not. Some subsequent posters seem to have missed this final paragraph, which I think is key to the whole discussion. There are a number of fairly trivial answers to the original question, but I think they boil down to a number of observations which I think generalize from other types of programming: 1. Object oriented programming is some kind of programming [I think most folks agree that this is part of the pseudo-definition of OOP]. 2. Programming is an activity which usually involves converting designs into bodies of working (and tested) code and support materials (test scripts, whatever). [There are better definitions, but this is brief. Again, this is not specific to OOP]. 3. Object-oriented programming, depending on your perspective, is either i) programming in an object-oriented programming language (OOPL); ii) programming in an "object-oriented way" using a non-object-oriented language; iii) programming in an "object-oriented way" using an object-oriented language. Case i is fairly common; look at developers who are suddenly given C++ compilers without training. I was guilty of this for a while when I was first using Smalltalk. Case ii is what many followup postings talk about. I do this myself for Microsoft Windows programming in C. Takes rigid discipline and still there are facets of OOP which are beyond my reach (message passing, "true" classes, etc.) case iii is what many practicing engineers are moving toward. There is, of course, the case iv where you basically program in a non-object-oriented way using a non-object-oriented language but claim to be doing object-oriented programming :-). So, if you're still reading this, the point is there is a bit of confusion here between OOP and OOPL---one is a process, the other a technology. I haven't read of a consistent, agreed-upon feature set which can be used to evaluate OOPLs, but a reference article, for those interested, is: P Wegner, "Dimensions of Object-Based Language Design," OOPSLA '87 Conference Proceedings, Special Issue of SIGPLAN Notices, Vol 22, No. 12, Dec 1987, pp 168-182. -- James Kiso, Bull Software Technology kiso@granite.cr.bull.com All the obvious disclaimers apply.