I figured out what I dislike about conventional Rails while I was learning it. It made me feel disempowered as a programmer.
This does NOT mean Rails isn’t powerful. It also does NOT mean Rails isn’t a strong program. It also doesn’t mean that I dislike Rails. I like it a lot Rails overall, and much prefer it when I want to get a solid app done in a short amount of time. But it feels very domineering, too in control of itself which, while this is what lends it so well to long-term development environments where standardization is king, can also leave the developer feeling like a tool rather than a builder.
I’m sure I’ll continue to enjoy using Rails in whatever capacity seems appropriate. But I wouldn’t call it my favorite framework thus far. It’s definitely the least favorite compared to, say, Express.
Rails is an excellent go-to framework. It’s a very well-developed, well-supported, highly active community. There are countless resources available to a Rails developer to get things done. It’s packaged with so much power, living up to it’s name in a way no other framework does. But my first introduction to it was confusing. It was too much of a black box, did too much for me, obscured it’s mechanics in a way that was bewildering and disempowering. It just did too much for me and required too little of me as a student. It was practically plug and play.
I compare that experience to learning Nodejs, where configuration is king. You have to learn how the system works, must connect it’s various parts and in doing so you get a very intimate learning experience with frameworks like Express. Today I wouldn’t directly compare the two. In my short amount of time developing with both, they’re clearly both very powerful tools and capable of doing just about any type of application. Some of it comes down to personal preference and on some occasions it comes down to scale and practicality. They’re both strong in different ways.
I’ve made it my mission this year to become very intimate with Rails and unlock the secrets of the blackbox. Today it still does a lot for me that I don’t quite understand (and in some cases may not be aware of), but the more I unlock, the more I enjoy building with Rails.