Smalltalk web development software

99% of my practical experience is with Iliad, so my comparison is primarily about how I got to choose Iliad instead of the others.

  • Seaside. Tried it first, it is the most known and the first you stumble in. I found it hard to understand (as always, no matter what you use, when it gets to real implementation you always run into issues that fit badly with the general theory), there was little documentation around and the community seemed to care little about telling n00bs how to grow up. I eventually dropped it to check Aida. You find them here: http://seaside.st/ and on IRC at #seaside

  • Aida. I really liked it, as Janko is extremely patient and supportive. It is large, though. I decided to use it, when I was to start implementation for our project and it was only by chance that I ran into Iliad a few days before starting. You find Aida here: http://www.aidaweb.si/ and on IRC at #Aida

  • Iliad. The main reason I chose it was that I had just dropped Squeak and switched to gnu-smalltalk. gst seemed to have a lot of ongoing activity on Iliad, so I reckoned I was probably going to get a better assistance with it. It is much smaller as a concept (though it does absolutely everything) and I had very little trouble in getting started and in tweaking it to what I needed for. It also proved to be well managed, as I went thru 3 releases without ever being in trouble with what I had already deployed. You get answers to questions usually in 12-24 hours max, which is fine for me. You find Iliad here: http://www.iliadproject.org/index on IRC issues are usually channeled on the #gnu-smalltalk channel

What we are doing is a GUI for a PostgreSQL database used to manage a large multimedia dictionary, that in turn produces content (among others, for KDE-edu). I have no notion of booking apps in general, so I cannot answer to your question properly.

Yet, speaking as an analyst, a booking app is mostly a DB with an online GUI, so I see no reason why you could not make it. Much will depend on how easily your db can translate into objects. You could use a RDBMS, as we did, and design tables to map objects, or use an OODBMS. Both solutions have pluses and minuses, none of them is going to have an impact on your choice of framework, I'd say.

My suggestion is that you take a month or so in making experiments and see what better fits you. I don't think there is a tool that fits everyone, we are all different and what is easy for me may be hell for someone else (and the other way round, obviously). So try your car before buying it ;)

I would not invest too much time in studying the general theory. Using a smalltalk framework is going to turn upside down the way you make a web app anyway, and your first contact is going to be full of "false friends" you inherit from previous mindsets. Your best asset is definitely going to be "how quick can I grasp what they tell me", and this is largely an individual thing, depending on you and on who you bump into. So I'd really suggest you get your hands dirty BEFORE reading too much theoretical stuff.


Let me introduce some strengths of Aida/Web too, because as its author it would be hard to me to compare with other two frameworks. Aida strengths are:

  • RESTfull URLs
  • MVC support, every domain object can have its own RESTfull URL, each domain class has its own web presentation class,
  • Integrated AJAX and Comet support, you don't see any difference between a traditional and Ajax programming anymore,
  • Tree-like control flow for GUI-like control flows, without need for continuations
  • Building web pages programatically by composing from components/elements (no template based)
  • Scalable in complexity and performance
  • Integrated security with access control and users/groups management
  • Ported to most Smalltalk dialects: Squeak/Pharo, VisualWorks, Gemstone GLASS, Dolphin, Smalltalk/X

Prime and most fresh example of Aida at work is this year Smalltalk Google Summer of Code site.

This is the is a nice example because it was developed it in maybe a week in total, together with a development of GSoC process in parallel and in the same time managing that process as an admin. This site is actually an extended Aida/Scribo CMS, with strong use of so called scriblets, that is, dynamic web "includes" directly into the content of the site. That way I was able to very quickly support the new ideas which come during the evolving GSoC process.


Well, Suixo uses Seaside. Take a look at the GSoC projects we defined. Its more ERP than bookkeeping, and currently focused on healthcare.


These frameworks are all quite different and have different goals. It would be interesting to collaboratively create some kind of comparison.

As an author of Seaside I can provide the key properties of Seaside only:

  • Seaside makes building web applications feel like composing traditional GUIs: components can be freely composed and reused. Sequences of components are defined using a sequence of Smalltalk statements.

  • Seaside has a layered architecture, providing you with high-level abstractions (components, control flow, callbacks, HTML generation, JavaScript generation, ...) over low-level concepts (HTTP, Request, Response, URLs, HTML, JavaScript). If you need to, Seaside gives you full access to low-level constructs too.

  • There are two Seaside books to help you get started: Dynamic Web Development with Seaside and Seaside Tutorial.

  • Seaside provides a tight integration into various state of the art web technologies: JavaScript (JQuery and JQueryUI), SVG, RSS, HTML5, Comet (Server-Push)

  • Seaside runs identically on most today's Smalltalk platforms: Pharo Smalltalk, Squeak, GNU Smalltalk, GemStone Smalltalk, VW Smalltalk, VA Smalltalk, and Dolphin Smalltalk. It is supported by all vendors of Smalltalk platforms.

  • Seaside provides industry proven open-source components for meta-modeling (Magritte) and content management (Pier).

Tags:

Smalltalk