Am I alone in thinking RubyOnRails is horribly factored? I mean, yeah, it is a truly wonderful framework with several truly excellent ideas and, hey, cool we get to program in RubyLanguage and so on. But:
- Why have the controller in one directory, the view in another, and the layout in still a third? Does one view actually have anything to do with the other views under app/view? Does one layout? If so, how come there is a /shared?
- Could someone please tell these guys the difference between a FunctionalTest and a UnitTest? Okay, so what's in a name? Well, what's in it is rails "integration" tests don't have the power of FitLibrary despite the fact that all their examples are subsets of functionality of FitLibrary. And when you want to actually do a fit-style test, hey, you're on your own - figure out where to get the magic assigns hash and go peeking in there to find what you want. Time for FitOnRails?
- Partials ... why the hell can't I just treat any old view as a partial? Then I could use CompositePattern on my views ...
- Scaffolding ... ugh! Okay, great, you can whack up an app by inferring GraphicalUserInterface elements from the model. This is ExCellent?. But why can't you keep on inferring? Just let me add a few static declarations to my model and regenerate the damned app! Why am I mucking around in the guts of all this machine generated hokum? And don't tell me I should just replace my controllers/views wholesale - at least don't tell me that and still call the thing "agile"!
- RJS templates. Why the Sam Hill don't you just compile a subset of RubyLanguage into JavaScript? Then the bloody things would just be partials.
- Oh, and while we're on extensible ... I want to derive views. Because I wanna. Because they're goddamned classes fer cryin' out loud!
Well, that's
BlackHat energy for you. These things should be tickets on the rails trac.
As ChuckHagenbuch? from the Horde project says when someone lists complaints: "Patch?" --JasonFelice
But see also http://discuss.joelonsoftware.com/default.asp?joel.3.309321.3 - Not Joel On What Sucks In Rails.
A be-ruttle:
- 1. IT TAKES THE RELATIONAL OUT OF RELATIONAL DATABASE MANAGEMENT SYSTEM (Joel's caps)
- can't you bind to a View instead of a Table?
- Well, it turns out that webserver rebooting requirement really sucks when you're trying to, um, Rapidly Application Develop.
- Rails has no manual.
- we wouldn't read it anyway...
- RubyLanguage didn't used to. Is Agile Development with Rails by the PragmaticProgrammers? any good?
Remaining rants just mean that Rails needs more breadth. And please note how easy Ruby makes cobbling together Rails-like things, regardless how polished they can eventually become.
CategoryRuby