Recently I started learning Ruby on Rails. Mainly because it’s in high demand and ruby is supposed to be a clean, expressive language. Just being honest. It’s been pretty interesting so far. I started my professional programming journey in javascript and node, which has a very different philosophy than rails. In node land, the community respects small modules that have clearly defined responsibilities. It’s the developers job to string those small modules together to create something cohesive. Frameworks are generally looked down upon. Well, rails takes a very different approach. It happens to be a giant framework that bundles a ton of modules together for you.

The last website I built was on top of the express.js node framework. Express is a pretty minimal framework. It doesn’t give you all the bells and whistles that rails does. One of the big pain points I had was managing forms. Particularly with keeping the “create” page and the “update” pages in sync. Perhaps I was missing something in the express framework to help out. Early on with rails they showed the proper way to maintain a single view for both your “update” and “edit” forms. It was pretty thrilling to see they had already solved a problem I had and it came included with the package. On the other hand, I bet there’s a module out there that helps with just that issue.

I’m not sure I buy into either the “completely small modules” or “giant framework” philosophies. There are times when having features included in a framework can save a ton of time. There are other times when I want custom functionality that the framework author didn’t anticipate, it’s in those moments I wish I had small modules. Hopefully by learning rails I’ll be able to have a more informed opinion on the heated debate.