VB or C#?
Some interesting points re. the difference between VB and C#: C# Gets Sharper. Dan Appleman, the VB guru who wrote the fabled Win API handbook, has a few points to make about the difference between the two languages. Primarily, though, he's saying that the language is irrelevant, it's the .net framework that's the important thing.
This is true; both languages are capable of pretty much the same thing, and where there are differences, these things are usually added in later versions of the language (i.e. the way operator overloadng will be added to VB.net2).
Yet, VB comes with a bad rep; the VB of old was seen by many as a "toy language", incapable of creating real applications. While there's a certain amount of elitist snobbery involved in this statement, I'm inclined to say this is true, to an extent. VB added a lot of "features" to the development experience that are now ubiquitous, not just in MS-land, but in java-land too - drag-and-drop forms designer, edit and continue (restored in .net2!), a great visual debugger, etc, etc. C++ developers now have these features, thanks to VB pioneering a RAD approach to development.
Making development easier came at a price; the apps developed in VB's name were often poorly designed and put together. RAD used to equal CRAP in a lot of folks' eyes, especially when VB was involved. I don't necessarily see this as a problem with VB, but as a problem with VB developers (no offense intended, please note that I'm talking about bad or perhaps inexperienced VB developers - lest we forget, I used to program in VB... :-D). The vb.old language lacked some key things, such as OO and proper exception handling, and shielded the developer from complexity. As a result, the apps were often written very simply too, making them difficult to maintain. I guess it just became fun to poke fun at VB... even though it was never really intended to be more than a quick way to create simple UIs utilising the services of components written in C++ (which wasn't a fun language to create UIs with).
It comes down to a couple of factors whether you go with VB or C#...
1. Personal preference; I used to develop in VB, but I find I can't read the code any more, I prefer the C syntax of C#; it's less verbose, so there's just less "noise"; it looks simpler and more elegant to my eyes, and I can scan lines of C code quickly - with VB, my eyes trip over all those End statements.
2. Economic Factors 1; I used to work for a company that would use VB because it required less training to turn graduates into productive programmers; this is true - for the non-IT savvy person, or those new to programming, it's easier to pick up VB; trouble is, if you think app development is just about learning a language's syntax, then you wind up with poorly-written apps that are impossible to maintain - regardless of OO support in the language and any other neat features; so, catch-22, VB retains its rep as a "bad language"; economic factors for language choice aren't necessarily a Good Thing.
3. Personal experience; if you come from a C++ or Java background, then the natural path is for you to move to C#, period. If you used VB.OLD, then by all means give C# a try - but note that you will need to learn VB.NET - there's a lot of new stuff, so there's still a steep learning curve; so, on the face of it, it might not be that much extra effort moving to C#, if you can cope with the case sensitivity :). If you're a VB.OLD developer, you might also want to immerse yourself in the world of patterns and learn proper OO techniques; you might also want to check out open source projects to see how certain things are done...
4. Economic Factors 2: What gives you the best chance in the job market? Which language pays the most?
There're still a lot of folks using VB.OLD - but MS support for it ends in 31 March 2005... so there'll be a fair few people confronted the question: VB or C#?

0 Comments:
Post a Comment
<< Home