jearls@polyslo.CalPoly.EDU ( Stupid ) (10/02/89)
Sorry if this doesn't belong here, but could someone please tell me exactly what IS Object Oriented Programming or Object Oriented Design ? Thanks, - John -- _______________________________________________________________________________ Stupid@Idiots.Anonymous.Com | There's an explanation for everything. Tis a pity jearls@polyslo.CalPoly.EDU | that many of those explanations make no sense. earlsj@AFAL-EDWARDS.AF.MIL | - The Teachings of Ebenezum, volume LXIX
djones@megatest.UUCP (Dave Jones) (10/03/89)
From article <1989Oct2.161552.14306@polyslo.CalPoly.EDU>, by jearls@polyslo.CalPoly.EDU ( Stupid ): > Sorry if this doesn't belong here, but could someone please tell me > exactly what IS Object Oriented Programming or Object Oriented Design ? In a word, no. But be of good cheer. Many will try. The bad news is that they will all tell you something different. You will be amazed by the amount of response your simple looking request will get. Within two or three months we will be well into, "It's not really Object-Oriented unless it uses my favorite trick, namely para-subreferenced attribute enheritance short circuitry."
dune@cbnewsl.ATT.COM (Greg Pasquariello) (10/03/89)
In article <1989Oct2.161552.14306@polyslo.CalPoly.EDU> jearls@polyslo.CalPoly.EDU ( Stupid ) writes: >Sorry if this doesn't belong here, but could someone please tell me >exactly what IS Object Oriented Programming or Object Oriented Design ? Welllll, I am not an expert (so flames will be automatically doused), but here is what I know from working with C++ for about a year now. Object Oriented Programming (also know as the buzz-word from hell), is a method of developing software using some kind of object. An object is nothing more than a collection of data, and the code that operates on that data, usually autonomously. For instance, if I have an object that represents a window, I do not have to store the window data, and I do not have to draw the window on the screen; the window keeps it's own data, and I can tell the window to draw itself on the screen. This has the benefit of isolating instances of windows, among other things. OO Design is the methodology used to design both objects, and applications that use them. It involves isolating the pieces of code that will be both reusable and autonomous, and resolving the functionality and data of these objects. For instance, if I am designing a window system, I would decide that a window is an autonomous object that will be able to draw itself, display bitmap data, and determine it's optimum size. To this end, it will need to keep it's own coordinates, length and width, the bitmap data, etc. In addition I will need to define an interface to the application code that will be consistent across instances of windows as well as flexible. I feel as if I should recommend a book here, but I can't think of one off the top of my head. Hope this helps though! -Greg
kentb@Apple.COM (Kent Beck) (10/03/89)
An object has identity (can be differentiated from all other objects), responds to stimuli idiosyncratically, and contains hidden internal state. OOD is the process of dividing responsibility among collaborating objects. See my paper with Ward Cunningham in OOPSLA '89 (which I am right now missing because of impending fatherhood- Hi everybody, I miss you). Kent
jnh@ecemwl.ncsu.edu (Joseph N. Hall) (10/04/89)
In article <2109@cbnewsl.ATT.COM> dune@cbnewsl.ATT.COM (Greg Pasquariello) writes: >In article <1989Oct2.161552.14306@polyslo.CalPoly.EDU> jearls@polyslo.CalPoly.EDU ( Stupid ) writes: >>Sorry if this doesn't belong here, but could someone please tell me >>exactly what IS Object Oriented Programming or Object Oriented Design ? >... >I feel as if I should recommend a book here, but I can't think of one off the >top of my head. I can. See the first few chapters of Bertrand Meyer's book (the Eiffel reference manual, from Prentice-Hall). It's called Object-Oriented- something-or-other (too many books on my shelf starting with object-oriented- for me to remember). He gives a lucid, concise, thorough treatment of all of the major topics relating to object-oriented software design, and convincing arguments for the use of object-oriented design as well. It is not necessary to know or care about Eiffel in order to read the first parts of this book; they ought to be required reading for people being introduced to OOP, at least until an OOP book that doesn't cover just one OOPL comes along. v v sssss|| joseph hall || 4116 Brewster Drive v v s s || jnh@ecemwl.ncsu.edu (Internet) || Raleigh, NC 27606 v sss || SP Software/CAD Tool Developer, Mac Hacker and Keyboardist -----------|| Disclaimer: NCSU may not share my views, but is welcome to.
jima@hplsla.HP.COM (Jim Adcock) (10/04/89)
>Sorry if this doesn't belong here, but could someone please tell me >exactly what IS Object Oriented Programming or Object Oriented Design ? What is god? what is motherhood? what is apple_pie? What is jazz? What is? 1/2 :-) .....More than half seriously, I'm not sure anyone agrees on what OOP is, but everyone agrees the other guy isn't doing it. See "Genericity vs Inheritance vs Delegation vs Conformance vs..." by Blair, Gallagher & Malik in Journal Object Oriented Programming Sept/Oct 1989 for what appears to be an intelligent but not easy to read discussion of what is or isn't in OOP while avoiding taking sides. [I've scanned this, haven't really read it yet] Most articles on "What is Object Oriented Programming" are heavily biased to define the answer in terms of the author's favorite language.
ech@cbnewsk.ATT.COM (ned.horvath) (10/04/89)
In article <1989Oct2.161552.14306@polyslo.CalPoly.EDU> jearls@polyslo.CalPoly.EDU ( Stupid ) writes: >Sorry if this doesn't belong here, but could someone please tell me >exactly what IS Object Oriented Programming or Object Oriented Design ? From article <2109@cbnewsl.ATT.COM>, by dune@cbnewsl.ATT.COM (Greg Pasquariello): [ short article deleted ] > I feel as if I should recommend a book here, but I can't think of one off the > top of my head. Hope this helps though! I can strongly recommend Bertrand Meyer's "Object-Oriented Software Construction," Prentice-Hall '88. This is one of the few places I've seen anyone actually set forth the reasons for doing O-O at all, what kinds of characteristics one might want in an O-O programming system, etc. Examples are all in the author's (commercial) language Eiffel, but the lessons are pretty much language-independent. A great intro. Disclaimer: I have nothing to do with Meyer, UCSB, ISC, or Eiffel (I don't even own a copy of Eiffel, just the book). =Ned Horvath=
scc@cl.cam.ac.uk (Stephen Crawley) (10/04/89)
>>Sorry if this doesn't belong here, but could someone please tell me >>exactly what IS Object Oriented Programming or Object Oriented Design ? > >What is god? what is motherhood? what is apple_pie? What is jazz? What is? > > 1/2 :-) > >......More than half seriously, I'm not sure anyone agrees on what OOP is, but >everyone agrees the other guy isn't doing it. I often refer people to the article "Learning the Language" by Peter Wegner in the March '89 issue of Byte. Wegner gives good definitions for lots of terms (e.g. object-oriented, object-based, class, abstract data type) that are commonly used as buzzwords. In the process of doing this, he classifies a number of well established programming languages and systems. -- Steve
jima@hplsla.HP.COM (Jim Adcock) (10/05/89)
> I can strongly recommend Bertrand Meyer's "Object-Oriented Software > Construction," Prentice-Hall '88. This is one of the few places I've seen > anyone actually set forth the reasons for doing O-O at all, what kinds of > characteristics one might want in an O-O programming system, etc. Examples > are all in the author's (commercial) language Eiffel, but the lessons are > pretty much language-independent. A great intro. I think the Meyer is a good book, worth reading, but heavy on the Eiffel dogma. At least read several different books, the Smalltalk books, the Brad Cox book, a good C++ book like Lippmann, etc, so that all the dogma you get exposed to from various sources will start to cancel out. Finally, spend more than a superficially amount of time programming in the different languages in order to get over the initial blush of playing with a new toy, and start finding the real language problems you have to work around -- problems that every language has in one form or another. Also Journal of Object Oriented Programming covers several languages each month.
jima@hplsla.HP.COM (Jim Adcock) (10/06/89)
>I often refer people to the article "Learning the Language" by Peter Wegner >in the March '89 issue of Byte. Wegner gives good definitions for lots of >terms (e.g. object-oriented, object-based, class, abstract data type) >that are commonly used as buzzwords. In the process of doing this, he >classifies a number of well established programming languages and systems. I got around to reading the Blair, Gallagher & Malik article, and liked it a lot. They make a reasoned argument for a more general discription of "object oriented" than Wegner. They also cover a number of the most recent language issues.
yost@esquire.UUCP (David A. Yost) (10/10/89)
In article <9450002@hplsla.HP.COM> jima@hplsla.HP.COM (Jim Adcock) writes: >At least read several different books, ... so that all the dogma you >get exposed to from various sources will start to cancel out. Finally, >spend more than a superficially amount of time programming in the different >languages ... It's too bad that 99% of us will never have time to do these things nor have the authority to pick the language we prefer to use, and so what we end up using will be whatever language musters the most PR/buzzword/advertising/backward-compatibility/hearsay/availability momentum. --dave yost
jima@hplsla.HP.COM (Jim Adcock) (10/12/89)
> yost@esquire.UUCP (David A. Yost) / 7:23 am Oct 10, 1989 / >In article <9450002@hplsla.HP.COM> jima@hplsla.HP.COM (Jim Adcock) writes: >>At least read several different books, ... so that all the dogma you >>get exposed to from various sources will start to cancel out. Finally, >>spend more than a superficially amount of time programming in the different >>languages ... > >It's too bad that 99% of us will never have time to do these things >nor have the authority to pick the language we prefer to use, and >so what we end up using will be whatever language musters the most >PR/buzzword/advertising/backward-compatibility/hearsay/availability >momentum. Well, one technique to learn a bunch of Object Oriented Programming Languages is to choose one--as you suggest based on PR/buzzword/management-dictate etc, and then when your programming project fails based on that choice, you then get to go back and learn another OOPL. I think for most people, making the wrong choice once will either smarten them up enough to make a good choice the next time, or to drive them out of Object Oriented Programming altogether. Ideally, one would work for a company that knows "on-the-job" training is the most expensive. But on-the-job training can be effective too-- just not as cost/time effective. I would encourage people who make/are-given a bad first choice of OOPLs not to give up on the field, but rather to go back, study the other languages, and go for a more reasoned choice the second time.