Let’s build the counter application in GemStone/S. We’ll be using a Squeak GUI as a development environment for GemStone/S. While this is quite similar to developing in Squeak, you will notice a few differences.

The most important difference developers need to be aware of is is due to GemStone/S being a multi-user object database with ACID transaction properties. Each GemStone/S VM sees a consistent state of the database in isolation from intermediate changes underway in any other VM. Those changes cannot be seen until they are committed to the database. This is handled automatically in your Seaside application since the GemStone/S Seaside framework immediately commits any data sent from a web client to the GemStone/S application server. However, when writing code, you must manually commit before that code can be used or or even seen by other VM’s. Conversely, if you decide you’ve made a mistake, you can abort and your code changes will be erased.

Start by selecting "Run Squeak" in the "GLASS Appliance" menu in the toolbar. This will open a Squeak image containing a GemStone/S Login window (Figure 32). Click on the "Login" button, type your initials into the box that pops up, than click "accept". This will open a GemStone/S Transcript window (Figure 33). The text pane in the GemStone/S Transcript window is actually a workspace and not a transcript. This will be changed in the next release when this window is reimplemented in OmniBrowser.