A Plea to the Ruby on Rails Core Team
By Simon HarrisYet another plea: Please don’t add foreign-key migrations, schema validations or for that matter acts_as_taggable or any significant number of the myriad plugins that are now available. Leave RoR as lean and as mean as possible. By all means change your assumptions and your opinions but don’t allow Rails to become the Micro$oft Word of the Ruby world – bloated and with features that < 1% of the community ever use.
I’m pretty opinionated. DHH is obviously pretty opinionated. That doesn’t mean I necessarily agree with his opinions – I clearly think foreign-keys are important – but that doesn’t prevent me from using RoR. In fact, quite the contrary. Precisely because DHH is so reticent to adding every new feature under the sun into RoR, the current feature set appeals to most of the developers who use it. This is not to say that Rails is in anyway fully-featured but what is there, most people use. So what about all that neat stuff that we all think is great and absolutely necessary but with which DHH and, no doubt, a non-trivial number of other developers in the community disagrees?
I think my favourite feature of RoR is the very sophisticated plugin model. With a little thought and imagination, it’s pretty easy to implement just about any extension imaginable. And this is where the power lies in being lean, mean and opinionated. It’s much easier to add features than to take them away – actually it’s pretty easy to take them away too but it can get pretty ugly and besides, who wants to spend their time writing plugins to disable functionality? In fact I like plugins so much, I’ve started thinking about my applications as collections of plugins. Plugins work, there are lots of them, they allow you to add features that no one ever dreamed of and then, with very little effort you can, if you’re a good sort, give something back to the development community.
You probably don’t want to use much (if any) of the stuff that I think is useful and I sure as hell don’t want your manky ideas cluttering up what continues to be my favourite development environment. So, please stop inundating the RoR Trac with every little thing that you believe to be 100% necessary and start building and publishing plugins.