I don't get it

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

I don't get it

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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

RE: I don't get it

Ron Teitelbaum

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

[hidden email]

Follow me on Twitter

twitter.com/RonTeitelbaum

www.3dicc.com

 

 

 

From: [hidden email] [mailto:[hidden email]] 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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Bert Freudenberg
<base href="x-msg://322/">
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
Follow me on Twitter
 
 
 
From: [hidden email] [mailto:[hidden email]] 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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Erlis Vidal
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 <[hidden email]> 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
Follow me on Twitter
 
 
 
From: [hidden email] [mailto:[hidden email]] 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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Aw: [Newbies] I don't get it

bblochl
In reply to this post by Erlis Vidal
 
----- Original Nachricht ----
Von:     Erlis Vidal <[hidden email]>
An:      smalltalk <[hidden email]>
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
> [hidden email]
> 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-is-a-prototype-based-language)

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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Redtexture - Mark Jones
In reply to this post by Erlis Vidal
bblochl at arcor.de wrote:


>> you can find it here:
>> http://blog.redtexture.net/2010/06/01/coplien-on-dci-mvc/
>>

> 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.
..."


I have taken the liberty of improving my humble blog's commentary
about Coplien's interview, by linking to Crockford's exploration of
JavaScript's prototypical inheritance system, so the next person that
comes along that is unaware of the paradigm has a link to learn more.

Prototypal Inheritance in JavaScript - Douglas Crockford
http://javascript.crockford.com/prototypal.html

Regards,
Mark Jones
<redtexture>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Erlis Vidal
In reply to this post by bblochl
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, <[hidden email]> wrote:

----- Original Nachricht ----
Von:     Erlis Vidal <[hidden email]>
An:      smalltalk <[hidden email]>
Datum:   <a href="tel:21.06.2011%2015" value="+12106201115">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
> [hidden email]
> 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-is-a-prototype-based-language)

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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Aw: Re: [Newbies] I don't get it

bblochl
In reply to this post by Redtexture - Mark Jones
 


----- Original Nachricht ----
Von:     Redtexture - Mark Jones <[hidden email]>
An:      [hidden email]
Datum:   21.06.2011 20:27
Betreff: Re: [Newbies] I don't get it

> bblochl at arcor.de wrote:
>
>
> >> you can find it here:
> >> http://blog.redtexture.net/2010/06/01/coplien-on-dci-mvc/
> >>
>
> > 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.
> ..."
>
>
> I have taken the liberty of improving my humble blog's commentary
> about Coplien's interview, by linking to Crockford's exploration of
> JavaScript's prototypical inheritance system, so the next person that
> comes along that is unaware of the paradigm has a link to learn more.
>
> Prototypal Inheritance in JavaScript - Douglas Crockford
> http://javascript.crockford.com/prototypal.html
>
> Regards,
> Mark Jones
> <redtexture>
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>

Thank you vey much for the interesting link!


Regards

B. Blochl
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

dcorking
In reply to this post by Erlis Vidal
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
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Bert Freudenberg

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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Erlis Vidal
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 <[hidden email]> wrote:

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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re[2]: [Newbies] I don't get it

Herbert König
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  

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

bblochl
In reply to this post by Erlis Vidal
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 [hidden email] 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

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Erlis Vidal
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 <[hidden email]> wrote:
Am <a href="tel:21.06.2011%2015" value="+12106201115" target="_blank">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
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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Jerome Peace
In reply to this post by bblochl
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 <[hidden email]> wrote:

From: bb <[hidden email]>
Subject: Re: [Newbies] I don't get it
To: "A friendly place to get answers to even the most basic questions about Squeak." <[hidden email]>
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@...
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@...
http://lists.squeakfoundation.org/mailman/listinfo/beginners

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Trygve Reenskaug
In reply to this post by Bert Freudenberg
Bert,
Thank you for bringing this message to my attention. I am on the [hidden email], 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
Follow me on Twitter
 
 
 
From: [hidden email] [[hidden email]] 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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



--

Trygve Reenskaug       mailto: [hidden email]

Morgedalsvn. 5A         http://folk.uio.no/trygver/

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: I don't get it

Casey Ransberger-2
In reply to this post by dcorking
Comments inline.

On Wed, Jun 22, 2011 at 3:05 AM, David Corking <[hidden email]> 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:

 
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:


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
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners

This is a fun thread:)

--
Casey Ransberger

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners