"Rails is everything wrong with software development", touted a fellow conference-goer. I was at a loss for words, but I tried to probe him further, "So, do you prefer framework X?". "Yes...well no. X is bad, too", he replied. Our discussion went on like this for some time. There was no good language or framework out there that he could name. It all sucks, apparently.
I tried to explain that there is no single solution could be the right answer for all situations. I tried to explain that some developers prefer conventions and others prefer technology to be more configurable. That software development is constantly moving forward, and the landscape is getting better every day. I wanted to show him how inspired I was by my peers for always finding better ways of writing and maintaining code.
But I failed. I wasn't able to communicate because I was trying to tell, and he wasn't in a state of listening. I failed to ask the right questions that might have lead the conversation down the right path of internal questioning that pushes us to change our attitudes.
What still bothers me is knowing that there are others out there who feel the same, be it about Rails or another technology. Having strong opinions like this should come with responsibility to change what we see as wrong. If you find that something isn't working or needs to change, then change it; make it better. We're living in an age of open source software, and it is easier than it has ever been to contribute and improve code for everyone. There is no room for complaining without action.
Rails isn't what's wrong with software development; poor attitudes are. Putting down the work of others opposes improvement. Expecting someone else to always do the is selfish. It's our responsibility to improve the situation together, and it's our responsibility to share what we build.