From: Stu Date: 2011-06-08T06:12:48+09:00 Subject: Re: Object-Oriented thinking It's interesting you bring up biological cells. Peter Small has an interesting take on the paradigm which is essentially the same thing. He wrote a book to illuminate the idea using macromedia director and the lingo programming language. Interesting enough the syntax for a constructor in that language that was a method called 'birth' which was later renamed 'new'. It's an interesting concept. If you need a visual alias birth new in your class Class and see how it looks birthing an object. Seeing objects as living breathing things is a smart well though out was of seeing constructors/deconstructors. The basic biological concept goes like this: Information processing within a cell is analogous to computer processing. Instead of registers, the processing of information in a cell is organized through surface interactions and shape distortions of chemical molecules. In this way, every human cell acts like a very powerful computer: reading programs, instructions and data from the genome. The genome is essentially your template for your programs and data. Proteins, which are specified by DNA sequences on the cell's genome, mix and combine with each other to form complex structures. These complex structures, in turn, mix and combine among themselves to form even more complex structures which in turn recombine in a multitude of ways to provide the wide variety of organic mechanisms and structures which together make up the living human form. The whole process is based upon is broken down to the use of modular molecular units which are duplicated and combined into different arrangements. This duplication and combining of modular components is the basis of object-oriented programming. The biological genome also creates and sends chemical messages to itself and to other molecular complexes within the cell. These chemical messages initiate cascades of chemical reactions. This is exactly analogous to which how method arguments might trigger cascades of procedures and commands inside methods. Molecular messages can also pass through cell walls, allowing cells to communicate with each other. The billions of cells which make up the human body are linked together though an information system consisting of a vast complexity of chemical gradients and inter-cellular movements of molecules. Cells as computer, all linked together in an information carrying network, could be a suitable model for an information system such as the Internet. ------------- This is my favorite metaphor for new to OOPS programmers and explains the S in the acronym which is SYSTEMS. Makes you almost want to explore AI programming and simulations. You can begin to see some concepts such as computer virus infecting memory locations. It also predates the design-patterns documentation when programmers still implemented such things innately vs learned. Though for someone new to programming all together the mechanical angle which is simple enough to state: a variable that holds a reference to a script template in memory. I'd be interested in reading more about this metaphor. Did Kay write anything I can see? Link or book? I love paradigms =) ~Stu 2011/6/7 Jörg W Mittag : > David Masover wrote: >> On Wednesday, May 25, 2011 01:02:36 AM Chad Perrin wrote: >>> I think your description of the object model and how you think of it is >>> excellent, and it very closely approaches the way I think about it, >>> though I think some of the points you make come off a bit more subtly >>> than they would if I tried to explain it. >> Thank you! >> >> I actually should give credit to... someone. I'm sure these ideas aren't >> entirely my own, but I don't remember where they come from. > > That would be none other than Alan Kay himself. > > Well, actually, he described objects as their own little independent > *computers*, not *programs* as you did, but the rest of your > description is pretty close. (I guess that would make the *methods* > the programs.) > > I'm not entirely sure what the *exact* connection is (maybe Alan Kay > interned at ARPA?) but Alan Kay *knew* about the architecture of the > ARPAnet (what we would now call the Internet and specifically the idea > of messaging as implemented in TCP/IP) when he started to think about > object-orientation. > > He thought that independent machines communicating over the network by > messaging, with no shared memory, was a *brilliant* way to design > complex distributed communication systems, and if it's good enough to > design a worldwide information system, it surely would be good enough > to design programs, right? > > This is the way that pretty much all of his team thought about (and > still does, if you listen e.g. to recent interviews with Dan Ingalls) > object-orientation. Another view that is more peculiar to Alan Kay > himself, is thinking of objects as biological cells. (This is his > biology minor showing through.) > > jwm > >