Jython vs Squeak for teaching multimedia

Michael Roberts mike at mjr104.co.uk
Fri Jul 5 01:47:09 UTC 2002


Hi Alan,

<snip>
> Well, I think this is a confusion with "objects" and some of today's 
> "object-oriented systems". In the "Early History of Smalltalk" paper 
> I wrote back in '93, I seem to remember pointing out that the first 
> three principles of objects that came to me in '66:
>    * Everything is an object
>    * Objects communicate by sending messages (which thus must be objects)
>    * Objects can remember (memory thus via objects)
> had stood the test of time. In fact the most annoying properties of 
> today's Smalltalk/Squeak stem from the parts that haven't been 
> completely objectified.

I was just wondering which bits you find the most annoying/least objectified in todays Smalltalk/Squeak?    

Cheers

Mike

p.s.

I think your comments on the lasting effect of the first paradigm one learns and your early experience with learning so many different languages very interesting.  

There was a thread recently discussing Python and it became quite thought provoking but I didn't pipe up at the time - 

I find it interesting that different language communities each define, implement, and to different degrees defend, their own versions of 'OO'.  I find that some people who learn OO through one language can be left with a lasting understanding that is at odds with others who have learnt in a different language/environment.  I find this particularly with respect to paradigms and the implementation of design abstractions.

I don't wish to appear critical with any particular language but I never manage to resolve some of my following thoughts when I follow discussions on how best to teach objects, and software more generally, to people :-

Python, for example, lets you write (and think) in three paradigms - procedural, functional and object oriented.  I had no understanding of functional programming before I met Python and it provided a neat way for me to learn totally new ideas.  Deep within a complex systems programming task, however, I found it difficult to understand code that constantly switched between all three paradigms.  It evolved in this state, because this was the favoured style.  It's not necessarily right or wrong but prompted me to think about the differences between languaes that provide power through simplicity and languages that provide power through features; and how a paradigm, or a number of paradigms is presented and offered for use.  

Moving from the paradigm to the implementation of it in a specific language I find lots more juicy things to think about.  Reuse through templates in C++, for example.  Also, different languages provision of object references and how they can be passed around.  The difference between static and dynamic typing.  Casting!!!  I won't go on.

I think I'm just tying to illustrate that the lasting impression of the object paradigm, if you could only experience one of (for example) Java, C++, Python, Delphi, Smalltalk is going to be different, possibly not the best impression, and thus undesirable.  It's only by taking a meandering path through these languages (and more) that I'm maybe beginning to appreciate the qualities of the paradigm rather than that of the language.  I started thinking down these lines when you mentioned that you had experienced lots of different ideas early on and after all, they're just ideas.  I think that maybe these days, with many languages, a lot gets in the way of the fundamental 'ideas' and to see them you have to experience many languages to extract the gems.  I wouldn't wish some of my language experiences on anyone :-) 

Am I right in thinking that one could provide an object environment to learn in that removes the emphasis from learning the language to squarely learning the paradigm - and thus not leave an inappropriate lasting impression? I guess this is what you have done with E-toys but I hadn't thought about extrapolating that style of environment to (i'm not sure of the right word) an 'older' or maybe more 'involved' audience until you expressed the ideas for media-rich learning environments.  

Is the problem therefore that by teaching the object paradigm through a specific language you essentially distort the paradigm to its expression and realisation in the language?  Only by providing an environment that allows the understanding of the difference between the paradigm and the technique(s) of modeling in the paradigm can you fully appreciate the difference and thus benefit the most from the experience?  

One can then, if desired, go on to play in many different languages - and to some extent discover the realities of how some communities view 'objects'! 

Mike





More information about the Squeak-dev mailing list