The rantings of a beautiful mind

On life, society, and computer technology.

My Photo
Location: Toronto, Ontario, Canada

I live in the Fortress of Solitude. I drive the Silver Beast. My obsession is justice. I used to be a Windows software developer. I retired in 2000 when my stock options helped me achieve financial security.

Saturday, October 28, 2006

Smalltalk, Objects, and Design

I really like “Smalltalk, Objects and Design,” by Chamond Liu. This book is well-written, eminently readable, and quite informative. While it is not a deep survey of the Smalltalk language, it is an excellent guide. The book goes well beyond Smalltalk to discuss object-oriented design and software development processes in general.

It is also very well-balanced, giving an honest and upfront view of software development. For example,

The Smalltalk language is easy to learn because it is so small. But the language by itself doesn’t do much. It is powerful only in conjunction with the hundreds of foundation classes and thousands of supporting classes that are part of today’s Smalltalk products. You will have to learn many of these classes before you can write clean Smalltalk code. This takes time and practice.

It also takes time to become proficient in applying the ideas in this book — designing with containers, polymorphism, patterns, and so on. Everyone has an innate ability to understand and talk about objects, but not everyone will work long and hard enough with them to become a good designer. Look at it this way: object-oriented development increases our toolkit of techniques, which gives us more ways than ever to make a mess. Without the maturity that comes with experience, it is harder than ever to pinpoint desirable solutions in this enlarged universe of possibilities.

An object-oriented project is no more likely to succeed than any other project. Out-of-touch leadership, misplaced optimism, complacency, the wrong tools, and all the rest are just as likely to afflict an object-oriented project as any other. Successful projects need business acumen coupled with technological knowhow, and you can find these qualities in conventional projects as well as in object-oriented ones.

GUI builders alleviate tedium. They are a pleasurable addition to our bag of software tools. But they don’t make model-view separations automatic and they divert us from the profoundly challenging task — design.

There’s a good chapter on “Design patterns,” too. Hardly a replacement for the “Gang of Four” classic, but I’m too lazy to read a lot, so I really appreciate this chapter.

I highly recommend the book. If you’re at all interested in Smalltalk or object-oriented design (and you want an easy read), this is THE book to get!


Post a Comment

<< Home