Being passionate about your work has emerged as one of the core values in the ALT.NET community.
I agree that encouraging developers to be passionate about their craft is probably the most effective way to improve our collective developer skills. It takes a lot of time and effort to learn to write software well and the fact of the matter is that nobody will be motivated to do it unless they are first able to nurture or rekindle the basic passion that causes coding to be fun.
I also think that it is possible to have too much passion, which can produce very unproductive and annoying results.
In religion, too much passion can lead to intolerance, inquisitions, cults, mass suicides, and holy wars. In politics, too much passion can lead to nationalism, colonialism, ethnic cleansing, atrocities, and wars. What about too much passion in the software realm?
Well, it is doubtful that you will be tortured, oppressed, or killed by a software fanatic. At most, you will probably be flamed like Rob Conery was for his critical post on Ruby on Rails. More likely, you will probably just be irritated rather than invigorated by someone’s enthusiasm. This usually happens to me whenever I hear cult-like language used to describe a technology.
What causes developers to cross that line so that their enthusiasm stops invigorating those around them and instead starts to poison conversations and deteriorate the critical thought process? I think passion goes sour as soon as developers start fixating on a particular language or tool rather than focusing on higher level qualities like design principals or engineering best practices.
When this happens, then personal identity gets so wrapped up in the technology that any objective criticism suddenly feels like a personal attack. Then instead of improving a person’s knowledge of which tool is best for which job, criticisms suddenly lead to lots of time spent on pointless arguments and heated debate that could have otherwise been much more productively spent actually addressing the issues being raised and generally improving the language or tool.
One quick test you can take to see if your passion has taken a wrong turn is to see if you can list off five bad things about the language that you love and five good things about the language you most hate.
If you can’t do this, then it is time to take a step back and re-channel your passion. Otherwise, it is likely that you will end up stuck in flame-war purgatory rather than being part of anything truly innovative. You will also spend much more time irritating rather than inspiring those around you.