Best Tool for the Job
The religious wars go on. Microsoft vs. the rest of the world, it seems. On and on, ad infinitum.
But does it ever really matter? Is there definitively a platform of choice? Or more to the point, is that question even valid? Can there be a definite? As Jeff Atwood points out, every technology flexes different strengths and exposes certain weaknesses. Knowing the pros and cons will help you determine the best tool for the job.
I recently started re-reading parts of Marshall Goldsmith’s What Got you Here, Won’t Get You There. Goldsmith, an organizational psychologist, describes a terribly negative characteristic common among successful people dubbed as the “need to win.” Developers have got a serious case of it.
Looking for a feeding frenzy better than Shark Week on the Discovery Channel? Go into a room of shark, oops, I mean sharp, developers and ask what’s the best way to refactor some classes to support an MVC architecture. Before you know it, you’ve got 100 ways to solve the same problem. How do you pick?
Keep it simple, stupid. You don’t need a sledgehammer to hang a picture (although it might be fun). You don’t perform brain surgery with a chainsaw (I’m looking at you, Tarantino).
Unfortunately for software developers, knowing which tools to keep in that tool belt can be daunting. Each platform presumably exists for some reason or another. They don’t just write 300 page, $50.00 software text books for fun. So it’s got something going for it (or at least it did), even if it might not be much. Some guy, just as smart as you, probably smarter, was on the other side of your criticism when he built the damn thing. Unlike other industries, where there may be a definitive right way to execute, technologists grapple with hundreds of choices and decisions. So to really be able to know which tool is best for the job takes years of exposure, education, and error.
So take it upon yourself to constantly challenge the risk/reward of a given platform - arm yourself with an arsenal of tools that suits the job you need to accomplish. Picking sides, after all, violates the whole spirit of software development. So let’s stop arguing already and build something spectacular.