Saturday, November 24, 2007
Squeak by Example
Croquet is written in Squeak, a modern open-source development environment for the classic Smalltalk-80 programming language (the first purely object-oriented language and environment). Squeak was used because Croquet required a number of capabilities that could only be provided by a true late bound, message sending language. Croquet's relationship to Squeak gives Croquet the property of a purely object-oriented system. This has allowed for some significant flexibility in the design and the nature of the protocols and architectures that have been developed for Croquet.
An essential property of Squeak is its ability to keep the system running while testing and making changes. Squeak allows even major changes to be performed incrementally and within a mere fraction of a second. Another key feature is Squeak's generalized storage allocator and garbage collector that is efficient in real-time so that animations and dynamic media of many kinds can be played while the garbage collector is collecting. It also allows reshaping of objects to be done safely. This is important to the creation and delivery of media rich collaborative virtual environments.
Early on in the project, a Java-based Croquet was considered. However, that approach was abandoned because Java lacks needed meta facilities. In many ways Squeak/Smalltalk is still far ahead of its successors in promoting a vision of an environment where everything is an object, and anything can change at run-time. This is an important property for virtual environments that are deeply flexible and modifiable as an immediate result of the actions people take within those environments. Still, the lack of significant corporate backing and marketing muscle behind Squeak/Smalltalk has meant that less capable technologies are the ones with which most of today's developers are most familiar.
To help more people get familiar with Squeak's very powerful programming environment, the new book Squeak by Example is now being made available under the Creative Commons Attribution-ShareAlike 3.0 license. It's intended for both students and developers and guides readers through the Squeak language and development environment by means of a series of examples and exercises. This is very useful to those who wish to become more familiar with the Croquet programming environment. You can either download the PDF for free, or you can buy a softcover copy from lulu.com.