Rockford Lhotka

 Wednesday, December 7, 2005
« Commercial CSLA .NET? Open-source CSLA .... | Main | AJAX is a new Microsoft technology?!? »

It is the debate that never ends (though it does change shape): is the current C-style language infinitely superior to the current most widely used language.


Years ago COBOL and FORTRAN were all the rage. Then this upstart C language showed up claiming to be better. Which was laughable, but the fanatics in the C world wouldn’t give in.


Eventually, seeing that C wasn’t going anywhere, they added ++ to the end, claiming that extra non-alphanumeric characters improved the language so now it was better than FORTRAN. (and it was better actually - and no one compared anything to COBOL because that would be just silly - almost as silly as acknowledging that RPG was a programming language at all)


But then the age-old and much maligned BASIC language grabbed headlines by offering a level of productivity for GUI programming (on Windows at least) that no one else could touch. All of a sudden the semi-colon lovers of the world had a new enemy: Visual Basic.


And while C++ was much faster and provided access to the deep, dark, smelly bowels of Windows (16 and then 32 bit), the fact is that it took many times more code to do anything in C++ as compared to VB. So while the VB devs were at the bar drinking, or at home with their families, the “superior” C++ devs were slaving away trying to find that missing semi-colon or mis-matched close bracket (or worse, that null pointer reference).


That’s why Java was invented: to try and create a version of VB that had semi-colons. Get rid of all the low-level machine issues like null pointers and memory deallocation so programming is more VB-like, yet keep the elegant (cryptic?) syntax of the C-style language family. Unfortunately Sun just didn't get it (and still doesn't...), so Java missed the mark for the GUI developer.


But Microsoft has always understood. They created VB after all. So naturally that’s where C# comes from: VB with semi-colons. As Billy Hollis has said numerous times, the VB community kindly allowed the rest of the world to use the VB runtime. Sure, it was modified to be useful from other languages, but .NET brought to the C-style world what VB had been providing for over a decade: productivity.


(btw, if you didn’t catch some of the sarcasm and hyperbole in the above you really need to lighten up…)


So what brought on this post? Tom Archer explained why there are so many VB samples on MSDN, stirring the debate yet again.


By the way, the reason there are so many VB samples boils down to two things:


First there’s the fact that there are more VB developers out there than C# developers. A lot more, pure and simple.


Second, Basic was designed specifically to cater to the way people think. C-style languages were designed specifically to cater to the way machines work. It is incredibly obvious then, that Basic is a better teaching/learning tool, because it is based on cognitive concepts for humans.


(note that I’m not saying one language is inherently better for actual programming – just for learning)


Either way though, I’ve said it before and I’ll say it again: if you only know one language family you are crippling yourself. If you’ve only ever use Basic (VB or otherwise), or a C-style language you really need to broaden your horizons.


If you can’t stomach learning the “enemy” language (VB or C# depending), then go find another .NET language like FORTRAN, Eiffel, F# or something. For that matter, IL itself is a great choice.


Branch out! Learning other languages only helps you understand and use your preferred language better.

Wednesday, December 7, 2005 11:04:57 AM (Central Standard Time, UTC-06:00)  #    Disclaimer