[Newbies] I don't get it
trygver at ifi.uio.no
Mon Jun 27 13:06:36 UTC 2011
Thank you for bringing this message to my attention. I am on the squeak-dev at lists.squeakfoundation.org, but only read a few of its messages since so few are about object orientation as Alan defined the term.
May be people have difficulties with class based languages because they are not object oriented -- they are class oriented.
Class based code does not reveal everything about how a system will work (GOF p 23)
Object orientation is about interacting objects. A class describes everything about what an object will do when it receives a message. It says nothing about where the message came from or the context in which it was sent. Class oriented programming cannot say anything about how objects interact to achieve a common goal.The most important things about an object system is what happens in the space between the objects.
Alan Kay coined the term "object orientation":
“In computer terms, Smalltalk is a recursion on the notion of computer itself. Instead of dividing “computer stuff” into things each less strong than the whole--like data structures, procedures, and functions which are the usual paraphernalia of programming languages--each Smalltalk object is a recursion on the entire possibilities of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network. Questions of concrete representation can thus be postponed almost indefinitely because we are mainly concerned that the computers behave appropriately, and are interested in particular strategies only if the results are off or come back too slowly.”
I suggest you study this definition slowly and very carefully. If you find that you think in terms of classes, polymorphism, typing, or other paraphernalia of programming languages, you have missed the point and you need to start again. Because here is the key to understanding the difference between true object orientation and procedural programming. (I have come up with DCI as one way of realizing true object orientation in code).
Classes are hard to understand; true object orientation is simple.
On 2011.06.21 17:13, Bert Freudenberg wrote:
> Maybe Trygve will explain? Not sure if he's reading the newbies list though. CC'ing.
> - Bert -
> On 21.06.2011, at 16:27, Ron Teitelbaum wrote:
>> Hi Erlis,
>> Class based language is very difficult for some people to grasp. I’ve trained a number of programmers. There is this AH moment when people get it. Before that the idea is just so foreign to them that they have a difficult time grasping what is going on. I would often get the question, “but where do I put the code”. The answer is everywhere. Thinking in terms of objects and programming their behavior makes sense. People get that. Make a Robot and teach it how to walk. If I tell the robot to walk she does. Ok great. Now I have all these objects that do stuff where do I put the code? This is where people stumble. In my opinion the leap to understanding is very short. The answer is simple. (Answer: It depends on how you want to interact with the user).
>> I do not believe that anything is screwed up. It is just a conceptual model that requires AH!
>> All the best,
>> Ron Teitelbaum
>> Immersive Collaboration Expert
>> 3d Immersive Collaboration Consulting
>> Ron at 3dicc.com
>> Follow me on Twitter
>> From: beginners-bounces at lists.squeakfoundation.org [mailto:beginners-bounces at lists.squeakfoundation.org] On Behalf Of Erlis Vidal
>> Sent: Tuesday, June 21, 2011 9:47 AM
>> To: smalltalk
>> Subject: [Newbies] I don't get it
>> Hi guys,
>> I was reading recently Jim Coplien ideas about DCI and I was surprised with the following statement:
>> "The Smalltalk people, when they put together Smalltalk originally the computational model was exactly right, in terms of thinking in terms of objects. And then they screwed it up with the language. The language is so class focused! Most languages that we’re saddled with today had made this error."
>> you can find it here: http://blog.redtexture.net/2010/06/01/coplien-on-dci-mvc/
>> Does someone knows what Jim is criticizing? In which sense the computational model was screwed by the language? I see smalltalk as a language that express very well the intended computational model behind.
>> But that's just me, maybe some of you could help me to understand Jim's point.
>> Beginners mailing list
>> Beginners at lists.squeakfoundation.org
Trygve Reenskaug mailto: trygver at ifi.uio.no
Morgedalsvn. 5A http://folk.uio.no/trygver/
N-0378 Oslo Tel: (+47) 22 49 57 27
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners