Tuesday, January 17, 2006
« More Billy Hollis blogging | Main | ASP.NET thread switching »

In a recent email discussion a fellow Microsoft Regional Director, Patrick Hynds, drew an analogy comparing programming languages to tanks and A-10 attack planes:

 

I know when to use a Tank (plodding and durable lethality) and I know when to use a A-10 (fast, maneuverable and vulnerable lethality), but if you make tanks fly and add a few feet of armor on an A-10 then you get the same muddy water we have between C# and VB.Net.  Those that know me will forgive the military analogy ;)

 

I continued the analogy:

 

The problem we have today, in my opinion, is that C# is a flying tank and VB is a heavily armored attack plane.

 

Microsoft did wonderful things when creating .NET and these two languages - simply wonderful. But the end result is that no sane person would purchase either a tank or an A-10 now, because both features can be had in a single product. Well, actually two products that are virtually identical except for their heritage.

 

Of course both hold baggage from history. For instance, C# clings to the obsolete concept of case-sensitivity, and VB clings to the equally obsolete idea of line continuation characters.

 

Unfortunately the idea of creating a whole new language where the focus is on the compiler doing more work and the programmer doing less just isn't in the cards. It doesn't seem like there's any meaningful language innovation going on, nor has there been for many, many years...

 

(Even LINQ (cool though it is) doesn't count. We had most of LINQ on the VAX in FORTRAN and VAX Basic 15 years ago...)

 

The only possible area of interest here are DSLs (domain-specific languages), and I personally think they are doomed to be a repeat of CASE.

 

Tuesday, January 17, 2006 2:13:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Related posts:
VS10 and SQL Express frustration
Silverlight 6 doesn’t matter
WinRT and business apps
WinRT and .NET
Windows Server AppFabric and WCF monitoring
Minneapolis PDC, Code Mastery and more!
Tracked by:
"VB.NET and C# - Duplication of Effort?" (ComputerZen.com - Scott Hanselman) [Trackback]
http://www.hanselman.com/blog/VBNETAndCDuplicationOfEffort.aspx [Pingback]
"bay area photographer" (bay area photographer) [Trackback]
"maryland automotive windshield" (maryland automotive windshield) [Trackback]
"her first audition" (her first audition) [Trackback]
"annuncio affitti isernia" (annuncio affitti isernia) [Trackback]
"paul posey tallahassee florida" (paul posey tallahassee florida) [Trackback]
"sauna mista milano" (sauna mista milano) [Trackback]
"georgia bulldog" (georgia bulldog) [Trackback]
"cd organizers" (cd organizers) [Trackback]
"congelatore da incasso" (congelatore da incasso) [Trackback]
"cameriere in autoreggenti" (cameriere in autoreggenti) [Trackback]
"Sports Betting Rss Feed" (Sports Betting Rss Feed) [Trackback]
"albuquerque respiratory jobs va medical center" (albuquerque respiratory jobs v... [Trackback]
"tiaras and headpieces" (tiaras and headpieces) [Trackback]
"used kountry aire camper trailer" (used kountry aire camper trailer) [Trackback]
"columbus ohio commercial real estate" (columbus ohio commercial real estate) [Trackback]
"invisibile pulcino dildo" (invisibile pulcino dildo) [Trackback]
"fotografico" (fotografico) [Trackback]
"sms gratis cellulare" (sms gratis cellulare) [Trackback]
"racconto erotici con animali" (racconto erotici con animali) [Trackback]
"zyban side affects" (zyban side affects) [Trackback]
"www.jntah.com" (www.jntah.com) [Trackback]
"downlineincome.com" (downlineincome.com) [Trackback]
"www.mommyco.com" (www.mommyco.com) [Trackback]
"www.cannabisvaporizers.com" (www.cannabisvaporizers.com) [Trackback]
"www.feminizedmarijuanaseeds.com" (www.feminizedmarijuanaseeds.com) [Trackback]
"www.bewbs.com" (www.bewbs.com) [Trackback]
"www.impact210.com" (www.impact210.com) [Trackback]
"www.thecodingmaster.com" (www.thecodingmaster.com) [Trackback]
"hackgs.com" (hackgs.com) [Trackback]
"www.neptunesbeachclub.com" (www.neptunesbeachclub.com) [Trackback]
"www.conferencecalldirectory.net" (www.conferencecalldirectory.net) [Trackback]
"www.ringtone-center.com" (www.ringtone-center.com) [Trackback]
"www.herbalmarijuanavaporizer.com" (www.herbalmarijuanavaporizer.com) [Trackback]
"www.marijuanavaporizers.net" (www.marijuanavaporizers.net) [Trackback]
"www.herbvaporizers.com" (www.herbvaporizers.com) [Trackback]
"www.marijuanavapor.com" (www.marijuanavapor.com) [Trackback]
"www.vaporizerpipes.com" (www.vaporizerpipes.com) [Trackback]

Tuesday, January 17, 2006 4:06:45 PM (Central Standard Time, UTC-06:00)
I'd love to hear a bit more about your take on DSLs, as I'm playing around with building a DSL for our internal CSLA development. The idea of generating a full CSLA-based framework from a visual interface is pretty attractive to me...
Thursday, January 19, 2006 6:32:42 AM (Central Standard Time, UTC-06:00)
OK, enough of this stale old VB C# debate. I proclaim myself lord of opinion and and insist on leaving my two cents worth here:
1. VB and C# are programming languages, not identities or personalities. If you find yourself lacking one of those, find it first, it'll make picking a programming language much easier.
2. You can be 'in the money' with any programming language if you know what your outcomes must be.
3. The language you use WILL change in your lifetime - so will many other things - get used to it. If you are programming the first thing to change will be the color of your hair, if you have any left.
4. The evolution of computer languages is near the beginning, not the end. Rejoice, many wonderful and magical things are coming still. You can be part of this if you keep on writing code.
5. The word 'NET' becomes really interesting after a fullstop. 'Never before has one framework done so much for programming in such a short time. Ask not what your framework can do for you but what you can do with you framework!'
6. Morts are Elvises and Einsteins in the making. Many of them will never make it. Have some compassion.
Tuesday, March 07, 2006 8:12:33 AM (Central Standard Time, UTC-06:00)
If case-sensitivity is obsolete, why did XML have to abandon its original plans for being case-insensitive, and opt instead for case sensitivity?

The reason XML made this u-turn is because case insensitivity is culture-dependent. Whether two strings are considered equal varies according to where you are.

For example, consider the strings "visual basic" and "VISUAL BASIC". Are these the same strings in a case insensitive world? If you're American or English, chances are you'll say yes.

But what if you're in Turkey?

Turkish has two forms of the letter 'i' - one with the dot and one without. So the letter "i" is emphatically *not* the lowercase version of the letter "I". They are different letters in the same way that "v" and "W" are different letters.

And there are more complex problems with case insensitivity. What's the lower case version of "KONIGSTRASSE"? If your lowercase version has the same number of characters as this uppercase version, then perhaps you might want to consider that this is probably a German name and try again...

Accents present another set of interesting issues here too.

Case-insensitivity requires one of two things. Either:

1) the ability to specify which culture you'd like to use for string comparison

or

2) forcing one culture on everyone

Option 1 clearly isn't a viable choice for a programming language - you don't want a program's meaning to change just becase you're compiling it in a different country. This leaves you with option 2. Not only is it a form of cultural imperialism, it means everything looks broken for a wide range of languages.

It's a peculiar world view to regard globalization as a form of obsolescence.
Monday, May 08, 2006 6:04:02 AM (Central Standard Time, UTC-06:00)
ok
Comments are closed.