A while back on one of the lists I belong to the talk was about Ruby on Rails and Model View Controller types of development environments. I spent a few days reading up on the subject, mostly concentrating on RoR, but a bit on the Eclipse IDE too as it came installed with this FC4 distro. Eclipse is great for Java types, but not something I want to do so it’s toast here.
That left RoR to play with, also pre-installed with Fedora Core 4 – well sort of. The basic Ruby engine is there, but for Rails there are a number of other programs and dependencies that need to go with it. Luckily Google brought up some good tutorials and I used what I needed to complete my installation.
It took a couple hours to get everything in place, really impressed with the lighttpd server, blazingly fast for this particular useage. After going through a couple of the tutorials for creating basic apps like bookmark or contact managers, I’ve found the hype around Ruby on Rails is correct in that to create a small, very basic application like above took all of ten or twenty minutes following the tutorials.
Which is impressive if you were going to sit down and type the 100 or so lines of PHP, (or whatever script you like), and spend an hour to recreate the same thing. In my smaller world though, it’s fastest to grab a script that I’ve already used and compartmentalized to my own liking out of my web toolbox and paste that in. With RoR you still need to create your own database schema so unless it’s something radically different than the gazillions of others out there already written, there isn’t any savings in that department.
There are what’s called “GEMS” for RoR, a collection of ready made pieces that mimic functions and other bits of programs I’ve already spent time collecting and customizing, and it’s as quick as cutting and pasting. But not really any faster for myself in the long run with all the other files and server tweaks you need to do to actually have something, at least for what my clients are asking for. None of them are looking for interfaces with DOOM maps, most of the other GEMS that are available can be had elsewhere. IOW, the ones that I would use are already available in a much, much smaller package than an IDE, and plunked down inside or amongst some other php it’s pretty obvious what it does and how it works to someone that has to follow me.
If you spent all day doing nothing but creating large applications and wanted to learn yet another language, then Ruby on Rails is probably for you. For someone like myself that needs to grab an appy here and there and mix it up with something else, keeping the library up to date is an easier and more flexible way of doing things. For instance, RoR does all of the database CRUD (create, read, update, delete) for you, but my own library holds classes that do the same and are easy enough to customize for a php’er – nothing exotic for the next guy to have to learn and the end result is way fewer files and directories to deal with.
RoR is nice software for those that can make the most of it, not for every web site set-up out there though. In my case where CMS’s are common, there is no real Ruby on Rails based CMS at this time and that’s a show stopper for me personally, but it was fun to play with for a few days and find out the hype is true if it’s a tool that matches your own development toolbox.