This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Re: ACM Queue: Schizoid Classes
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Lambda the Ultimate links to an interesting article discussing types, modules, and objects. take this, for instance:
Smalltalk-80 was an important and enlightening experiment in just how far object-orientation can be taken in a programming language. It is simple, compact, and shows a rare and refreshing integrity of concept. To accomplish its goals, it introduces the idea that the variables of a class can be either class variables or instance variables, and the methods can be either class methods or instance methods. This turns the class into a mixture of two fundamentally different concepts - type and module - with very different semantics. Smalltalk manages to do this relatively cleanly.
Unfortunately, two more recent languages, C++ and Java, have taken this same distinction and turned it into a gratuitous mess. Let 19s look just at these two languages for a moment, then come back to Smalltalk.
The author then goes on to demonstrate how the consistency of Smalltalk makes it simpler than the alternatives. I do have a quibble on one thing:
Smalltalk pays a high price elsewhere for taking object orientation to the extreme, notably in complete loss of static typing and serious runtime efficiency penalties. Special, one-instance forms of classes are, for many programming problems, not as good a conceptual match as modules. But at least it provides a single, consistent, and syntactically explicit call mechanism.
That's simply not the case. Smalltalk doesn't suffer from "serious runtime efficiency penalties" - arithmetic can be slower in Smalltalk (although it need not be - see the work done on StrongTalk, for instance)> It's an interesting article either way