My travel plans fell through this spring break, so I finally had some time to sit down and take a look at Ruby and the Rails framework — a task that has been on my to do list for over a year. I acquired Build Your Own Ruby on Rails Web Application by Patrick Lenz and got to it. My first thoughts as I started was “gee, this is a lot like Python.” We’ve got an interactive shell at our disposal and the syntax is more natural than say C++. Web development is far from an interactive shell however.
Coming from a PHP background I had several shall I say skeptical moments. From the development/deployment system to the forced MVC architecture. But I convinced myself to at least give it a shot and I’m glad that I did because it has “healed” me of my past experiences with a language that should remain nameless (java–not a big fan). Although I wouldn’t used RoR for a one file application I can definitely see the benefits when developing a more complex application. From what I have discovered (just scratching the surface), the unit tests are the most intriguing to me. All of my past experiences have consisted of tedious manual tests. Having the ability to write your own automated tests without having to setup the framework on your own is almost too good to be true.
What I like so far
Ruby: More enjoyable to program in than Python and I didn’t think that was possible.
Ruby on Rails: I am literally giddy with anticipation to build some of my projects on the platform where I’m handed everything on a silver platter from structure and database abstraction layers to automated testing.. More excited than I have ever been thinking about doing the same projects freestyle in PHP.
What I’m still a little worried about
Unfortunately I’m finding it hard to break some of the habits that I have formed with PHP, which when I learned it consisted of “just hack it till it works” instead of proper coding.
So now that I’ve “seen the light,” perhaps I can spend more time doing what I should be doing (creating a new theme for Jon’s View), and a little less programming 😛