D'Arcy from Winnipeg
Solution Architecture, Business & Entrepreneurship, Microsoft, and Adoption

Language Wars Need To End; Language Assignment Needs To Begin.

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




Feedback

# re: Language Wars Need To End; Language Assignment Needs To Begin.

So when you say we are hurting the community, what you are really saying is that VB.Net is like Hillary AND C# is like Obama? ;D 4/22/2008 1:45 AM | Fervent Coder

# re: Language Wars Need To End; Language Assignment Needs To Begin.

I agree 100% with you on this one. I switched to C# from VB.NET for 2 reasons:

1. I used to build PHP pages, and found the C base easier to work with

2. I actually like the C like format with all the ; and {} and []

One language being better than the other never entered my mind when switching. It was personal preference. In fact, I still use many of VB.NET libraries I built when I started .NET development. They are just as good as an C# library I've written since switching. 4/22/2008 7:29 AM | thorkia

# re: Language Wars Need To End; Language Assignment Needs To Begin.

I was a VB.NET guy for years, but switched to C# a year or so ago because it just seemed easier to grasp certain concepts like delegates when using C#. 4/22/2008 10:43 AM | Dave Harris

# re: Language Wars Need To End; Language Assignment Needs To Begin.

Fully agree. VB.NET dev here - although I am experienced in other languages, I *like* VB.

The VB.NET dissing/bashing I see around the web is rather tiresome. My opinion is that it's just as easy to write bad code in any other language - VB is not alone in this.

In the end, it's the programming concepts and development techniques that make a difference. You can apply any programming language to that. 4/22/2008 1:50 PM | Grant Palin

# re: Language Wars Need To End; Language Assignment Needs To Begin.

Perhaps I'm the weird one, but I write all of my presentation code in vb.net and everything else in C#.

I just find each langugage more naturally suited to those needs.

4/22/2008 9:01 PM | Shaneo

# re: Language Wars Need To End; Language Assignment Needs To Begin.

Let me guess D'Arcy - you're a VB dev! ;)

Why is it I never see posts about this sort of equivalence from C# people? =) 4/23/2008 1:52 PM | Justice~!

# re: Language Wars Need To End; Language Assignment Needs To Begin.

You knew I would chime in...

Think of F# as a more powerful version of SQL, but usable against your objects. The brevity of Ruby, the ability to see code as data ala Lisp, ready for parallelism so your 64 core machine can be used (we WILL have these in a few years ... talk about maintainability!).

I know we get the vapors when we hear the words SQL, but SQL, that language that does filtering and projection (and its BI variants, such as MDX), is a favorite of business because of its brevity, provability, and ability to be paralellized in large systems. F# is that, but with a real standard (not balkanized like SQL and its BI variants) - and support for objects, ASTs, first class functions, and generalization (without having to hit the reflection API to do so).

In other words, yes F# is Gods Language. The sooner you accept it, the better off you'll be :) 4/23/2008 11:38 PM | Aaron Erickson

Post a comment