I think Dare Obasanjo missed the entire point of Smalltalk. Here he explains his (brief) exposure to Smalltalk in college:
"A subclass of Employee that adds protocol needed for
employees with salaries"
Employee subclass: #SalariedEmployee
instanceVariableNames: 'position salary'
classVariableNames: ' '
poolDictionaries: ' ' !
! SalariedEmployee publicMethods !
position: aString
position := aString !
position
^position !
salary: n
salary := n !
salary
^salary ! !
In the example above, there is a method called salary() that takes a parameter n whose type we don't know. n could be a string, an integer or a floating point number. If you are using the SalariedEmployee class in your code and want to set the employee's salary, the only way to find out what to pass in is to grep through the code and find out how the method is being used by others. You can imagine how frustrating it gets when every time you want to perform a basic task like perform a Web request you have to grep around trying to figure out if the url parameter you pass to the Http classes is a string, a Uri class or some oter random thing you haven't encountered yet.
To start with the obvious: Grep? Anyone who actually used the Smalltalk environment for longer than a second or two would know about Senders/Receivers. With Smalltalk, the medium (the image) is the message.
Further down in his post, it's clear that his usage of Python has sold him on the value of dynamic languages - what he missed with Smalltalk was the environment. Squeak (especially the older versions) could be hard to warm up to, but all the basic Smalltalk power is right there - I'd love to know how Dare ended up grepping source files instead of using the browser.
Technorati Tags:
smalltalk