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.
Thanks Erlis
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@3dicc.com
Follow me on Twitter
http://twitter.com/RonTeitelbaum twitter.com/RonTeitelbaum
http://www.3dicc.com/ www.3dicc.com
From: beginners-bounces@lists.squeakfoundation.org [mailto:beginners-bounces@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.
Thanks Erlis
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@3dicc.com Follow me on Twitter twitter.com/RonTeitelbaum www.3dicc.com
From: beginners-bounces@lists.squeakfoundation.org [mailto:beginners-bounces@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.
Thanks Erlis _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Hi guys,
thanks for all responses, I hope to find more insight about this.
here is the interview in which Jim make the statement
http://www.infoq.com/interviews/coplien-dci-architecture
Minute 8:08
Erlis
On Tue, Jun 21, 2011 at 11:13 AM, Bert Freudenberg bert@freudenbergs.dewrote:
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@3dicc.com**** Follow me on Twitter**** twitter.com/RonTeitelbaum**** *www.3dicc.com*****
*From:* beginners-bounces@lists.squeakfoundation.org [mailto: beginners-bounces@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.
Thanks Erlis**** _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Bert, Thank you for bringing this message to my attention. I am on the squeak-dev@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.
Cheers --Trygve
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@3dicc.com Follow me on Twitter twitter.com/RonTeitelbaum www.3dicc.com
From: beginners-bounces@lists.squeakfoundation.org [mailto:beginners-bounces@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.
Thanks Erlis _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
----- Original Nachricht ---- Von: Erlis Vidal erlis@erlisvidal.com An: smalltalk beginners@lists.squeakfoundation.org Datum: 21.06.2011 15:46 Betreff: [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.
Thanks Erlis
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
You find the answer on the page the link to you cited above:
"... It is interesting that (as a consequence of web browsers) the most used language on the planet, JavaScript, satisfies his desire for a non-class-based object-oriented programming language. ..."
To explain it in short: There are two paradigms of Object orientation, a class-based one and a prototype based one. The cleanest class-based one is smalltalk. There are some protype-based languages, with javascript as the most popular one - but most people do not even know that JavaScript is Prototype-based. A prototype-based language, does not make the distinction of classes vs objects: it simply has objects.
"A prototype-based language has the notion of a prototypical object, an object used as a template from which to get the initial properties for a new object. Any object can specify its own properties, either when you create it or at run time. In addition, any object can be associated as the prototype for another object, allowing the second object to share the first object's properties." (from http://stackoverflow.com/questions/186244/what-does-it-mean-that-javascript-...)
There are some more prototype based languages, as for instance "io", derived from self. A new and interesting prototype one is Lisaac (http://en.wikipedia.org/wiki/Lisaac). If you are interested in an overview of prototype-based languaged see http://en.wikipedia.org/wiki/Prototype-based_programming.
Let me first add, that the "siver bullet" of programming has not yet been found. From a system design point of view it has been recognized, that class based design leads to some "rigidification" in growing systems. If you study the pototyping way of OOP you will find a much higher plasticiy of the system. Obviously that is what James Coplien is missing in class-based programming. (I am quite sure that many Smalltalk users will disagree. But do Smalltalk programmers really know the prototype part of JavaScript (not just the DOM) in depths? Or other prototype based languages? As a rule that is not the rule.)
To my regret I have to add, that most of the CS-professors do not know the difference. I had a lot of trouble with this topic in the past. May be things are different in OO-research active countries.
Any flames?
Have fun!
B. Blochl
PS: A personal unsolicited advice of an old man: Do not lose any time with procedural languages! (Possible exception: You have to program close to the processors hadware. because , to my regret, register are still now not objects. )
Hi Blochl,
Thanks for your answer. I did know about Javascript computational model, but you are right, Javascript is a beautiful language and not everyone reach to fully understand it. Maybe because it's mainly used as supported language for the UI.
But many interesting things are happening with it, like http://www.silversmalltalk.com/ and Dan Ingalls' Lively Kernel.
This is the book I fully recommend to anyone that really wants to understand the power of javascript: http://oreilly.com/catalog/9780596517748
On the other hands, I haven't look into Self or Lisaac, so, thanks for mentioning them, I'll look into them.
Now I think I start understanding Jim statement, basically the statement is: Smalltalk (the language) adopted the classical way of OO instead the prototype way, so I don't have all the plasticity I was expecting...
Do the smalltalkers feel this way? Have you experienced rigidification? I can totally understand this in other languges (C#, Java, etc) but Smalltalk provides a high malleability compares to them. Are traits a way to soften the rigidification previously mentioned?
Thanks for all your comments, Erlis
On Tue, Jun 21, 2011 at 12:19 PM, bblochl@arcor.de wrote:
----- Original Nachricht ---- Von: Erlis Vidal erlis@erlisvidal.com An: smalltalk beginners@lists.squeakfoundation.org Datum: 21.06.2011 15:46 Betreff: [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.
Thanks Erlis
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
You find the answer on the page the link to you cited above:
"... It is interesting that (as a consequence of web browsers) the most used language on the planet, JavaScript, satisfies his desire for a non-class-based object-oriented programming language. ..."
To explain it in short: There are two paradigms of Object orientation, a class-based one and a prototype based one. The cleanest class-based one is smalltalk. There are some protype-based languages, with javascript as the most popular one - but most people do not even know that JavaScript is Prototype-based. A prototype-based language, does not make the distinction of classes vs objects: it simply has objects.
"A prototype-based language has the notion of a prototypical object, an object used as a template from which to get the initial properties for a new object. Any object can specify its own properties, either when you create it or at run time. In addition, any object can be associated as the prototype for another object, allowing the second object to share the first object's properties." (from http://stackoverflow.com/questions/186244/what-does-it-mean-that-javascript-... )
There are some more prototype based languages, as for instance "io", derived from self. A new and interesting prototype one is Lisaac ( http://en.wikipedia.org/wiki/Lisaac). If you are interested in an overview of prototype-based languaged see http://en.wikipedia.org/wiki/Prototype-based_programming.
Let me first add, that the "siver bullet" of programming has not yet been found. From a system design point of view it has been recognized, that class based design leads to some "rigidification" in growing systems. If you study the pototyping way of OOP you will find a much higher plasticiy of the system. Obviously that is what James Coplien is missing in class-based programming. (I am quite sure that many Smalltalk users will disagree. But do Smalltalk programmers really know the prototype part of JavaScript (not just the DOM) in depths? Or other prototype based languages? As a rule that is not the rule.)
To my regret I have to add, that most of the CS-professors do not know the difference. I had a lot of trouble with this topic in the past. May be things are different in OO-research active countries.
Any flames?
Have fun!
B. Blochl
PS: A personal unsolicited advice of an old man: Do not lose any time with procedural languages! (Possible exception: You have to program close to the processors hadware. because , to my regret, register are still now not objects. ) _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Erlis wrote:
Now I think I start understanding Jim statement, basically the statement is: Smalltalk (the language) adopted the classical way of OO instead the prototype way, so I don't have all the plasticity I was expecting...
Do the smalltalkers feel this way?
Perhaps. But Squeakers have access to other languages: notably Etoys. It isn't often mentioned that Etoys is an implementation of the Self computation model as a visual programming language for children. Interestingly, almost any Morphic class can easily become an Etoys object. (This won't be surprising to those who know that Morphic was first built for Self.)
B. Blochl wrote:
But I think all that is a bit off topic on a Smalltalk mail list. But to remember: You had a special Croqueford -question I tried to clarify. I think the future mails [s]hould focus on SmallTalk topics.
Not really, in my opinion: this is a Squeak mailing list - not a Smalltalk one. Squeak has been a fertile platform for language experimentation. I would love to hear about other classless languages that have been implemented on Squeak: I think Scratch might be one.
David
p.s. Off-topic: CLOS* is an interesting language inspired by Smalltalk-80, which is so flexible you might want to think of it as classless. I have never programmed in it, but its proponents sound enthusiastic about its malleability. * 'either one syllable rhyming with "dross", or two syllables as in "see-loss" ... [W]ith the exception of slot accessors - all of your application's functionality lives in function and method definitions, not in classes. It's sometimes appropriate to place methods applicable to some class into the same file as that class. It's sometimes appropriate to place all the methods of a generic function into a single file. There are no language constraints on this. ': Nick Levine http://cl-cookbook.sourceforge.net/clos-tutorial/index.html
On 22.06.2011, at 12:05, David Corking wrote:
Erlis wrote:
Now I think I start understanding Jim statement, basically the statement is: Smalltalk (the language) adopted the classical way of OO instead the prototype way, so I don't have all the plasticity I was expecting...
Do the smalltalkers feel this way?
Perhaps. But Squeakers have access to other languages: notably Etoys. It isn't often mentioned that Etoys is an implementation of the Self computation model as a visual programming language for children. Interestingly, almost any Morphic class can easily become an Etoys object. (This won't be surprising to those who know that Morphic was first built for Self.)
Indeed, and thanks for pointing it out. Adding instance-specific methods isn't hard to do in Squeak (Etoys does it), although modifying method-lookup to implement delegation is more challenging.
It seems, however, that prototypes is not really what Jim and Trygve are aiming at. The paper instead mentions Traits, which indeed add a lot of flexibility to the traditional Smalltalk class model:
http://www.artima.com/articles/dci_vision.html
- Bert -
Hi all,
First of all, thanks for the comments.
@Bert:
While reading the artima article I had the idea that DCI could easily be implemented in smalltalk, but then it surprises me when Jim was disappointed with smalltalk implementation. All my curiosity move towards understanding what's the mistake perceived by Jim.
He mentioned that the computational model was conceived right (I'm assuming he's referring to Dr. Alan Kay here) but then the language screwed it up (was this an indirect to Ingalls?) This still not clear to me, there's no reference about why? Or any example of language in which you can look for his ideal of implementation. He just did mention some languages in which DCI could be easily implemented, smalltalk among them but nothing more.
I have the impression that my question is valid in the smalltalk community, but I'm thinking that probably I should ask this in a DCI mailing list, where possible Jim himself could answer my question.
Thank you all Erlis
On Wed, Jun 22, 2011 at 6:18 AM, Bert Freudenberg bert@freudenbergs.dewrote:
On 22.06.2011, at 12:05, David Corking wrote:
Erlis wrote:
Now I think I start understanding Jim statement, basically the statement
is:
Smalltalk (the language) adopted the classical way of OO instead the prototype way, so I don't have all the plasticity I was expecting...
Do the smalltalkers feel this way?
Perhaps. But Squeakers have access to other languages: notably Etoys. It isn't often mentioned that Etoys is an implementation of the Self computation model as a visual programming language for children. Interestingly, almost any Morphic class can easily become an Etoys object. (This won't be surprising to those who know that Morphic was first built for Self.)
Indeed, and thanks for pointing it out. Adding instance-specific methods isn't hard to do in Squeak (Etoys does it), although modifying method-lookup to implement delegation is more challenging.
It seems, however, that prototypes is not really what Jim and Trygve are aiming at. The paper instead mentions Traits, which indeed add a lot of flexibility to the traditional Smalltalk class model:
http://www.artima.com/articles/dci_vision.html
- Bert -
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Hi Erlis,
EV> I have the impression that my question is valid in the smalltalk community, EV> but I'm thinking that probably I should ask this in a DCI mailing list, EV> where possible Jim himself could answer my question.
could you kindly bring the gained insights back here? You opened a very interesting thread here.
Thanks,
Herbert
Comments inline.
On Wed, Jun 22, 2011 at 3:05 AM, David Corking lists@dcorking.com wrote:
Erlis wrote:
Now I think I start understanding Jim statement, basically the statement
is:
Smalltalk (the language) adopted the classical way of OO instead the prototype way, so I don't have all the plasticity I was expecting...
Do the smalltalkers feel this way?
My 2 cents: one can accomplish a prototypal style using an underlying class based system and vice versa, with just a bit of complexity overhead to get it working, as long as the system is malleable and late bound.
If Smalltalk-80 had any disadvantage for going with classes, it's that one regularly has to teach new people what the instance/class toggle in the browser is all about, and a lot of folks, especially when coming from early bound systems where classes are simple blueprints and not actually themselves objects, do seem to struggle with this at first. Fortunately, it becomes natural quite quickly if there is someone around to explain it, and that's why we have these lists!
Perhaps. But Squeakers have access to other languages: notably Etoys. It isn't often mentioned that Etoys is an implementation of the Self computation model as a visual programming language for children. Interestingly, almost any Morphic class can easily become an Etoys object. (This won't be surprising to those who know that Morphic was first built for Self.)
Self went with prototypes because the authors believed that it would reduce cognitive load on programmers. Prototypes also provide cleaner solutions in some case for a couple of other problems, e.g. the fragile base class problem.
Self is a really cool system. There is much less available software for it, and the community seems to be smaller than what we have in the Smalltalk world, but many of the concepts transfer. Self was intended to be "more Smalltalk than Smalltalk" though I wish they'd have said "less" instead:)
I've only dabbled with Self, but Self is alive and well here:
I think this is relevant, if only because a brief study of Self gave me new insight into Smalltalk. In the case of Squeak, they've influenced each other; Etoys supports a prototypal style built above Smalltalk, and all Squeak variants now use a GUI derived from Self.
Also of potential interest: here's an approach to adding prototypes to Smalltalk that struck me as nice and conceptually clear:
http://scg.unibe.ch/staff/adriankuhn/protalk
B. Blochl wrote:
But I think all that is a bit off topic on a Smalltalk mail list. But to
remember: You had a special
Croqueford -question I tried to clarify. I think the future mails
[s]hould focus on SmallTalk topics.
Not really, in my opinion: this is a Squeak mailing list - not a Smalltalk one. Squeak has been a fertile platform for language experimentation. I would love to hear about other classless languages that have been implemented on Squeak: I think Scratch might be one.
An enthusiastic +1!
David
p.s. Off-topic: CLOS* is an interesting language inspired by Smalltalk-80, which is so flexible you might want to think of it as classless. I have never programmed in it, but its proponents sound enthusiastic about its malleability.
- 'either one syllable rhyming with "dross", or two syllables as in
"see-loss" ... [W]ith the exception of slot accessors - all of your application's functionality lives in function and method definitions, not in classes. It's sometimes appropriate to place methods applicable to some class into the same file as that class. It's sometimes appropriate to place all the methods of a generic function into a single file. There are no language constraints on this. ': Nick Levine http://cl-cookbook.sourceforge.net/clos-tutorial/index.html
There's a great book about CLOS and meta object protocols called "The Art of the Metaobject Protocol" which can be purchased here:
http://www.amazon.com/gp/product/0262610744/
I went ahead and requested this be made available to Kindle users for those who enjoy instant reading gratification. It may be a challenging read for folks unfamiliar with Lisp, but Lisp was a strong influence on Smalltalk and is IMHO relevant to this discussion, and worth learning at some point.
_______________________________________________
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
This is a fun thread:)
Am 21.06.2011 15:46, schrieb Erlis Vidal:
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.
Thanks Erlis
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
As I actually found, there already is an implementation of a DCI-System in Squeak/Smalltalk. You can find an article, a documenation and a download on http://heim.ifi.uio.no/~trygver/themes/babyide/babyide-index.html
Also given is a DCI-Maillist: object-composition (at) googlegroups.com.
One might be interested in "The Common Sense of Object Oriented Programming" by Trygve Reenskaug http://heim.ifi.uio.no/~trygver/2009/commonsense.pdf
Regards
B. Blochl
Hi Blochl,
Thanks for the references, I'll take a look immediately.
After my last email I found the DCI mailing list and Jim and Trygve are active member, I haven't asked yet the question about what was wrong with smalltalk implementation but I'll do that and share the answer with you guys.
Thanks for all once again Erlis
On Sat, Jun 25, 2011 at 7:24 AM, bb bblochl@arcor.de wrote:
** Am 21.06.2011 15:46, schrieb Erlis Vidal:
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.
Thanks Erlis
Beginners mailing list Beginners@lists.squeakfoundation.orghttp://lists.squeakfoundation.org/mailman/listinfo/beginners
As I actually found, there already is an implementation of a DCI-System in Squeak/Smalltalk. You can find an article, a documenation and a download on http://heim.ifi.uio.no/~trygver/themes/babyide/babyide-index.html
Also given is a DCI-Maillist: object-composition (at) googlegroups.com.
One might be interested in "The Common Sense of Object Oriented Programming" by Trygve Reenskaug http://heim.ifi.uio.no/~trygver/2009/commonsense.pdf
Regards
B. Blochl
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
DCI = Data, communication, Interaction. Lots of this thinking is new to me too but interesting. I played with BabyIDE a while back when it wasn't very solid. Time to take another look.
What Jim and Tygrve are talking about largely are object instances playing roles These have little to do with the objects class. They have everything to do with the objects behavior and communication in their application. A polygon could be a background, a connector, or a handle for another object for example. The PolygonMorph class has little to do with the role the polygon plays or what messages it needs to receive and send. In squeak 3.9 there was an implementation of Traits which allowed adding methods that don't belong to a class. They apparently could be added to objects or classes arbitrarily. In squeak you can also add an event handler to a object. The event handler allows the object to behave differently. Handles for polygons are an example. The event handler gives them a role in relation to the shape of the polygon they are "handling". It really doesn't matter whether the underlying object is a polygon or an ellipse the behavior is determined by the event handler and not the class of the object.
Hth.
Yours in curiosity and service, --Jerome Peace
--- On Sat, 6/25/11, bb bblochl@arcor.de wrote:
From: bb bblochl@arcor.de Subject: Re: [Newbies] I don't get it To: "A friendly place to get answers to even the most basic questions about Squeak." beginners@lists.squeakfoundation.org Date: Saturday, June 25, 2011, 7:24 AM
Am 21.06.2011 15:46, schrieb Erlis Vidal: 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.
Thanks
Erlis
_______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
As I actually found, there already is an implementation of a DCI-System in Squeak/Smalltalk. You can find an article, a documenation and a download on
http://heim.ifi.uio.no/~trygver/themes/babyide/babyide-index.html
Also given is a DCI-Maillist:
object-composition (at) googlegroups.com.
One might be interested in "The Common Sense of Object Oriented Programming" by Trygve Reenskaug
http://heim.ifi.uio.no/~trygver/2009/commonsense.pdf
Regards
B. Blochl
-----Inline Attachment Follows-----
_______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org