Friday, September 01, 2006

Language Wars

Joel, a software designer that I highly respect, has an interesting essay on which programming language to use for building enterprise level software. There's some good points in there, but the most important one is:

How do you decide between C#, Java, PHP, and Python? The only real difference is which one you know better. If you have a serious Java guru on your team who has build several large systems successfully with Java, you're going to be a hell of a lot more successful with Java than with C#, not because Java is a better language (it's not, but the differences are too minor to matter) but because he knows it better. Etc.


I personally believe in being as much of a guru in as many languages as possible so you can choose the right tool for the right job, but then again I'm a freak like that. I love Python for its clean coding requirements, first-class functions, etc. I like Perl for its string handling and wealth of modules. C# and Visual Basic.Net for rapid (and solid!) Windows development.
Of course it takes a lot of time to become proficient in all these languages, but I believe that should be the goal of every computer programmer/software designer. Programming is an art and a skill that must be honed. The more you practice the less you have to ask the question: "Which language should I use?"