Re: Ruby on Rails?
Andreas Korth <[email protected]> Fri, 28 Oct 2005 13:32:44 +0200
| Newsgroups | gmane.comp.web.webobjects.general |
|---|---|
| Message-ID | <[email protected]> |
On 28. Oct 2005, at 11:57 Uhr, Paul Lynch wrote: > The biggest downside of RoR is the virtual impossibility of installing > Rails on MacOS X. That makes it way too flakey for production use. > Yes, I am aware that some people seem to get it installed eventually > (I did once, too). It's actually no problem to install an run RoR on OS X. Your options range from a fully automatic installer to building it from source. http://www.rubygarden.org/ruby?RubyOnMacintosh http://wiki.rubyonrails.com/rails/pages/HowtoInstallOnOSXTiger > The third is one that applies to all of these web and database > frameworks, as well as the gurus that espouse them - "those who do not > study history are doomed to repeat it". I am suspicious of any > technology that doesn't acknowledge WebObjects - although I should > point out that Ruby has a strong NeXT/Cocoa background. RoR focus is slightly different from WO. EOF is sophisticated and mature but it's also very complex and has a steep learning curve. ActiveRecord (Ruby's persistence framework) is lightweight and by far easier to use than EOF. It supports the key concepts of ORM and it's more than sufficient for most real world applications. I don't actually see the NeXT/Cocoa background of Ruby. Not everything that's cool must necessarily come from NeXT or Apple. > For mid size and small projects, it isn't at all bad. Rails has a lot > of quite rigid conventions about names (pluralised table names, id for > key, etc), which help a lot if you adopt them, but annoy if you can't. These naming conventions are not cast in stone. They support a logical an pragmatic way of developing your app and tremendously reduce the amount of configuration code you need to write. If you like to depart from these conventions, feel free to do so, but be prepared that you'll have to write more configuration code. I wouldn't call that annoying. > Rails embeds code in html. This is evil. As long as this code is completely view-related (such as formatting a date, for example) it is perfectly well placed in a template. If there's controller or model related code in the template, it's the developer who is evil. Not the framework. It is also important to note that Rails comes with two templating systems (ERb and Builder templates) and that you can easily plug-in your own templating system if you like. > Rails has the assumption that you are developing a CRUD app (the same > as the basic WO model), which is only rarely the case for commercial > web apps. I am not sure how well it adapts to other models, as you > effectively have to ignore the generated code to do so. The general > feeling I get from Rails is that it slots somewhere in between the > freeform flexibility of general WO programming and the rigidity and > complexity of D2. I'd far rather take the former, and am very > suspicious of needless complexity. Have you actually seen anything of RoR besides the intro video? Your remarks are completely unfounded and misleading. Just in short: Rails does not assume a CRUD app, it doesn't generate any code if not explicitly asked to and you don't have to ignore any generated code for that matter. > On the whole, I am inclined to take a conservative approach and stick > to WO for larger applications. I am very familiar with performance > optimisation and scaling for WO. For smaller apps, I think it comes > down to the trade off between OSS and the greater refinement of WO. > As buggy as WOBuilder and EOModeller/Xcode may be, they still have a > lot of offer in productivity. Compared with other web projects, RoR > has the advantage of both a reasonably strong OO language and > integration across templating, db access, etc; there's really no > choice. If you take the effort to give RoR a little more attention and perhaps build a real application, you might be inclined to change your definition of productivity. I might have to reconsider my definition of conservative if it means to stick with what you know and easily dismiss what you haven't really looked at. Cheers, Andreas