On Sun, 7 Mar 2004 03:00:57 +0900, Michael Nestler wrote: >>I am proud to announce new release of SWS web development library. >> >>What is SWS? >> >>SWS is a web development library. Its major design goal is to follow >>the Model-View-Controller pattern, to take the burden of parsing HTTP >>parameters and keeping the session information out of developer >>shoulders and to make web applications easier to write by using reusable >>components. It enables rapid development and easy maintaining of even >>complex web applications, such as database ones (together with database >>access library - SDS. > How does SWS compare to CGIKit or other WebObjects-like frameworks? I > only know Tapestry (Java) and I love it, but I would also like to start > learning such a framework for the Ruby language. It would be great if > you could compare your framework if possible. The most usual question - I think I'll add the answer to the announcement and documentation on next release :) Disclaimer: the comparison below can be unfair, incomplete, biased or totally wrong - but I am writing it using my best knowledge (which may be a bit out of date). Please correct me if I am wrong at any point. SWS vs CGIKit: The biggest difference is that CGIKit (as the name suggests) supposed to be used to create CGI and mod_ruby (= non-persistent) applications. In contrast, SWS is designed to create persitent, FastCGI or standalone applications. So if you want to write some short script, CGIKit may suit you better. But if you need to implement a full-blown application, SWS should be better. Another differences - Session objects and binding/slot handling are a bit simplified in CGIKit, while in SWS they are very similar to what WebObjects offers. But in fact it is rather a small difference for the user. I also think SWS has better documentation now, however CGIKit docs are good too. I just realized Suzuki has an example of addressbook and I use such an example for a tutorial :) But this is just a conincidence, I didn't meant to pick his brain :) I was about to write SWS has a database library coupled with it and CGIKit doesn't, but I entered CGIKit homepage and saw something called TapKit, so SWS has no longer clear advantage at this point :) Yet TapKit only supports MySQL now and SDS supports also PostgreSQL (and it is very easy to add support for new databases). I also want to make SWS as fast as possible without loosing the functionality - I would like to rewrite the core in C, if it would improve the speed. I think Ruby is really missing a library to write serious, complex WWW applications and would like to fill this gap. I know there is still a lot of work before me, but I would gladly see Ruby in the areas where now Java (for example) is used. That's why I want to create real development tools for SWS (using KDevelop and Quanta as a base probably) - I know it is possible to write everything using Vim (I use it myself a lot), but - using WebObjects daily at work I realize how often simple tools like WebObjects Builder and EOModeler can save your butt :) After all, SWS and CGIKit are quite similar - if the biggest difference I mentioned above wasn't there, I would be probably involved in CGIKit development now :) There is a possibility SWS and CGIKit could merge at some point, but right now there are too many differences in design, not the functionality... SWS vs Java libraries (WebObjects and Tapestry): SWS is modelled after WebObjects, so in the areas where Tapestry is similar to WO, it is similar to SWS too :) SWS is intended to be as similar to WebObjects as possible, but there are a lot of differences caused by the differences in underlying programming languages. There are also some WebObjects concepts missing in SWS, like D2W and external adaptors. I'd like to add some new ideas to SWS, like internal testing capabilities, which are absent in WO. -- Marek Janukowicz