Over a million developers have joined DZone.

Negativity on Rails: A Good Thing?


The content of this post was originally written by Jeff Dickey over at his blog

In attending my first Railsconf, one thing I noticed that I did not expect was a theme of negativity around Rails itself.

It appears a common message that I seem to get from the various speakers is a negative perception about Rails. Whether it is that there are parts of the code base that are buggy, badly designed code, lack of documentation, disagreements on what/how to improve, the level of issues, the performance of the codebase, it is clear nobody is content with Rails the way it is now.

To be fair, if you were to ask anyone directly if they thought about Rails, you would get a positive response I bet. Rails vs PHP, or if they thought that Rails was a 'good' framework that the answer wouldn't be surprising. People would be very much pro-Rails. However, that's not what people are talking about.

Aaron Patterson's keynote was specifically about this. He spoke about how using a queueing system with Rails was not straight forward or maintainable as there was no direct interface to manage queues. He also mentioned there was a queueing system inside of Rails called ActiveQueue, that nobody has heard of, let alone implemented. He called for the community to standardize itself and work together to solve that problem.

I agree with Aaron to a point, but I also feel that having different approaches to queueing provides a sort of Darwinist-software evolution.

DHH's keynote was about how Rails will cause bugs and pain for people migrating to newer versions, and how that was unlikely to change moving forward. He said it was necessary in order to keep Rails an amazing framework.

I think this negativity is fantastic.

I think this shows that the community isn't resting on its laurels. It is self-aware of the problems facing it. Nobody is talking about what they've done well, only about how to proceed. This negativity has probably been the driving force improving the framework.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}