3 ms·
I'm currently with RoR and while I love Ruby language I feel that RoR, while being super-productive for basic things, forces me to dig deep into its own (not v
by tx 19y ago
I'm currently with RoR and while I love Ruby language I feel that RoR, while being super-productive for basic things, forces me to dig deep into its own (not very readable) source code to figure out non-trivial things that are not mentioned anywhere in the documentation.
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.
- felipe 19y agoJboss Seam introduced a very interesting concept to deal with sessions called "conversations": http://www.jboss.com/products/seam 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)