Tuesday, April 22, 2008 12:30 AM
I've got news for everyone out there: VB.NET isn't going away anywhere. I've got other news: C# is a great programming language. So is F#, and Iron Ruby, and Iron Python, and <insert language here>. In fact, now more than ever we have choices as to what language we can use for our development, and for some reason *that* fact has been lost in the noise of the language argument.
Here are some facts:
VB.NET has been a great language for those who were exposed to VB 6.0 and made for a very easy path to .NET for these developers, increasing adoption.
C# has been a great language for those coming from a Java, C++, or C background, and has made for a very easy path to .NET for these developers, increasing adoption.
Both languages have done a great job doing what they were intended to do. You can create great applications with either language, and although each have grown to have their own language features independent of the other, they are both still valid.
The question we as mature software professionals need to ask isn't which one is better, but which one is best suited for the application at hand. Consider F#...
F# is another language offering, but its strength lies in functional programming. Functional programming is (and Dustin or Aaron can correct me if I get this interpretation wrong...they're really more the experts on this stuff) a focus on computational methods that are optimized for processing. Not only that, but methods are passed around in a similar way that objects are. Why would *anyone* want to do this sort of thing? If you're a physicist or from any scientific background where you need to do x-number of calculations a second, you grok this.
I would *not* necessarily use F# for an object oriented data driven application. Why? Becuase its strength isn't in that realm...C# or VB.NET would be better options.
What about web development? What if you really wanted to use a dynamic language like IronRuby because you wanted more of a Rails-like experience? What are the driving forces for determining that language use? I don't really know...I'm just posing the question.
We need to stop fueling this ridiculous C# vs VB.NET debate...it's pointless and is not helping the community! In fact its hurting it: we're telling people that if they program in VB.NET they aren't *real* developers, and if they program in C# they're somehow *elite* or better, and that's just bullshit.
What is better value to the community is discussion on which language is best suited for the different applications that can be built with them. At a bit of a higher level, we're already seeing those discussions around ASP.NET Webforms and ASP.NET MVC Framework, and we're already seeing that educating on when and why is paramount. The language discussion needs to realize that as well.
I end with a quote from Martin Fowler from this weekend's ALT.NET conference:
The difference between the languages have more to do with how the communities use them.
He is absolutely right.
D