Aida-Seaside-Iliad comparison
Provides a comparative analysis of the main Smalltalk web frameworks Aida, Seaside, and Iliad, focusing on their features, versions, and supported Smalltalk environments. It highlights Aida's features in relation to the other frameworks, aiming for a more balanced comparison in the future.
Content article
A comparison of three Smalltalk web frameworks—Aida, Seaside, and Iliad—reveals distinct features and capabilities across various categories. Aida, currently at version 6.5, was created in 1996 and supports three Smalltalk environments, namely Squeak, Pharo, and others. Seaside, established in 2003, is at version 3.0.7 and supports five full Smalltalk environments, while Iliad, released in 2009 and currently at version 0.9.1.1, supports three.
Session management is a common feature across all three frameworks, with Aida and Seaside being stateful. However, Seaside has a session timeout of 10 minutes, while Aida does not implement session timeouts. Cleanup of session or application state varies: Aida performs nightly cleanup, Seaside does so at timeout, and Iliad's method remains unspecified. Cookies are utilized in both Aida and Iliad for session identification, with Aida offering them as a standard feature.
In terms of URL handling, Aida excels with its support for MVC architecture, REST-like URLs, and automatic URL generation. It also allows domain objects and applications to have their own URLs, and features two-way URL to object mapping. In contrast, Seaside requires an addon for REST-like URLs and does not support domain objects having URLs. Iliad allows URLs by convention but lacks the other advanced URL handling features found in Aida.
Rendering methods differ among the frameworks. Aida and Iliad use composition for page rendering, while Seaside employs a one-step painting method. Aida’s rendering process consists of two steps, while Iliad and Seaside each have their own unique approaches. Aida generates formatted and readable HTML, while Seaside does not, and Iliad’s status on this is unclear.
Web server support is robust across all frameworks, with Aida using Swazoo, while Seaside and Iliad are compatible with any web server. Aida stands out with its capability for running multiple websites per image, a feature that is common in Aida but rare in Seaside and Iliad.
JavaScript support is universal among the three frameworks, with Aida allowing JavaScript to be written in Smalltalk syntax, a feature not supported by Iliad. Integrated Ajax support is found in Aida and Iliad, with Aida enabling this without the need for explicit jQuery. Both Aida and Seaside support the Prototype/Scriptaculous libraries, while Iliad does not. All three frameworks support jQuery.
In terms of security features, Aida provides users and groups management, parties and roles, access rights, and authentication, which are absent in both Seaside and Iliad. Aida also implements XSS protection through input sanitization, while the status of such protection in Seaside and Iliad remains uncertain. Aida further addresses Denial of Service attacks, demonstrating a comprehensive approach to security.
Control flow capabilities reveal that Aida supports a graph-like navigation model, while Seaside and Iliad both offer tree-like control flow. Seaside requires continuations for tree-like control flow, whereas Aida does not.