I was recently watching a show on my netflix ‘watch instantly’ called Fight Quest. While I’m no fighter myself, I appreciate the time, effort and dedication it takes to become an expert in a fighting style. If you’ve never seen the show before it’s about 2 American expert fighters traveling all over the world learning the history and fighting styles of all kinds of different cultures. Everything from French kickboxing to Brazilian knife and stick fighting to Israeli Crav Maga. The 2 men have 1 week to study with the best masters of the individual fighting style and then they are pitted against the best fighters for a 3 round fight. Something I noticed, was the incredible emphasis on mutual respect for each others fighting styles. While fighting is the most raw competition, there was always a sense of respect for the others abilities. It made me think of how nice it would be if that’s the way it was in the world of technology. Oh sure, we have great respect for those programmers who share our love for one particular language but how many programmers have you met that show open disdain for other programmers who may not do things the same way? Take for instance C# vs Java. Man, you want to have a knock-down-drag-em-out fight amongst nerds that’s a great way to start. I happen to be a programmer who uses many languages including C#. Does that mean I hate Java and Java developers? Not at all. Because I use a PC and Ubuntu does that mean I think that no one can possibly get any work done on a Mac? No, that would be asinine. And the same holds true the other way around. The problem is that instead of transcending beyond the technology and appreciating each one for it’s own merits we get caught up in the immature fighting of the corporate realm. Even though I may not know Java or Haskell or Ruby that well does not mean I don’t appreciate the technologies and respect the intelligence of the individual developers. And while I may have my own preferences I understand that they are just that ‘preferences’. Much of what I can do in the languages that I am familiar with other developers can do in languages they are familiar with. I love seeing the differences and learning about how other developers are doing things. Learning other languages opens your mind and grows you into a more well rounded programmer. So while yes, there is competition, lets not forget a key ingredient… respect.

June 14th, 2010 at 1:55 pm
I completely agree. I have worked on many different development teams and everybody has their preferred way to do things. I can always learn from someone else, so rarely will you see me pound my nerd-fist down and insist something be done a certain way.
Except for stuff that is obvious. Like resizing user images in your code instead of just accepting their huge file and setting the image width and height in html. Or using If, elseif, elseif, elseif, else when you could use a switch. Or drinking decaff. But I digress.
My current job is working on a system that has been around for over 10 years. They have a lot of awesome new stuff (linq, google web toolkit, rails), but also have some funny old stuff too. Just last month I had to make an update to a loop in a classic ASP page that uses ADODB. And I still forgot to MoveNext. The page just sat there and spun forever. Then I remembered the first time I made that mistake – like 7 years ago – DOH!
Point is, technology is just a tool. You can almost always accomplish the same thing multiple ways. And if you listen to the people you work with, and give them a little respect, you’ll probably learn a lot more than if the whole world just did it your way.