Skip to main content


Showing posts from April, 2009

What makes Squeak special?

Avidan Ackerson asked a great question:
I know that Squeak is written in Smalltalk, but are there specific advantages to Squeak over Smalltalk proper?
What makes Squeak special is the Squeak community. Fantastic history and tradition. Inspiring thinkers. Colorful ideas.

For someone used to commercial Smalltalk development, Squeak is a bit of a siren song. I've certainly felt that way. Much of Squeak's GUI wasn't built to satisfy commercial developers, but to get some wild, crazy, next generation media playground for kids and adults to experiment with. Very trippy but sometimes frustrating to someone who just wants to build a CRUD GUI.

If you want to build for the web, Squeak is a nice home for Seaside development. I'm currently using Pharo, which is still Squeak to me, but it may diverge in the near future.

Now to get a little pedantic:

Squeak is a Smalltalk. It is written in Squeak Smalltalk[*]. Visual Works is a Smalltalk. Most of it is also written in Visual Works Smallta…

Seaside Community Service (Picking Up Garbage)

(OK, this post is more for my reference than to teach anything, but hopefully at least I'll learn something!)

Pharo, Squeak, and most Smalltalks have the ability to save everything you are working on when you exit the environment. This saves all of the objects you have created, any text you've written, and if your program is running, it will still be running when you restart the environment, exactly where you left off.

In Smalltalk, we call it saving the image.

Images are cool, but you really shouldn't depend on them for source code control. You should back up your program code using a separate source code control system. Examples include CVS, Subversion, and Git. Some Smalltalks can use those tools and there are certainly bridges for others, but most Smalltalkers use a version control tool written especially for Smalltalk.

In Pharo, I use Monticello. Monticello integrates nicely with the existing tools. In fact, most of the time, I don't even think that I'm using Mont…