Femgineer

Ruby Tuesday: Push Button Prototyping in Rails

I realize I’ve been neglectful in posting articles on Ruby development.  So back by popular demand I’m going to make an effort to resume the Ruby Tuesday series.

For the past couples months I’ve been playing with Rails and have been building my product’s prototype with it. The last time I created a prototype for a product I wrote it in Java.  The choice to write it in Java was simply because the founder and I knew how to write Java, and were more productive in it than C++.

After that experience, I spent sometime thinking about all the pains and positives I had experienced with Java and decided it was time to explore another technology.  Initially, I just wanted to know what all the buzz around Rails was about.  Ultimately, my choice to use Rails was based on the following:

  1. Simplicity of Configuration: I started off as the only engineer on the project and didn’t want to spend a lot of time writing migration scripts, files to handle ORM, and having to setup all the mappings in a MVC framework.
  2. Support and Documentation: the Ruby and Rails community has a great number of forums where people are constantly communicating and helping one another out when it comes to resolving issues.  As someone starting without a development team I think thats key, unless you have the luxury of constantly stepping out of your office to talk to another developer or attend meet ups.
  3. Speed of Development: I don’t spend 10 minutes sitting around waiting to compile!  One of the biggest problems I had with developing in Java and all other high level languages was not being able to being able to make a small change and see its impact instantly.  I’d have to sit through compilation or figure out ways to optimize the compilation process.
  4. Flat learning Curve: Now I do know the full stack of development technologies, so it took me less than a day to get an app up and running.  But I still found it pretty intuitive to setup and I wasn’t sitting around reading documentation for hours figuring out why I couldn’t connect to the database.
  5. Emulation: I was thrilled when I discovered that Rails has a lot of AJAX and JavaScript functionality built into it because it has been years since I wrote a substantial amount of JS.  The other of course is you don’t want to have to constantly switch from technology to technology in the course of writing code.

I will say that as a developer who understand and can code a full stack development, and has worked in a MVC mindset, I’m able to debug issues faster in Rails than others who are purely front-end or back-end developers.  So for anyone evaluating Rails I’d recommend getting accustomed to MVC and thinking about development from that perspective.  My other suggestion is to understand how Rails tries to emulate other technologies like JavaScript and AJAX (using .rjc) and Hibernate/ORM (using ActiveRecord).

Finally, realize that there are limitations to Rails, and its important to be aware of them and be prepared to deal with them or find another technology to compliment Rails.


Exit mobile version