Thanks. I find Seaside's security features very valuable for what I do but I also have parts of my applications that (should) behave more REST-like, so perhaps I'll take a look at Altitude for that eventually. Have you measured the performance advantages of using xtreams and if so, how?<div>
<br></div><div>Rado<br><br><div class="gmail_quote">On Wed, Jul 18, 2012 at 2:11 AM, Colin Putney <span dir="ltr"><<a href="mailto:colin@wiresong.com" target="_blank">colin@wiresong.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, Jul 17, 2012 at 3:30 PM, radoslav hodnicak <<a href="mailto:rh@4096.sk">rh@4096.sk</a>> wrote:<br>
> Can you describe how it compares (or doesn't) to Seaside or other web<br>
> technologies?<br>
<br>
</div>Sure. Seaside is probably the best comparison. I cut my Smalltalk<br>
teeth writing a Seaside app, so it's had a huge influence on Altitude.<br>
<br>
Altitude will feel familiar to those who've used Seaside before. It<br>
has Component trees that render themselves using a canvas-style<br>
protocol, and uses blocks as callbacks. Like Seaside, Altitude takes<br>
care of generating urls and form-field names, so application<br>
developers don't have to write a lot of code to route requests or<br>
marshal server state into strings.<br>
<br>
The main difference between Altitude and Seaside is that Seaside is<br>
session-oriented, Altitude is resource-oriented. Seaside generates<br>
unique urls for every interaction with the user, while Altitude<br>
generates RESTful urls. The upside of that is that Altitude is more<br>
cacheable than Seaside and has (potentially) more scalable memory<br>
usage than Seaside. The downside is that it lacks Seaside's inherent<br>
security. (Implementation note: Altitude doesn't use continuations. An<br>
early prototype did have an implementation of call/answer based on<br>
partial continuations, mostly to prove it would work, but I haven't<br>
needed that in practice, so I took it out.)<br>
<br>
Another difference comes from Xtreams. Seaside implements several<br>
server-adaptors that allow it to work with various HTTP<br>
implementations, like Kom, Zinc, Swazoo etc. Altitude implements its<br>
own web server on top of Xtreams and takes full advantage of the<br>
flexibility that Xtreams offers. Altiude uses Xtreams pervasively and<br>
it's a huge improvement over the classical ST-80 stream protocol, both<br>
in terms of design flexibility and performance.<br>
<br>
Finally, Altitude provides less insulation form HTTP than Seaside<br>
does. Seaside was designed to handle the details of HTTP so that the<br>
developer can focus on his application. Modern web applications,<br>
however, make more use of the features and details of HTTP (via AJAX,<br>
for example), than in the past, and so Altitude exposes HTTP to the<br>
application more than Seaside does. This may be because of Altitude's<br>
relative immaturity; we'll see how it develops.<br>
<br>
It would probably be good to implement some example applications in<br>
Altitude, so people can see how the compare to the Seaside versions.<br>
<span class="HOEnZb"><font color="#888888"><br>
Colin<br>
<br>
</font></span></blockquote></div><br></div>