Re:Looking to choose a language & framework--
by felipe on Wednesday June 13, 2007 @07:27PM
(#27935)
Jboss Seam introduced a very interesting concept to deal with sessions called "conversations": http://www.jboss.com/products/seam
Like sessions, conversation objects live across page requests, but die after a given action or event. A Conversation is a mid-ground between a session (long-lived) and a page request (short-lived).
Seam also offers good support for dealing with the session scope: All you need to do is to basically say "hold this object in the session scope" and Seam manages it for you. No cookies or manual session handling (unless you want to)
And looking at Rails code, I find that often DHH overuses Ruby dynamism without practical benefits. Look at Rails::Initializer class and how it starts the application and handles configuration: lots of dynamism and supposed flexibility, but yet there is no simple way to access the active instance of Configuration object from arbitrary place in your Rails application, which is (to me) seems like a first thing anyone would expect from configuration.
Another example is suppressing previously rendered output (in ActionView). "Official" documentation does not mention those methods, I found them (yet again) by drilling through Rails code.
Finally, I am not impressed with Rails session support. With a framework so powerful and "magical" I still need to manually deal with cookies and session data, because there is very weak control over session expiration mechanism in Rails.
Having said all that, I still enjoy developing with RoR w-w-a-a-a-ay more than Microsoft's "WinForms on the web" approach in .NET, and Ruby is really fun.