icon
Ruby on Rails - First Impressions

I'm primarily a .Net developer. At work I use only VB.Net, and personally, I really like it. As far as coding at home, in the past year, I've played around with some Python, as well as spending a fair amount of time exploring full text search engines including Sphinx and Solr (Lucene).

I recently started playing around with Ruby on Rails primarily because I hate PHP, and because Ruby is supported by my hosting service. I realize that Rails has been around for quite a while now, but I'm busy, and learning another language wasn't high on my list of priorities. Besides, PHP was getting the job done, even if I didn't like it.

Coming from VB.Net, with it's ultimate background compiling prowess, I find it to be quite a big change to work on something that isn't even compiled at all. Even today I went to type something up in C#, and was surprised how different the experience was, from what I'm used to in VB.Net. I have to say that background compiling is one area where VB.Net takes the cake.

Anyway, on with the Ruby on Rails story. After reading through some initial tutorials, getting a basic project set up, and a little hello world app, I found that I definitely could come to like Ruby a lot more than PHP. But the thing that surprised me most about it was that using the "scaffolding" feature, you could write an entire CRUD application without even typing a single line of code. Now, a CRUD application isn't really much of an application. It doesn't actually do anything. I mean, it lets you enter data, update data, delete data. But it doesn't do anything interesting with the data. However, I still think this is really awesome.

Awesome as it may be, I didn't expect this kind of programming from something that's open source. I would expect something like this from Microsoft to help all the lowly VB.Net developers to develop apps. I've always thought the whole point of the .Net framework, with WinForms, WebForms, and data-binding is that you could pretty much write an entire app without actually writing any code. In reality however, you do have to write quite a bit of code to do this, or at least do quite a lot of clicking and dragging. However, with Rails, you can pretty much just figure out what kind of data you want to collect, and write a few simple commands at the command line to get all the code written for you. Granted, the default HTML that's generated isn't very pretty, but it is functional. I think that with a little extra tooling, it could easily be taken to a point where somebody who had no idea how to program could just fill out a few standard forms, and build themselves a web app.

Now whether or not this is a good thing is still kind of debatable. Being able to create a basic CRUD app doesn't really get you very far. And I'm not sure if I want to see a bunch of apps on the internet developed by people who don't really know how to program. Because if you don't understand what you are doing, you could possibly have some security problems with your app. Anyway, I think it does one thing really well. It automates a lot of the things that are just mechanical. Allowing me to spend more time implementing interesting features, and less time spend doing mechanical typing just to get the basics in place to enter the data that I want to be able to enter.