View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Claudia Iriele

The history of SQUEAK

What exactly is Squeak? According to Webster's definition, Squeak is a high pitched noise but that is not the type of Squeak I am referring to in this discussion, instead I am talking about a type of Programming language. Squeak is an object-oriented, open source-code programming language based on and written in Smalltalk-80, which makes it easy to debug, analyze adn change. It is a platform independent and like, Java, requires a virtual machine for each platform on which it runs. Squeak was originally developed on the Mac OS, but it has been ported to many platforms: Windows 95, Windows NT, Windows CE, most Unix-flavors (Solaris, SunOs, Digital Unix, Linux etc).

Squeak runs on the Mitsubishi M32R/D chip and something called the Itsy (it is a PDA research project that runs on Linux). I am not really sure if Itsy is the correct name but that is what Compaq's Western Research Lab and the Systems Research Center calls it. The development of Squeak started in 1985 and the brains behind were Dan Ingalls, Allan Kay, Ted Kaehler, John Maloney and Scott Wallace. The project was launched to develop an educational platform that could be programmed by nontechies, even kids. The developers also wanted to create a platform for PDAs or Internet access devices where a compact,fast and highly portable OS is required. They considered using Java but decided it was too immature. Smalltalk, on the other hand did not have the audio and graphics capabilities they wanted. The developers decided to build a version of Smalltalk that would meet their requirements and thusSqueak was born.

The Squeak developers (some of them) are at Disney Imagineering trying to develop and advance their work. True to the behavior of the open-source community, a great deal of the work with and about Squeak is available all over the Internet. The neat thing about Squeak is the way it handles objects, real-time audio and music capabilities, and color manipulation. It runs bit-identical images on all platforms and does animation and Web serving. Because it is written in Smalltalk, everything about Squeak application (the code, the virtual machine, etc ) can be manipulated or edited.

In addition, the platform is really small–under 2MB for Squeak, the virtual machine adn a Smalltalk-to-C translator (speeds up Squeak). A Win CE version can run under 1MB. Squeak can be used for commercial applications royalty free, although the license stipulates that any ports of Squeak or changes to the base class library must be made freely available on the Internet. SO Squeak is an Object oriented development environment that can be run on any platform using a VM and supports lots of multimedia capabilities. And it has an open source code that enables developers to tweak any part of a Squeak application. It sounds lika Java but a better version or maybe I am strectching a little.

In Object Oriented Design Process, especially in Squeak, there are basic stages that one has to go through to have a better understanding of the basic idea behind programming especially complex programs. The first stage is Object Oriented Analysis . In this stage you are basically brainstorming candidate classes and type of attributes and services they should have. After brainstorming is completed, you then start to filter and sort which classes you want to keep and which to throw away if any. You may decide at this time to introduce CRC ww1ships, cards which are basically a way to keep track of each class responsibilty and collaborators. CRC cards were invented by Ward Cunnigham adn Kent Beck as a way of exploring how classes interact with each other while performing their various tasks.

The second stage in Object Oriented Design is Object Oriented Design . The analysis stage hands the design stage a set of objects with responsibilities and collaborators. By making the object definitions into classes, we can create as many of the objects as we want enabling us to handle growth and complexity. Enough descriptions is given (usally depending on the programmer) in this stage, making the coding part easy. In this stage, it is highly recommended that a class diagram or UML with a detailed description of their services be given.

The final stage in this process is where you build the code. This stage may require you to come back and forth between the analysis and design or between the design and programming stage.

Finally the neat thing about Squeak is the User Interface. What I like about this is you can either use MVC or Morphic. Squeak provides the user all the toolkit necessary for building any type of UI.

Links to this Page