Monday, January 23, 2006 11:26 AM
by
stevetei
Fear as a driver for language choice
If you've hung around online communities for any length of time where developers gather, there's no doubt you've seen someone post a message to the effect of:
"Dude, don't use programming tool X! Don't you know...
[a] everyone who's anyone is using Y today
[b] the company that makes X is about to go under, so you'll be left helpless
[c] you'll be so locked into that vendor that you'll be considered legally married in Arkansas"
(pick one)
Quick quiz: what does each of these options have in common? If you said, "they're all bad advice," then you win the prize. Note, in particular, that none of these bits of advice deal with the actual applicability of the solution to the problem needing to be solved. They're FUD -- fear, uncertainty, doubt -- intended to inspire a negative feeling before the tool can even be judged on its relative merits.
Why does this bug me? It bugs me because it ultimately brings down the quality of tools in our industry, which diminishes our industry. If we purposely avoid the best tools for a given job, we're explicitly saying, "I'm willing to create more work for myself and/or to compromise on the end result in order to use this sub-optimal tool." In the end, what suffers is the quality of the applications we build and the speed at which we can build them. In other words, it is the end-users that suffer. Remember, it is end-users that buy the consumer and business software that drives the economic engine of our industry, which in turn funds all of our paychecks. Better tools translates very directly into better applications. When a sub par tool "wins" due to FUD or some other non-merit-based reason, it squeezes the superior tools out of that segment and, in the end, makes it that much more difficult for us to build excellent software applications.
Given that I work for a company with, uh, a lot of market share in developer tools, why would I preach a "best" approach to tool choice rather than a "safe" approach? I'm a big believer in the efficiency of market economies in identifying the solutions to problems and promoting those organizations able to most effectively implement those solutions. If I build junk, I believe it's for my own good (indeed, for the good of the whole industry) that a competitor should come along to eat my lunch. If my product is going to win, I don't want to win because I'm biggest or "safest." I want to win because my solution is the best and has advanced the state of the art of software development.