OO programmers fall into two categories: Smalltalkers and those who don’t get it 6 February, 2007

As we previously mentioned Vassili Bykov recently left VisualWorks to join Eliot Miranda and Gilad Bracha at Cadence. Vassili was “the tools guy” at VisualWorks and contributed a huge amount to the current Smalltalk platform, from core frameworks such as Announcements to new or updated tools such as Trippy, a much enhanced inspector, and Parcel Browser–a wonderful tool for finding and browsing contributed packages. He also did much work on improving the appearance of the VisualWorks UI.

Previously Vassili worked for The Object People as an instructor and as a TOPLink developer. TOPLink is an object/RDBMS mapping software that significantly simplifies object persistence. It is similar to Glorp which is an Open Source project written by some of the same people.

I spoke with Vassili about Smalltalk.

Ron: Vassili I love your comment, “OO programmers fall into two categories: Smalltalkers and those who don’t get it.” It’s easy for me being on the inside looking out. Can you share with us your feelings about the benefits of Smalltalk and OO Programming in general?

Vassili: I’m sure my feelings are very similar to those of most others “on the inside”, so to make it more interesting here is a less common angle. User interfaces are not only the things we see on the screen. A programming language is also a user interface. It presents us with an imaginary world of entities, and the ability to act in that world, that we use to build solutions to our problems.

In About Face 2.0: The Essentials of Interaction Design , Alan Cooper talks about UI “excise”. Excise are those actions required by the UI that have nothing to do with achieving the user’s goal and only support the UI itself. For example, rearranging, resizing and closing windows in a UI that opens a new one for nearly everything you do. In an OO language, messages are the useful actions, and most things that aren’t about what one object tells another object is excise. Smalltalk has virtually no excise, which makes it a clean and efficient UI.

As for the benefits of OO in general, I think they lie in the fact that programming is all about building and maintaining a model of the problem and its solution. Objects are a very good construction material, pliable enough that the model is easy to build and change as our understanding of the requirements changes. Which brings us back to the benefits of Smalltalk–as experience shows, objects in languages with higher excise are not quite as pliable.

Ron: The death of Smalltalk has been predicted many times. Some would argue that Smalltalk is already dead. What do you think is missing from Smalltalk, if anything, which is limiting its broader appreciation, or do you believe like some that Smalltalk is the professional developers best kept secret?

Vassili: A rich corporation pouring hundreds of millions into marketing and open-source development would be a very welcome addition indeed. Failing that, it’s the same thing as for everything else at the software bazaar: Smalltalk needs to offer something of value to get attention. We on the inside know how great and liberating the language is, but it takes time and effort to get to the point where one can appreciate that.

On the other hand, there are quite a few roadblocks. One has to accept things such as the weakness–or the outright ugliness–on the UI side, or the lack of a simple deployment story, or the relative isolation from the underlying OS facilities. This is essentially a credibility issue, since for many developers it is unthinkable that a serious tool would not provide these. (What I just said is not entirely true of Dolphin, Ambrai, S# and a few others, but I am speaking of the implementations that are closer to me. After all, it’s Squeak that is the lead Smalltalk representative in the Open Source universe).

In the case of Squeak nothing can fix these but the community. Which makes growing the community and advancing such projects–not blue-plane stuff, just things that matter for the developers–very important.

In fact, I want to say a few words in defense of the pink plane. Yes, Smalltalk is this great thing that is much more than just a programming language. It’s an almost organic malleable “stem cell” that can grow into virtually anything. Alan Kay is famously disappointed by people not recognizing this. Matz of Ruby fame quotes him say that Smalltalk is a dead language he doesn’t like anymore, that Smalltalk-76 was closer to his ideas than Smalltalk-80 which was strongly influenced by Lisp. No matter how true that is, I think such a viewpoint lacks appreciation of how important it is to popularize Smalltalk philosophy by making it attractive to “the masses” and by growing the community of active users. It is thanks to the success of Smalltalk-80 and its descendents that many Smalltalkers, myself included, had discovered the better way.

A professional photographer may shoot a hundred photos and select one to keep. There should be no shame about a hundred people writing boring mundane stuff in Smalltalk as if it were plain old Java. If that makes Smalltalk visible enough to attract one person with a spark who will get a bright idea and for once use Smalltalk “right”, those hundred mundane apps will also have made their blue plane contribution.

Smalltalk is indeed more than a language. It is a cultural phenomenon, and it needs a community for that culture to live on. If the community disappears, that’s when Smalltalk will truly die. But as there doesn’t seem to be anything quite like Smalltalk around, I don’t think there is any danger of it happening anytime soon.

Ron: You have been working on the commercial Smalltalk product. Now that the chains have been lifted and you get to work with Squeak, will you be contributing your skills to building some of those tools you are known for?

Vassili: I hope it’s OK for me to reveal that Squeak development tools are not the market Cadence has plans for, so building tools in Squeak will not be my first priority. On the other hand, I haven’t seriously looked at Squeak for many years, and now I very much enjoy studying what has changed and what is new. I don’t think I’ll be able to resist the old habits. Though I also must say that while the chains have been lifted, attached to them was a not yet perfect but overall quite nice and usable widget library…

Ron: I know that Gilad said he can’t talk about it, but nobody reads these articles, what are you guys up to over at Cadence?

Vassili: Cadence stock is up 15% after your interview with Gilad. It looks like someone is reading. But seriously, I think Gilad did say quite a lot about the important things. I mean, who of the readers really cares what business stuff Cadence is up to? As for what we do, clearly it involves a dynamic OO approach, at the moment it involves Squeak, and it’s a clean slate project that allows us to take a fresh look at many things. This is cool–what else could possibly matter?

Ron: I know the guys over at VW and the entire community will miss you. Did you want to take this opportunity to say goodbye, or did you have any final thoughts or suggestions for your successors?

Vassili: I will miss them too. Cincom Smalltalk team includes some of the nicest and brightest people I’ve worked with. My biggest regret is that I didn’t get a chance to work long enough with Travis Griggs whom we hired in September to work with me on tools–but I very much enjoyed even that short time. I am sure Tools are in good hands now.

In fact, I hope to not have to say goodbye at all. I am a Smalltalker and a member of the same community, and I am staying in touch with many of my former teammates. We might not be looking at the same bugs together anymore, but the friendship remains, and that’s what counts.

Vassili Bykov is a Senior Member of Consulting Staff at Cadence Design Systems. Previously, he was a Tools Technical Lead working on VisualWorks at Cincom Systems, and an instructor and engineer at The Object People prior to that. Vassili’s interests lie in user interface design, taken in a broader than usual sense and including programming language semantics and APIs. He holds a Master’s degree in Computer Science from Moscow Institute of Physics and Technology and a Certified Usability Analyst (CUA) certification from Human Factors International, Inc.

Ron Teitelbaum is a long time Smalltalk Programmer. He is President/Principal Software Engineer at US Medical Record Specialists