Why I still like Ruby/Rails for web development

Honestly, I never liked Java. I’ve tried it and I still see some potentials, especially in deploying it easily into a web server: copy a single (war) file, what a sysadmin could ask more? But when it comes to programming … well, you know better than me: tons of frameworks, beans and more! It’s a sort of jungle out there.

Well, I started with perl something like 20 years ago and I found Ruby very similar to the perl approach in programming: I mean, I got the impression that it is flexible to write. I then learned rails over ruby and I felt confortable with it. I’m a lazy programmer and having a framework that do everything almost itself was great. A CRUD interface could be easily build with a “scaffold” and the validations are done on the model class. AJAX is easy to plug-in as well with few lines of code.

For a separate project, I had to learn python. What I admire the most about python is that when you look back at your sources, no matter if it was two days or two years ago, you can read it and feel confortable with it as if has passed only few hours. My impression is that is way faster than ruby at execution time and made python my choice to create a system network daemon. As I wrote the core APIs in python, it was natural that I had to write the admin web interface in python. And it was harder than expected: nothing impossible, but it reminded me the old days when everybody needs to code each single CGI page.

Django sounds promising and it does most of the things itself … but limited to the admin interface panel. If you want to do a CRUD as an application, well I have to do everything myself.

So in one side I got python: neat programming, lots of (stable) modules, fast to execute but IMHO poor web framework support.

On the other end Ruby: few modules available and most of them are unstable, code not always easy to read, but great Rails framework that let you code your web application in few hours (or even minutes).

Still I could not make my mind about Ruby and Python.