Last week we had the Portland Smalltalk User’s Group meeting at GemStone. One of our guests (James Unger) took notes and I’m basing my report on those notes.
The discussion started with a comparison of Seaside to Rails. One difference identified was the ability to debug during server processing (“intra-hit debugging”). Second is the ability to use continuations to treat an abstract view as a reusable component.
Some comments by those with some experience with Rails: (1) Rails “fixes” various things in base classes. While this can be nice, the changes in behavior can be subtle and unexpected for those familiar with the original implementation. (2) Active Record is built-in at a fairly low level; while this can be good, it can also limit flexibility for other persistence solutions. Furthermore, the implementation of Active Record creates new classes whose behavior is close to, but not exactly the same as, existing domain classes; this creates additional opportunity for confusion. (3) SQL seems to be a built-in requirement.
GemStone/S has released version 2.3.0 with Pier built-in.
Persistence options (beyond GemStone/S) include GLORP (Generic Light-weight Object-Relational Persistence) that provides a not-so-lightweight option for a SLL back-end. (There was some complaining by a recent user who was struggling to understand the model.) WebVelocity builds on GLORP to provide an Active Record variation in Cincom Smalltalk. A couple of object persistence libraries for Squeak are Magma and Sandstone.
In addition to his typical illuminating commentary, Randal Schwartz made some amusing claims about how his arm was broken.