in

Redwerb

Tools, tips, and techniques for software developers.

Redwerb

Tools, tips, and techniques for software developers.

VB.Net Vs. C# (part 2)

Anybody notice that .Net is very similar to our political system (USA)? It's essentially a two-party system where the parties (in this case VB.Net and C#) are substantially the same. There are some 3rd party candidates, such as J# or IronPython, but they don't have enough support to be taken seriously.

Even though the language are so similar, people get very passionate about their language of choice and argue at great length over minutia such as case sensitivity. Not that there is anything wrong with discussing the pros and cons of such language features, however, in the end, both languages are fairly equal in their ability to accomplish the task at hand and in the level of productivity they allow.

Personally I'm glad that there are multiple competing languages. As an example, look what happened with the browser wars. Netscape owned the market only to lose it to Microsoft due to some great innovations. Once MS owned the market, they stopped innovating and we were stuck with IE6 for years. Along came Firefox which started gaining enough market share to get the attention of MS and suddenly we have IE7. Both Firefox 2 and IE7 are great browsers, but imagine what would have happened if Netscape never faced any competition. Would we still be stuck with Navigator?

Although the two primary .Net languages (C# and VB.Net) are both developed by MS, they still compete (for professional pride if nothing else) and we still get to take advantage of the benefits of that competition.

The 3rd party languages are also valuable for competition and experimentation. For instance, dynamic languages seem to be getting somewhat popular again. There has been a lot of talk about Ruby lately, Microsoft even announced they were going to support a version of it for .Net called IronRuby. We can already see some of these dynamic language concepts finding their way into the mainstream languages, for instance, anonymous methods, LINQ, extension methods, lambda expressions, and anonymous types (many of these are coming in .Net 3.5 due later this year or next).

Thankfully this two-party system doesn't include national elections. People are free to pick whichever language suits them best. Of course, you might still end up with elections at the local, project team level, but if they pick a language that you really don't like, you can probably find a new job without having to leave the country :).

Published May 18 2007, 01:07 AM by Brian Brewder
Filed under:

Comments

No Comments

Leave a Comment

(required)  
(optional)
(required)  
Add

About Brian Brewder

I'm a software engineer in Kirkland, WA. I have been developing with .Net since 2002. My main area of focus has been designing and implementing a UI framework for an ERP system. Before I got into .Net, I developed for several years in a variety of languages and platforms including mostly ASP, though I've also developed applications for both Palm and Pocket PC devices.

I received my degree in Computing and Software System from the University of Washington in 1999. I have also completed a certificate course in Object-Oriented Analysis and Design Using UML, also from the University of Washington, in 2005.

Copyright Brian Brewder, 2007. All rights reserved.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems