[squeak-dev] [ANN] Altitude
colin at wiresong.com
Wed Jul 18 00:11:55 UTC 2012
On Tue, Jul 17, 2012 at 3:30 PM, radoslav hodnicak <rh at 4096.sk> wrote:
> Can you describe how it compares (or doesn't) to Seaside or other web
Sure. Seaside is probably the best comparison. I cut my Smalltalk
teeth writing a Seaside app, so it's had a huge influence on Altitude.
Altitude will feel familiar to those who've used Seaside before. It
has Component trees that render themselves using a canvas-style
protocol, and uses blocks as callbacks. Like Seaside, Altitude takes
care of generating urls and form-field names, so application
developers don't have to write a lot of code to route requests or
marshal server state into strings.
The main difference between Altitude and Seaside is that Seaside is
session-oriented, Altitude is resource-oriented. Seaside generates
unique urls for every interaction with the user, while Altitude
generates RESTful urls. The upside of that is that Altitude is more
cacheable than Seaside and has (potentially) more scalable memory
usage than Seaside. The downside is that it lacks Seaside's inherent
security. (Implementation note: Altitude doesn't use continuations. An
early prototype did have an implementation of call/answer based on
partial continuations, mostly to prove it would work, but I haven't
needed that in practice, so I took it out.)
Another difference comes from Xtreams. Seaside implements several
server-adaptors that allow it to work with various HTTP
implementations, like Kom, Zinc, Swazoo etc. Altitude implements its
own web server on top of Xtreams and takes full advantage of the
flexibility that Xtreams offers. Altiude uses Xtreams pervasively and
it's a huge improvement over the classical ST-80 stream protocol, both
in terms of design flexibility and performance.
Finally, Altitude provides less insulation form HTTP than Seaside
does. Seaside was designed to handle the details of HTTP so that the
developer can focus on his application. Modern web applications,
however, make more use of the features and details of HTTP (via AJAX,
for example), than in the past, and so Altitude exposes HTTP to the
application more than Seaside does. This may be because of Altitude's
relative immaturity; we'll see how it develops.
It would probably be good to implement some example applications in
Altitude, so people can see how the compare to the Seaside versions.
More information about the Squeak-dev