LogoASPAlliance: Articles, reviews, and samples for .NET Developers
On Language Bigotry
by J. Ambrose Little
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 7283/ 15

Joe Healy, renowned MS Dev Evangelist, persists in his delusion that I am a C# bigot.  I admit the accusation is not totally unfounded as I did champion C# in the C# vs. VB mock debate at the 2005 South Florida Code Camp, and I love razzing VB-lovers when I can; however, I have told him over and over again (and said as much in the debate) that language preference or feature superiority are not the only things to consider when selecting a language.  Also important are business considerations such as existing VB and ASP code base and the experience of developers in house (e.g., if they're all ASP/VB devs, you probably ought to go with VB.NET).

But given that both are general purpose programming languages, both are built on the same platform, both have access to the same libraries, and most business applications can be built with both, it is pointless and unfounded to adhere to one language as objectively superior based on the features of the language (or even the IDE). 

At the same time, I think language preference has to be one of the factors taken into consideration by business decision makers who mandate language use.  If a developer prefers a language, he is most likely going to be more proficient in it and, therefore, more productive.  I consider it somewhat akin to natural languages.  I will likely always be most proficient (fluent) in English.  Even if I moved to the hills of Italy, it would take a long time before I became anywhere near as proficient with Italian as I am with English.  In fact, I may never be as proficient.  In addition, it would take a lot of time (I imagine) before I actually started thinking in Italian without effort; it will likely always take extra effort for me to speak in another language. 

Similarly, though to an admittedly lesser extent, I know I'm not as proficient (fluent) in VB as I am in C#, though I can certainly work using VB.  When I think about code right now, I think in terms of C#--it shapes the way I think about code.  It would take some doing for me to come to this level of comfort with VB or some other language, despite the fact that ultimately we're trying to achieve the same thing.  Further, if I actively dislike a language for some reason, (whether or not that dislike is particularly rational) I will find it harder to use that language and thus will be less productive using it.  (I'm not saying I actively dislike VB myself, but I know there are those that do.)

So I think it is unwise to dismiss preference out of hand.  Apart from just your basic syntax learning curve, we have to be conscious that developers are people, often very opinionated and sometimes prejudiced or even bigoted people.  You can mandate a language, citing it as being objectively equivalent to an alternative, but if you're working against your developers, you're not doing yourself any kind of favor.

As for myself, I do (at least at this point in my life) prefer C# because I find it is sufficiently abstracted from machine language to be productive and yet suffiiciently terse as to not impede readability or producitivity through verbosity.  It retains a likeness to computer language--a certain je ne sais quoi--that keeps one in the frame of mind that this is a computer I'm talking to, and I need to think like it does.  For that reason, I think I'll always prefer C# over VB.

To take it a step further, I wager that as we get better abstractions from computer language, such as are becoming possible with DSLs and, e.g., WinWF, the utility of VB as a more human-friendly language will wane.  Being productive designing and building software applications will no longer rest on the merits of an imperative language but on models and interfaces that are sufficiently intuitive as to minimize or completely eliminate the need for a general-purpose programming language for the masses.  And the nice thing about it is that the masses will welcome it and not mourn for the loss of VB, which ultimately is only a stop-gap that insufficiently fills the RAD/human-friendly void in software development. 

Granted, that utopia is still in the distant future, as far as computing and business plan timelines are concerned, but it is far more real and possible today than it has been in the past.  In the meantime, I'll continue coding in C# when I can and using VB when I have to.  I don't think that makes me a bigot; it just maybe makes me a zealot. :)

Product Spotlight
Product Spotlight 

©Copyright 1998-2022  |  Page Processed at 2022-10-01 10:00:31 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search