The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Smalltalk is not object-oriented enough!

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
Smalltalk is not object-oriented enough! Posted: Jan 23, 2005 11:46 AM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: Smalltalk is not object-oriented enough!
Feed Title: Richard Demers Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rademers-rss.xml
Feed Description: Richard Demers on Smalltalk
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Richard Demers Blog

Advertisement

Smalltalk is not object-oriented enough!

Of course, Smalltalk is light-years ahead of any other programming language (or development environment) in this regards. The typical Smalltalk brag is that it is "objects all the way down" -- no primitive types, full reflection, a comprehensive OO tool set, etc. Only, there are places where object-orientation and reflection seem to have been forgotten (at least in VisualWorks).

What is a "bundle" or a "package"? They are named entities, but how does one get program access to one, or to its properties? What "public" methods can be used to work with them? And why aren't their names contained within a namespace? Instead, they seem to be just repository constructs that were added after-the-fact without being integrated into the Smalltalk domain model. Yes, there are undocumented Store methods for finding and working with them, but that isn't the same thing is it?

And then, there are class "categories" - hopefully to soon be a thing of the past - so we won't worry about them.

But what about "protocols"? These are just symbols hung off of each method to bring a semblance of order to otherwise unrelated groups of methods. Anyone can use any symbol as the protocol of any method. On the one hand, this gives programmers (at least those considerate of the readers of their code) a powerful "literate programming" technique for organizing and documenting code. But try to rename a protocol that spans multiple classes or packages, or try to keep protocol names consistent across a complex system; not easy things to do. And shouldn't protocols also be contained within namespaces?

These are symptoms of an underlying problem. The fundamental Smalltalk domain model needs work. Over time, it has been hacked to meet the needs of various tools, like Store, the Refactoring Browser, and the debugger. It should be made to accurately reflect the view of Smalltalk that is presented by the tools, the tools should be made to accurately and completely reflect the Smalltalk domain model, and the public methods of all Smalltalk domain objects should be clearly identified and documented.

VisualWorks Smalltalk is a joy to work with, but it could be even better -- by the simple expedient of being made more completely Object-Oriented.

Read: Smalltalk is not object-oriented enough!

Topic: What are the benefits? Previous Topic   Next Topic Topic: People don't want secure code

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use