I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

March 10, 2005

The Slow Brain Death of VB.NET

It's amusing that the very people defending VB.NET are, ironically, illustrating precisely why VB.NET is in such trouble:

I just want to make it clear that I am one MVP that does NOT intend to sign this petition about VB. And by the way, my background is mostly VB, with some Delphi thrown in, although I prefer C# now. -- Paul Wilson

Meanwhile, as I got deeper into ASP.NET and VB.NET, it became more and more clear every day that to use .NET I had to think differently. I struggled with that even after switching to C# -- Jeff Putz

VB.NET is so awesome of an upgrade, in fact, that these noble defenders of the faith chose not to use it.

Yeah.

And they're not alone. Either VB developers are choosing not to adopt VB.NET at all, or they're making an opportunistic switch to C#. In droves. Visual Basic developers, once the largest block of developers in the world, can no longer make that claim. Forget the ridiculous VB6 petition-- that's what these guys are really complaining about. And they have a point:

This isn't conjecture. Independent market researchers across the industry (i.e., those not dependent on Microsoft's financial support) report a steady decline in the number of VB developers worldwide since the release of VB.NET. Is this the swan song for a hard-working, approachable language that was once the planet's most popular programming dialect? Here's one of many compelling examples. Note that, while declining, classic VB still tops the list, while VB.NET brings up the rear.

There's a lot of hard data to support this disturbing loss of mindshare for Visual Basic. I've personally observed it happening over and over since .NET was released in late 2001. Have you seen this Visual Expert developer survey that Dino Esposito pointed out?

VB 6.x 78%, VB.NET 19%, VB 5.x 2%

Those are truly abysmal adoption rates. And how about this 2003 Evans Data Corp survey:

43 percent of [Visual Basic] developers surveyed plan to cut back on their use of the popular Microsoft development platform. Of those saying they plan to reduce their use of Visual Basic, 37 percent plan to migrate to Visual Basic .Net. -- largely from Visual Basic 6.0. 31 percent said they plan to move to Java and 39 percent said they will be migrating to C#.

This is a very real trend, and it spells one thing: the end of Visual Basic's role as a dominant, driving force in software development. And why does that matter? A fellow VB.NET developer challenged me in a response to one of Paul Vick's blog entries: moving with the herd

If you (and I use "you" in the general sense here) woke up tomorrow and found yourself to be the only language VB programmer left, would you still code in VB? The answer to this question shows whether one is a mature independent thinker or just a sheep following the crowd.

This entire statement runs counter to the spirit of Visual Basic. We'd have to be the crappiest mature independent thinkers ever if the best "radical" language choice we could come up with was VB.NET. Our choice of language is driven by purely pragmatic reasons. We use VB because we want to be part of the herd. VB developers are smart: they realize that moving with the herd confers certain advantages.

A huge part of VB's productivity story was the market potential of such a large group of developers. Choosing VB.NET, in the current state of the .NET world, is unusual. And that's fundamentally at odds with the design ethic and history of the language. This isn't Ruby, or Python, or Haskell.

In the old VB world, you could cherry pick the best third party tools from huge catalogs. The market was so vast that vendors would be nuts not to offer a VB-specific version of their product. But in the current VB.NET world we're living in, there's no VB.NET version of Resharper. And this phenomenon isn't limited to third-party tools. Code samples. Enterprise library. Open-source projects. You name it, it's easier, faster, and better in the language that the rest of the herd is using. Which is something VB used to have going for it.

Now, not so much.

Posted by Jeff Atwood    View blog reactions

 

« Paging Dr. Dotnetsky... Logging TraceListener Improved »

 

Comments

What's the point ?,I kinda like sticking to VB.NET...like you sir,this post takes a sorta marginal view of things.The developers have no time for vb6 anymore because of the .net framework api's.The activex days and dll hell days...

Blog Fly on March 10, 2005 03:54 AM

I switched to VB.NET and found it to be a fairly easy migration but I'm one of those people that can pick up pretty much anything fast. I did teach myself C# last year although I still prefer VB.NET. Actually, I don't really even code anything in C# at this point, I just convert stuff back and forth between the two to keep my knowledge of both up.

Chris Wallace on March 10, 2005 07:40 AM

So, my questions are:

1) Is C# more likely to be the next VB6 than VB.NET is?

2) Is C# approachable enough to appeal to those that just want to mock up something quick for a prototype and/or the million other things that VB6 was much better at than it's competitors? I don't see VB.NET adding a lot of value over C# in this regard. I think VB was much more approachable than C++, but I don't think the same argument can be applied to VB.NET and C#.

3) If neither C# or VB.NET are going to be the next VB6, then what will be? It seems obvious to me that VB6 is now destined, as all technologies in maintenance mode are, for the same fate as Cobol and MFC. PHP is the only thing I know of that seems to have a lot of the same culture around it that VB had. Java has failed to make any headway in this regard. It's seems like it's C#'s battle to lose.

Michael Maddox on March 10, 2005 07:59 AM

> Is C# more likely to be the next VB6 than VB.NET is?

Based on the current trends and data available, as well as my personal observations (FWIW), yes.

> I think VB was much more approachable than C++, but I don't think the same argument can be applied to VB.NET and C#.

Agreed, and this is one of the major criticisms: what does VB.NET *really* offer over C# other than an alternative syntax and a few amenities (Handles, easier Events, etc)? Plus it gives up stuff for backwards compatibility (the Ain't keyword), so in a way, it's the worst of both worlds. MS was in a "damned if they do, damned if they don't" situation with VB.

> If neither C# or VB.NET are going to be the next VB6, then what will be?

I do think C# is the next VB. There's tremendous momentum around .NET, but it's really specific to C#. VB.NET just happens to be along for the ride as a minor sideshow amusement. I think we'd have better luck creating petitions to add case insensitivity and background compilation to C# (or you could just buy Resharper-- but this does nothing for the case problem).

Jeff Atwood on March 10, 2005 11:05 AM

With my vb6 background, when .NET first came out, I skipped vb6 and went straight ahead for c#. Then I looked at vb.net and found it a lot simpler and faster to do things. Now, I am in a job where they mandate use of c#, so I am back in c#. However, there isn't a day that I don't wish I as coding vb.net

rizzo on March 10, 2005 02:12 PM

Here's my view. I used VB from beta 1.0 to VB 6. Did Java for 1 1/2 years, learned to love true OOP. Had to go back to VB 6. .Net came out, learned C#, not VB.Net. Never looked back.

I guess I just fell in love with C# and the .Net framework. The thought of going back to VB 6 makes me ill, but thats just my opinion. If you like VB 6, use it wherever you can and it makes sense.

Paul

Paul Speranza on March 10, 2005 07:26 PM

Excellent commentary. Enjoyed reading it.

RBL on March 10, 2005 10:02 PM

It was Java that became the next VB. .Net was essentually a response to Java which was consuming VB mind share at a rapid pace. Currently, Java/J2EE jobs out number .Net jobs by nearly 2 to 1. Who knows though, C# may become the next Java.

Rob Abbe on March 10, 2005 11:40 PM

CodeRush fully supports VB, and since I speak CodeRush, I speak VB for free. :)

Scott Hanselman on March 11, 2005 12:18 AM

Jeff:> (from http://rblevin.blogspot.com/2005/03/microsoft-mvps-revolt.html)

"Although I am learning C# instead of VB.net now, the future of programming is clear, and object-oriented languages designed from the get-go for Web and Internet-enabled functionality are the future. Period. And no amount of romanticizing VB6 is going to change that."

Still beating the C# drum, are we? Still trying to justify your illogical choice to move the C# by claiming it is the future? Already practicing your superiority-complex skills by assuming that your word is final?

Well it seems you've already made up your mind to remain delusional, so while you are at it say hello to Alice for me 'cause you are obviously living in wonderland.

Meanwhile, I'll go watch TV, it seems the BBC is reporting a catastrophic event involving the number of VB programmers going from about 6 million to 5,999,999. Hard times we live in.

PS: chances are you'll delete this comment since this is your home turf. Won't change a thing.

Eric Mutta on March 11, 2005 04:12 AM

After reading his blog for a while, Jeff doesn't seem the sort of guy to remove comments from people, whatever they say. After all, if he didn't want people to comment, he wouldn't write his thoughts in a blog, would he? Some constructive criticism would have been nice, however.

To me, this VB.net vs. C# debate is a moot point. Whether C# is better than VB.net or vice-versa, we can argue about that till the cows come home. Here's an idea - use whatever language you like, but don't criticise others for making a different choice.

Rightly or wrongly, I'll end up having to switch to C# full time because there are more jobs around and for some reason the C# jobs pay better. However, like the guy above said - there won't be a day that goes by that I won't wish I was using VB.net. To me, it's just more readable.

Every language - Java, C#, VB.net, VB6 has it's advantages and disadvantages. Can't we all just like, get along?

Andy on March 11, 2005 08:49 AM

> Who knows though, C# may become the next Java

Right-- and syntactically, C# looks a lot more like Java than anything else. There's yet another reason former VB developers are adopting C#.

> Well it seems you've already made up your mind to remain delusional

It is partly based on my personal observations, but it's also based on the survey numbers I quoted which back up those observations.

Jeff Atwood on March 11, 2005 09:48 AM

I also have gone from VB6 to Java to C#. I've hardly even touched VB.NET. (I guess that makes me a statistic...).

VB.NET was necessary three years ago, in order to bring the "herd" to .NET. It is also no longer "necessary", as it now gets to play in the same ballpark as C# and C++ (and J++, which I also will probably never use).

Now that the "herd" has begun the migration to .NET through VB.NET, they are free to move from one language to another within the .NET Framework, which is nice.

Now the real problem to solve is that companies still feel the need to FORCE it's developers to use ONE language. I'm afraid that this type of short-sighted approach will take a few years to wear off.

- Joshua

Joshua Bair on March 13, 2005 12:22 PM

> there's no VB.NET version of Resharper

Ironically, the next version of ReSharper WILL support VB.NET. :-)

Valentin Kipiatkov on March 14, 2005 11:44 AM

Right, that's why I linked to this in the article:

http://www.codinghorror.com/blog/archives/000202.html

Which is good news, but still, the fact that VB.NET gets second-class citizen treatment in the .NET world is not a good sign. C# is the priority for most vendors; VB.NET is an afterthought.

Jeff Atwood on March 14, 2005 01:02 PM

Resharper is supposed to support VB in VS 2005.

Darrell on March 14, 2005 01:10 PM

i have been programming for almost 3 years using the vb6. And i dnt even major problem with this language, only 1 vb consume my resources.... i got stuck!!! i only can say that this language is great!!!!

reygie celiz on March 16, 2005 01:08 PM

Spock once said to Capt. Kirk:

"Is it possible that we've become so old, so inflexible that we've outlived our usefullness?"

Take that for what its worth in this discussion.

All I know is that since I've stopped creating new applications in VB6 and moved exclusively to VB.Net (since Framework 1.0), I've become a much better and efficient programmer. When I go back and maintain some of the applications that I still support in VB6, I am amazed at the improvements I've made over time in VB.Net.

Derrick on March 18, 2005 03:12 PM

Made me think of why I made the switch to C#...

Thomas Eyde on March 25, 2005 06:18 AM

Isn't it just likely that the many of the original VB programmers came from DOS/Windows C and now that C# is available they are just going back? I am in the category. Nothing could beat VB Classic for ease of database access but I hated the language, it was extremely primitive and idiosyncratic. I always regretted that Microsoft won the desktop because that meant that VB won instead of Rexx. If you had to have a wordy language Rexx was head and shoulders above VB. When will there be a Rexx.NET?

Terrier on April 8, 2005 11:17 AM

I do not understand why anyone would write anything of significance on the .NET platform for the desktop. It's okay for internal stuff and some server applications but that's about it.

Microsoft made itself what it is today via PCs. Apparrently, they'd like to see us come full circle - right back behind a dumb terminal. No thanks.

C++ is the route many are taking. Why get burned twice? You have to do a rewrite anyway. Sure, their's some significant upfront work to be done but once completed...ah, the open air and freedom.

Multiple architecture and OS targets without proprietary interference? Priceless!

Little endian on April 9, 2005 03:24 PM

Hey "Blog Fly"

> What's the point ?,I kinda like sticking to VB.NET...like you sir,this post takes a sorta marginal
> view of things.The developers have no time for vb6 anymore because of the .net framework api's.
> The activex days and dll hell days...

A marginal view is exactly what *your* post exibits... seems that, because *you* like B#, everyone should. Now *that's* funny.

"DLL Hell" is an issue that people have when they don't know what they're doing.

If COBOL (cobol is a computer language that hasn't changed much since the late 1970's) is good enough for the precious bloatware known as the VS.Net IDE, why wouldn't VB6 be good enough? I just don't get the resistance to having VB in the .Net IDE. It boggles my mind how damn selfish people are.

Another thing that gets me these days is... Bloggers. Get a grip! Writing a blog does *not* make you an authority on a subject.

Ken Halter
MS-MVP-VB

Ken Halter on April 15, 2005 02:14 PM

I work with both c# and straight C++. I have also done some work in Java as well. To me, Java and C# are VERY similar, too similar to be a coincidence. Having said that, I am not that impressed with .NET as a whole. Having to look up things I used to know from C++ API (SDK) development for the .NET framework may be just an annoyance, but some things are downright aggrevating. Lacking support for LSA functions (and having to write lines of Pinvoke/Marshalled data structures with ugly syntax)and the convoluted support being built into .NET framework 2.0 for ACL support makes me wonder out loud "Is this suppose to make development easier?" My suspicion is that deep inside MS really wants to again give outside developers one API set (framework with its host of bugs - check out the service packs already out) that gives us limited access to internals - while themselves keeping lean and mean API development to themselves. "Hey you guys develop your word processor on .NET technology - we'll put out office on lean C++/Win32 code" - and see which one performs better. Now the administrators have to download a littany of .NET service packs and hotfixes along with OS service packs and hotfixes - thank MS! And memory bloat - don't get me going on this one - MS apparently must be investing in the PC memory field!

John on May 5, 2005 04:11 PM

It always humors me when people who have "invested" so much effort into a dying technology that has long since been passed by, Novell for example, they bitch and talk down the new to justify keeping the old. You talk about service packs being released for the .NET framework. How many service packs were released for VS6? Wasn't it at least six separate service pack releases? Does that mean it was buggy and worthless? It does remind me of the Novell guys who are whining about switching over to Windows servers. I ask them why, and eventually the truth comes to the surface, it's because they have "invested" so much into it that they don't want to move on and learn something new.

NEWSFLASH!!! Technology moves along and evolves whether you like it or not. You have to constantly be learning and adapting or you will certainly be left behind. Those who are stuck in the VB6 bubble will either die whining about being left behind or will get with the program and evolve like the rest of the world.

So there were six million VB developers? There were also millions of Win3.1 desktops out there. Does that mean Microsoft made a mistake in moving everyone over to a 32-bit platform? A lot of applications had to be rewritten to evolve and become native apps on the new win32 platform.

If people would stop feeling sorry for themselves long enough to get a grip and learn the .NET framework, maybe they would actually see that the world hasn't come to an end. Fat chance in hell of that happening though. Those who don't want to change will always find excuses why they shouldn't have to do so. That's just human nature. I for one get excited by the challenge of something new. What about Avalon? What about the next generation of RAD and the endless possibilities that presents? Oh wait, we should have kept DOS and the FAT16 filesystem. After all, think of all the old DOS programs that are OBSOLETE now!!

Stop living in the past and GET OVER IT!

Steve on August 12, 2005 12:52 AM

Really! I don't understand all the cry about which language is better. A language is supposed to be a means by which you design a program fro some purpose. If you work in VB and are hugely productive in it then any other language then by all means use it. We programmers should not forget that we are not here to satisfy our egos, but the egos of our clients.
I've been developing in VB for the past 5 years and have always delivered projects on schedule and to the satisfaction of my clients; which in the end is all that matters in the real world.
Now some people may bring up the question about the elegance of VB to other languages. I would agree that VB is quite wordy then other mainstream languages and it has its quirks. But if elegance were the sole issue then we would all be better of with Smalltalk, Lisp or now Ruby!
With reference to .NET, presently I'am sticking to VB till I get a complete hang of the .NET Framework; then I'll move to C#, by which I mean,'learn C#'; which is not that hard.

sameer borate on August 21, 2005 12:42 AM

Anyone who is thinking about moving from VB I encourage you to check out Borland Delphi. It has a great history of complatibility. Projects made with Delphi 1 back in 1995 (or 6?) can be compliled with the newest version of both Delphi.net and Delphi.Win32. You also get 5 lauangues (Delphi Win32, Delphi.Net, C#, C++ (next version), and VB.net) in the best IDE around. The pascal syntax is also easier to pickup then the C syntax for people whos only experance is VB.

Joe Bain on September 30, 2005 05:55 PM

VB.net is the beginning of the end of VB in many cases. I've been porting stuff to VB.net for over 12 months and have gotten to the point of "Why bother!"
Microsoft doesn't even support VB in many cases -Check out the latest DX9 SDK - No VB!
I agree with joe - delphi is probably the next logical step for VB6 developers as it can be used with Win32 OR the the very weighty Net framework! - and code can be recompiled on other platforms!
Besides that everything else will be VB6 and DX8 - proven, tested and it still works!

Darren on October 11, 2005 08:03 AM

Hi love vb.net but every one say that C# is growing.Should i make a shift to C#.If i did will i have any advantage.

Sumod on October 17, 2005 01:08 PM

> Should i make a shift to C#. If i did will i have any advantage.

I think the smartest strategy is to learn both.

Jeff Atwood on October 17, 2005 01:27 PM

I'm not sure that the question should be "Do I go with VB.NET or switch to C#". I think the question should be "Do I go to .NET or switch to something that has a longer expected useful lifespan"?

Keep in mind that .NET is entirely new and unproven technology, and continues to evolve as we speak, producing new versions which are significantly different from (and incompatible with) previous versions. Can you cost-justify shooting at an unproven, quickly moving target, especially when you cannot know exactly when Microsoft may decide to pull the rug out from under you again?

SiGiD on October 20, 2005 04:07 PM

Haha:

I don't fit in the migration.....I learnt assembly programming :) and use it in vb6 with the ThunderVB(http://thundervb.profitux.cz/) add-in. IMO, .NET is very heavy on resources. A simple form with nothing on it can consume 3-5mb of memory.....although i think that mainly is the .NET framework and it increases less after that. But still IMO, I'll learn C/C++ before I'll ever get good at .NET......actually I've done a little in VB .NET Express 2005 but I find the IDE horrifically slow and sluggish and the .NET api just too much .....maybe thats why it so slow lol. Forget about vb6 infamous slowness....ThunderVB solves that problem with a bit of asm knowledge ;)

Ok...there is one thing about VB6 that can't be solved....it will always be 32-bit so I'll probably have to move on and learn some C/C++ where the 64-bit compilers are coming. .NET....no way........................

Hmmm might promote D while I'm here :)
http://shootout.alioth.debian.org/benchmark.php?test=all&lang=csharp&lang2=dlang&sort=fullcpu

Ralph

Ralph Eastwood on November 4, 2005 07:50 AM

Let's see. MS helps me make a respectable living. They provide adequate resources for me to do so by providing the best IDE's out there. With the release of .NET 2.0, I have been able to write full blown applications in as little as a week. The last time I attended an even similiar to the release of VS2K5, MSSQL SERVER 2K5 and BizTalk 2K6 in regards to Java was...hmmm...um....hmmm...

Oh and my belly was full thanks to MS for providing a great lunch...got free software that you can even use in PRODUCTION!!

Last time I got that from a Java expo was...hmmm...umm...

Tony on February 2, 2006 05:53 PM


Um.. I too find the IDE very sluggish on my system. As far as I can see, there's a shortage of VB.net programmers, compared to VB6.

Seems like everyone wants to migrate to .net, but let's face it - many people don't want to have to handle the extra complexity, so they quit, leaving a huge market for the rest of us.

Every day, in the newspaper, vb.net seems to be the most in-demand skill going, moreso than C#, C++, Java or anything else.

My 2 cents

Em

Emmet on February 20, 2006 01:14 PM

Emmet - if I may try to get this clear, you say that you are seeing a large demand for vb.net programmers as opposed to VB6 or C#, et al?

I suspect that this is due to the fact that various clueless midle managers are looking at their (now obsolete) inventory of VB6 code and trying to "move forward" with as little pain as possible, and they think VB.NET is the logical way to go.

Little do they know they'd be way better off going to C# if they absolutely *must* move to .NET, since C# is the language that .NET was designed for in the first place. And re-writing VB6 legacy code in VB.NET requires pretty much the same amount of effort as re-writing it in any other different language, such as C#....

Old Guy on February 22, 2006 03:24 PM

The VB6 documentation on MSDN appears - suddenly - to be no longer available:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbstartpage.asp
is no longer working.

Is this a "subtle" hint from our dear friends at Micro$oft?

Old Guy on March 3, 2006 04:06 PM

And just for your info, it appears that our dear "friends" at Micro$oft have given us yet another "subtle" to stop VB6 by removing the online product documentation from MSDN.

old guy on March 3, 2006 04:08 PM

What chyou talkin' 'bout Willis? :-| Try your link again. It's alls in there brotha...

VB6 isn't going away anytime soon. It will be the next Cobol of the decades to come. Granted new development will be in .NET (VB or C#), but maintenance and possible enhancements and integration with newer .NET features will still be going on in VB6 where good business sense dictates.

Laugh at Cobol, but I've got a consultant friend making more than most .NET devs right now. Now that's irony. And it wouldn't suprise me if the same holds true for VB Classic work in the future as the "herds" migrate to .NET and the Kewl kids don't want to get dirty touching "legacy" VB6 code. Hey, my bank account doesn't care where the green comes from. It's all good...

VBMan on March 4, 2006 11:36 AM

I've been developing in VB6, then swithced to VB.Net in 2001. In the past few years, C# has indeed had a meteoric rise in popularity (Even in far off places like South Africa). I tried to convince my manager (an ex VB6 developer) that C# is the way to go, but that just didn't work - so I started building a simple little code generator in C#. Hopefully that will count for something on my CV. :)

Andre Hartzenberg on March 5, 2006 10:08 AM

Yes!! Yes!! Yes!! Please stay with Visual Basic 6.0. All 6 million of you... UNITE and continue using VB 6.0.

I was there back in the day when we were the Red Headed step children of the development community. Not OOP and on and on. I was also attending Windows NT classes when the Novell guys were laughing at that inherently unstable Windows NT version 3.51 too. SCO Unix was just entering it's downward spiral and it was move on or go down with the ship. NT 3.51 was the newest thing going and all my SCO colleagues even went postal on me. Where are all those SCO & Novell guys today? Hint: N.G.P.A. - Not Getting Paid Anymore. They disappeared almost overnight when NT 4.0 came out. I made a fantastic living removing Novell and SCO systems.

It was a challenge to learn how to program with the .NET framework. Totally different thinking than VB 6 application design. Some old dogs can learn new tricks. I also went the C# route instead of VB.NET. All of you out there who are crying about the beloved VB 6 and the good ole days must not have been there at all. I was there when we were called names like "Bill Boys" and "Windows Weenies". VB 6 was simple and cheap to develop applications with. That's all. It was also clunky and quirky too. Avoiding Dll Hell alone is worth updating to .NET. True OOP is yet another valid argument. CLR, Common Types and the list just keeps getting longer.

Anyway back to the crux of the post. Please don't migrate to the .NET framework. .NET sucks, VB.NET sucks, C# Sucks. Stay with VB 6. Not because VB 6 is better but because it's just that much more code that I'll rewrite when you're N.G.P.A.

Clayton G. on March 12, 2006 06:37 PM

Clayton - as long as you don't mind not getting a paycheck for the next 10 - 15 years or so...;)

SiGiD on March 13, 2006 10:38 AM

That's exactly what the Novell guys said.....

Hey let's bring back Windows '95 and continue development on it too. Then we could have two versions. One for people who are willing to put forth an effort to advance their skill set and the other for people who have to much invested to learn anything new.

Clayton G. on March 13, 2006 07:32 PM

Clayton:
- Is your assumption is that anyone not wholly embracing .NET (which is totally new, unproven, unstable, and a truly horrific example of code bloat) is either too stupid to learn it or is simply afraid of anything new?
- How about a third option? That .NET really does not provide any capability that Win32API programming does not already provide, so why bother with it just so as to keep money flowing back to MS? I have, like you, already learned .NET - but I have been forced to conclude that it is not worth using since it does not allow me to provide stable software to my customers. Maybe in the future end users will upgrade their hardware so as to be able to run .NET, but making a cost benefit case for doing it today (or in the near future) simply does not work. Yet. And maybe never.
- Question: If .NET is *REALLY* so wonderful, why does Microsoft not produce anything that uses it? Note that Visual Studio is written against COM, and the new Defender/OneCare product is a big ditto. How come its supposed to be good enough for you or me or anyone else when even its authors have no practical use for it?

SiGiD on March 15, 2006 10:28 AM

- Question: If .NET is *REALLY* so wonderful, why does Microsoft not produce anything that uses it? Note that Visual Studio is written against COM, and the new Defender/OneCare product is a big ditto. How come its supposed to be good enough for you or me or anyone else when even its authors have no practical use for it?

They are producing plenty. Microsoft Expression Interactive Designer (Sparkle) is all managed code. Alot of Vista is managed code (The first componant that comes to mind, the volume control I'm pretty sure is. There is ALOT more though). Alot of the new software is being written in managed code (these are two of a few examples that I know of, I just can't remember what the others are off the top of my head, and can't research it now). Visual Studio has a large amount of legacy code. You really expect them to re-write the entire thing in managed code? That is just unreasonable.

- How about a third option? That .NET really does not provide any capability that Win32API programming does not already provide, so why bother with it just so as to keep money flowing back to MS?

Currently, no, it doesn't provide a whole lot else, but it does make it alot easier. But in the future, it will provide alto more.

[ICR] on March 15, 2006 10:58 AM

"significantly different from (and incompatible with) previous versions."
I haven't looked exaustivly at the changes between versions, but all the changes I have come across either:
a) Keep the old commands (at least for the next version) and issue a compiler warning saying they are redundant. Most of the cases are just changing a function name, or only a small restructuring of code.
b) They provide a more efficient, better way. But the old way still works.
So I see no huge breaking changes that force you to completely rework your code if you upgrade between versions. There not completely stupid.

[ICR] on March 15, 2006 11:03 AM

And actualy, MSBuild is written in managed code, so a large part of visual studio is managed:
"MSBuild is a departure from building in previous versions of Visual Studio as it is written in managed code, with high performance and extensibility as goals."
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/VS05feat.asp

[ICR] on March 15, 2006 11:47 AM

ICR -

- Thanks for your point of view! I appreciate the fact that you and I have a fundamental difference of opinion, which might(?) best be summarized as that you are looking to the future of .NET as being positive, where I am looking at what it is right now and feeling very disappointed.

- No offense intended, since you were respectful of my point of view, but I can remember when C++ was the new and up-and-coming thing. Microsoft could point directly at Word and Excel to show you just where, exactly, you could get to using the product.

- My point is that there are amazingly few apps, and none of the complexity and usefulness of any of the Office components, that can be used to promote the underlying strengths of .NET at this point - not even apps provided by its authors.

- In future, hopefully, .NET *will*, as you state, provide a lot more than non-.NET. Until you get to that point, you cannot make the case that users need to upgrade (pay more $$$) to get the newer version of your software after they pay for the new Vista software and the new hardware they need to run it, etc....

- IMHO, it will be quite a while for the user community to be at the place where deploying a new app in .NET will be cost-efficient for the author (me).

- Not to belabor Clayton, but people moved on from DOS to Windows 3 because it provided clear and immediate benefits. Ditto for Windows 95 over both DOS and Windows 3. Having reviewed the beta for VISTA, it simply does not provide anywhere near as compelling a reason to upgrade. Looks nicer, but there are several areas of cost to address - and WinXP works just fine, thanks!

- And similarly (though for different reasons) .NET does not provide a truly compelling reason to adopt it (*YET*).

SiGiD1 on March 15, 2006 05:04 PM

"I can remember when C++ was the new and up-and-coming thing. Microsoft could point directly at Word and Excel to show you just where, exactly, you could get to using the product."

Office was, and still is, built upon a huge legacy code of pure C, even Office12. So I don't know how they were showcasing it. But your point remains valid

And yes, it does come down to two differing views. I suppose because I am not a developer by profession I am not so conserned about the here and now and can afford to look to the future.

[ICR] on March 15, 2006 05:29 PM

SiGiD
Unstable? You're kidding right? I have many, many applications that are used every day that are written in C#. Not a peep from my end users. Of course they are all running on Win2K pro or higher. A Dell desktop only cost 400.00 each if you buy in bulk. If your clients can't scratch that much out of a budget then custom apps are the least of their problems.
No, I don't think that you or anyone that shares your opinion is stupid. My opinion is worth no more or no less than yours. It's just an opinion and just because we disagree does not mean that either of us is inferior.
I just become irritated because every time something new comes out there's this huge backlash of concern over its stability or its cost effectiveness. Example: People went berserk when Windows 2000 came out. Its no better than NT, Bloated Code, unstable and so on and so forth. After all the complaining and screaming that the sky was falling was over, Windows 2000 WAS better than Windows NT just as Windows XP IS better than Windows 2000. It's evolution, the crap that was broken or clunky in the previous version is ultimately corrected in subsequent releases. Like it or not Windows XP was derived from Windows NT. VB.NET is ultimately derived from Visual Basic 6.0 even if it is radically different.
I research every aspect before making a decision. That's what I do. My decision to expend time and money to learn C# was not made because of a shinny box. I read the hype, then I did my homework and .NET has (in my opinion) some really fresh and innovative concepts at its core.
Another positive aspect is that it will trim down the wannabes that currently comprise about 2 of the 6 million purported VB programmers. If you've debugged some of the code out there that passes for legitimate you know what I'm talking about. VB 6.0 is too easy to fake... It takes more than copying and pasting MSDN samples to write stable code.

Claytong on March 15, 2006 09:57 PM

- I must say that I am impressed by the civility of the contributors to this post! Most refreshing that ad hominem attacks are not the order of the day...

- Clayton, I agree with you that we simply disagree on the ultimate value of the .NET direction. And yeah, it probably does *look* like the usual "I don't want anything new" syndrome that always accompanies new technologies.

- To my mind, any new programming tool that offers no new capabilities but still costs - both dollars for the new tools as well as programmer time to climb the learning curve - as though it does is simply a poor investment of my (admittedly limited) time and resources.

- And it is focussed upon a hardware/software platform that, as I said already, requires significant new investment on the part of the end user community to adopt. True, a Dell can cost only $400 or so, and Vista may be approx another $400 (this is a guess) on top, you are still talking only about $800 - except that when your end user community is a corporation with multi-hundred end users to upgrade and retrain and have IT offer support to, the true cost goes up exponentially. The battle is for *perceived cost benefit*, and businesses face this every day. When the total cost starts to exceed $100,000, you have to make a very good case to convince the multiple layers of management that must sign off on this captial budget line item that they will re-coup their costs over a defined period of time, or you get a great big "No, thanks!"

- And, sorry to say, my comment about "unstable" refers not only to the incredibly buggy VS2005 IDE but also to apps written with it - especially those using ADO.NET (which makes the old versions of ADO look positively excellent by comparison).

- I suppose that time alone will settle this debate. Maybe we can agree to rejoin this discussion at some future point to see where the market is going / has gone to see whether I am too pessimistic or you are too optimistic ;)

SiGiD on March 16, 2006 09:05 AM

SIGID,
Hey this is scary... All my apps are written using ADO.Net.... still not a peep from my people. I just had approval for $120K capital project with a subsidiary of HSBC... This does not include any workstations (only software and one server). Any business operating on a national or international scale relies on computer software and hardware to function. It's a necessary business tool to operate not a perk that someone's kid is getting. If a company of hundreds of users can't produce $100K for operations they have serious cash flow issues. Example: In 1998, I used to install and configure turn key accounting systems (Windows NT 4.0) complete with Exchange Server 5.5 (Exchange 5.5 is perfect example of instability but that's another story). During a follow up visit, I would often discover that Exchange had blue screened about a week after it was installed and had been down for at least a month. Most clients didn't even notice it had been down. Let Exchange fail today and the company literally ceases to function. When the accounting system goes down there are no "books" to fall back on. Business operations simply stop. When the distribution or supply side of your infrastructure fails the lost revenue can easily exceed $200K in a 100+ user facility.
I use Visual Studio 2003 Enterprise Edition with the 1.14 framework. I did take a quick glance at VS2005 Beta 2 with the 2.0 framework but experienced a few glitches myself and decided to stay put for awhile. I did notice that the DB Connection and Data Adapter objects were different compared to VS 2003.
As for our difference of opinion, diveresity is a human phenonoem. If human nature was to agree on all matters we would still be living in caves.
I had this same discussion with a soon to be EX software vendor about two months ago. I merely asked him why he had not migrated his application to .NET or some more modern language than VB 6.0. He replied ".NET, that stuff is buggy". So I asked him to elaborate with some examples. He could not. I then asked him to give one example. He could not and immediatley became defensive. If I make a statement like that, I can always back it up. So, I guess you know what's coming next right? Would you please give me a few examples of ADO.NET instability? If not a few then one example will suffice.

claytong on March 16, 2006 09:13 PM

I prefer VB.net over c# because I hate the {} hell that you have to type. VB.NET uses white space (i.e. the return key which is natural)and addes the end function/sub/class statements. VB.NET also has better intellisense. The VS2005 code snipplets and My class also makes coding a lot faster.

Jeff on March 17, 2006 01:38 AM

The only problem with {} that I hate is the fact that there a shifted character - wth? But I'm so automated to shifting for it that I'm scared to remap it.
I suppose the only real reason why I prefer C# over VB is not any objective "it has this", but because I'm just more used to, and more at home with the C syntax. I've been using it for many a year now. And anything close to the VB syntax I have used (VB and Delphi) have been in old IDE's that make working with the verboseness alot harder and an uphill struggle.
I have been working with VB recently (converting some of Jeffs projects no less) and I still don't really prefer it from a readability standpoint. Maybe I will have to start writing in it someday.

[ICR] on March 17, 2006 04:48 AM

Clayton -
- Hello again!
- I agree that companies should regard hardware/software as a "cost of doing business". However, consider that the upgrade to Vista / .NET would occur MUCH faster and more easily if there were a "cannot-live-without" type feature to drive the expenditure. Otherwise, most business folks just take the approach "if it ain't broke...".

- This is why I feel the .NET apps are further in the future in terms of becoming widespread (the idea behind "how long can you go without a paycheck") - but it depends on who your end user market really is, I suppose. My experience has been in the finance industry, and these people know the value of a dollar and are shall we say reluctant to part with any unless absolutely necessary...;)

- And for customers who do not choose to be on the cutting edge, VB6-type people will continue to be gainfully employed for some time to come, and since the entrenched programmer always knows the business better, (s)he will remain employed helping move that cruddy old legacy code up to .NET...;)

- I'm afraid the code I'm working on is proprietary so I am not free to provide actual non-working code samples (and the data is, too, of course!), but I can describe the issue in general as a continuing problem with what should be simple SQL statements either returning differing result sets or simply failing to return at all - not even an error message, nor a blue screen, just a "big freeze". This all occurs within the IDE, if that explains anything.

- I compare this result to the exact same code being run under old VB6 against the same back end database, and find that we do not get any unexpected results - i.e., it runs fine. Do you have, maybe, any insight into what might cause this sort of issue (I'd REALLY appreciate a fix for this!!)? You certainly seem to be having better luck with it than we have...when we see this result occur within the IDE, we certainly have NO interest in sending out any apps to any of our customers!

SiGiD on March 17, 2006 09:25 AM

SiGiD,
What flavor database are you querying and how are you establishing a connection to it? I assume that you're using the server explorer in the IDE?
Some of the older database platforms act strangely with the '03 IDE (the older flat file stuff in particular). However this can usually be traced back to some third party ODBC emulator. But you can work around this by tweaking the connection string in some cases. A flakey network connection will also wreak havoc on the IDE too. Yes she will drop like a stone! Pull a "Select All" and then disable the network connection with it in the active window if you don't believe me.
I agee that a big freeze or inconsistent query results are a cause for serious concern. How does the IDE respond on simple single table querys (no joins)? If it's freezing on those you may have some issue with an ODBC driver or connect string.

claytong on March 17, 2006 07:16 PM

Clayton -
- Your thinking on this matches what we have so far come to regard as being correct. The third-party DB is fairly old and the ODBC is provided directly by the publisher; we are not real sure how to tell if the issue definitely lies wholly within the ODBC driver or with some quirky ADO interaction with it. So far, all we know for sure is that the DB publisher certifies that their stuff plays well with ADO and MS feels that ADO could not be causing this bug (does this sound at all familiar??)
- The network connections are fine (no evidence of any problem).
- The SQL queries are pretty vanilla; no JOINS of any type. Mostly straight SELECT...WHERE statements, with a few calcs thrown in as needed. We tried re-creating the table indices, and even rebuilding the table structures, but found no issue there. If only we could get an error return of some sort...(never thought I'd be hoping to see an error return, but at least it would be a place to start!).
- What DB do you use, if you are free to say? Is it a Microsoft product or some other?
- And thanks again for all your time and trouble; I appreciate the fact that, without having more detail than I can give you that your ability to provide insight is limited...

SiGiD on March 20, 2006 09:29 AM

SiGiD,
OK.... Sounds like you have the classic finger pointing session.
Simple queries aren't working.
The network is good.
I had a similar experience happen a few years ago. We were writing an application that provided custom financial reporting (simple right?) The database was an older Betrieve type that had ODBC connectivity furnished by the provider. We duplicated several tables using MSSQL 2000 and our problems vanished immediately. We then started investigating the ADO.Net interaction with the ODBC and learned that the Odbc.OdbcDataAdapter.Fill, Update commands were not compatible. We worked around it by using the Odbc.OdbcDataReader! We used the Odbc.OdbcDataReader and Odbc.OdbcCommand objects without any further issues. So my advice is that if you are bound to an older non-relational database, you may want to avoid using the OdbcDataAdapter.
Once we stopped using the OdbcDataAdapter we could read and write using the DB Provider ODBC without any errors.

claytong on March 21, 2006 12:39 AM

Jeff -

How about updating your position on this post. Still feel the same way now that YOU've switched to C#? Do you feel your assessment of VB is coming to pass?

Would love to know your [updated] thoughts on this post...

VBMan on March 21, 2006 01:00 AM

Chill out dudes - This discussion is all for not. In a short few years you will be able to program in the language of your choice and not be persecuted, courtesy of .net and the evil doorers at Microsoft. There won't be such a thing as a c# or VB shop. Language converters will mitigate this minor detail. So relax.

Oh and by way, VB is the best language on the planet. -Shake yoh booty.

Desdubler on March 22, 2006 01:00 PM

I once said on my site that I wouldn't sell out and convert to VB.NET - my argument was that VB6 was still alive and there was no need to jump on the bandwagon. Having started to use the VB.NET Express IDE (which is incredibly slow and counterproductive, despite the vast array of controls), I think I'm going to stick with VB6 until it folds, and then I'm moving to Java or even C#.

Drew on March 29, 2006 01:05 PM

The move to .NET or J2EE and which language to use is dependent on management being enticed by either camp but mostly what camp they already are in. The move towards .NET is growing and J2EE is waning. Do J2EE jobs outweigh MS as a whole. MOst likely but that trend is decreasing.

.NET is gaining ground. There are two related reasons why. If a Microsoft team feels the need to upgrade, they will do it in accordance to what they are currently working with. The cost of moving from a COM platform to J2EE is far greater than to .NET. Granted there is no straight line in converting.

.NET also gives the ability to develop with the VB, C#, C++ and other CLR compliant languages along the same projects. Therefore retraining in "foriegn" languages is lessened. With a vast number of VB programmers out there, making the switch to C# will be easier if a VB 6 developer moves first to VB.NET. Theres is that comfort in the womb factor.

With that said, VB developers can make a fair transition to VB.NET, especially those that are strong, professional software engineers. Hacks will definitely have more difficulty making the transition. Therefore, .NET will help separate the wheat from the chaff.

I believe, like myself, VB programmers WILL make the transition to C# as the common language for developers, which will also include Java programmers seeing the light down that tunnel called the future. .NET offers a flexibility that J2EE doesn't offer (well more than one...) Movement from one language to another while remaining in the same framework. This with the familiarity of one vendor though not "stuck" with one vendor, as a viable reason for management to move towards migrating towards .NET which is NEVER a rapid flow as is whipping out a quickie prototype in VB. Only time will tell what happens to VB. COBOL (yuck), RPG and yes my favorite tool VFP are still alive and kicking. So expect VB to not go away, but in the near future, expect C# to become the de facto language of the development world of the serious professional software engineer.

rick on April 10, 2006 04:12 AM

Rick, are you sure your real name is not Micheal Flanakin? Cause you sound exactly like him - and that is NOT a compliment unless you enjoy being a pompous, arrogant buffoon who believes that "talent" can offset crippling personality defects...

"Separate the wheat from the chaff"? Get over yourself and recognize that programming is an art form - and in programming, just as in fine art, "It isn't the paintbrush, it's the artist".

No, bad programmers we shall always have with us - whether .NET or not, and whatever language they choose to (mis)use.

Ralphie Boy on April 11, 2006 01:06 PM

Exactly... (Ralph)

http://www.panopticoncentral.net/archive/2006/04/11/11659.aspx

It's like anything else; golf, music, racing etc. It's not the implement, but the one implementing! To say that "professionals" are going to flock to C# is ridiculous AND pompous.

http://msmvps.com/blogs/bill/archive/2005/12/09/78502.aspx

Leigh Kendall on April 11, 2006 07:15 PM

I am interested in creating a new VB IDE and language based on VB and python ideas i.e. to create a Visual Development tool that support easy to write programs in structured and OO way and run on many platforms.

So maybe it result as an open source IDE and interpreter / compiler for VB language, what do you see its success possibilities ? Should i invest my and others time in this project ?

http://classicvb.sourceforge.net/

thanks
Humayun

Humayun on May 16, 2006 11:21 PM

This is the same discussion thats been happening for years. There have always been the c++ snobs who are now fast becomming the C# snobs.

At the end of the day, program in the language you are most comfortable with. If you love VB.NET, use it.... if you prefer C# then use that. It's simple!

Back in the mid 90's there were rumours that Microsoft were pulling the plug on VB and that all the VB programmers would have to learn C++... and it never happened. It's all propoganda as is the alleged demise of VB.NET.

As Ralphie Boy stated, programming is an art form... just because one artist uses clay instead of stone to produce the sculpture, does it make them any the less talented?

We are all in the best job in the world, regardless of which language we choose to use... just enjoy it!

Goldfishrock
<

Goldfishrock on May 17, 2006 03:15 AM

vb.net isn't gunna die.. it's gunna grow.. I've watched C/C#/C++ programmers migrate to vb.net and it's also gone vice versa. C# is gunna be big, I agree. but one will not overshadow the other... I have experience in all the languages provided in VS2005 and I couldn't be happier!! when I only had VB 2005 Express it was like meh.. yeah I can program whoopidi doooo.. now with this beautiful layout of languages to choose from at any given moment, I remark with the statement that y'all have wasted your time in this fruitless adventure of whitty statements, and analogies because you must remember. this is the internet. you're opinions have about the same effect on .net as your p.enis' do in bed. they're fragile, limp, and overlooked for more benefitting pleasures. grow up, shut up and go write some damn applications in the IDE of your f.uckin choice.

Losers? on May 24, 2006 01:51 AM

First of all, I'd like to inform all of you that there is a Cobol for .net. http://www.adtools.com/info/whitepaper/net.html

Secondly, C# has similarities to Java, this is true...but I think it has more in common with Delphi.

Now if you are going to go with .net, why not Delphi.net? If your apps had been written in Delphi rather than VB6, migrating over wouldn't be an issue at all. You can do it when you feel like it and not feel rushed by Microsoft and their desire to leave VB6 programmers high & dry by making Vista the last version of Windows that will have a VB 6 runtime available. And learning VB.net is like learning an entirely new language...Delphi.net is still Delphi.

This is why when I decided to learn programming I went with Delphi rather than VB...that and the fact that the VB6 IDE felt like a child's toy compared to Delphi 6.

Microsoft has always done this to VB programmers...look at all the previous versions and how you were forced to upgrade to the next or be left in the dust. How many of you are still programming in VB5...or even earlier?

Delphi programmers have never had this problem. As was previously stated by Joe Bain, old Delphi code does compile in newer versions. I know programmers still using Delphi 2!

To Microsoft, VB isn't a programming language...it's a product...and they will make as much money from it as they can, making all you VB coders shell out more bucks every time they feel like changing the rules of the game.

The have done it before, they are doing it now, and they will keep on doing it. And you as a programmer have a choice...keep on buying tickets for a ride in the caboose of the Microsoft profit train, or start coding in a language that has tools created by more than one entity. C/C++ programmers have had that luxury for eons, and you should, too.

I can see why so many are switching to C#...Microsoft isn't their only choice for an IDE. And I will eventually make the switch myself, when I am ready....not when Microsoft says I am.

app on May 24, 2006 02:49 AM

Well, until the blog posted by "Losers? on May 24, 2006 01:51 AM,", I certainly enjoyed the diverse and *intelligent* opinions that I was reading.

"y'all have wasted your time in this fruitless adventure of whitty statements, and analogies"

Don't let this dimwit squelch your enthusiasm for debate. The only thing "fragile and limp," is his ability for repartee.

Les on June 6, 2006 03:52 PM

I am grateful for all the blogs i've read here. dotnet seems to be the answer for the future, my question is what is the best route to learn it?, i am contemplating spending/borrowing 5K to learn VB.net with a "reputable" training company, i have some fundamental programming knowledge from years back at Uni, i.e. Pascal, COBOL C,C++ . MY FUNDS ARE really limited but i'm prepared to make the sacrifice.
rasraymond@hotmail.com - please help

paul mcphoy on July 25, 2006 06:49 AM

[ICR] wrote:

They are producing plenty. Microsoft Expression Interactive Designer (Sparkle) is all managed code. Alot of Vista is managed code (The first componant that comes to mind, the volume control I'm pretty sure is. There is ALOT more though). Alot of the new software is being written in managed code (these are two of a few examples that I know of, I just can't remember what the others are off the top of my head, and can't research it now). Visual Studio has a large amount of legacy code. You really expect them to re-write the entire thing in managed code? That is just unreasonable.


Ah I see so it is unreasonable to expect Microsoft to re-write all their code but reasonable for them to expect everybody that uses their products to do so?

Mike on September 8, 2006 07:39 AM

VB.net will not die.

It will be for example, the only language used in SSIS.

and if you know SSIS well, you are making nice cash.

How do I know it will be the only one used for SSIS? I got it from Donald Farmer himself at TechED.

enough said.

Anthony Loera on September 12, 2006 11:50 AM

I think this is pretty funny. My personal opinion on the whole C# and VB.net is this...

We all know VB was/is pretty straightfoward to program in. With experience, one could do most things with it most businesses needed a program to do.

What VB inherits from version to version in addition to backwards compatibility is the "Hobbiest Language" stereotype.

C# on the other hand is pitched as brand new and doesn't inherit anything good or bad because it's, what folks?....it's New! It did inherit one thing (or should I say borrowed). What is that? it's the letter "C".

Whether they want to admin it or not, many of those switching to C# instead of continuing with Vb.net are doing because of that letter "C".

Pre-.net, they gathered and defended how capable VB is/was, how it wasn't just a hobbiest language anymore. Now they can gather together with feel like they are out of the hobbiest language stereotype.

Converting C# samples to VB.net is simple compared to converting from another language right now because they both use the framework, it's pretty pointless to say code samples are fewer now when one can use either language sample for the other with minimal trouble.


VB.Net is like a cousin to VB
C# is like a third or forth cousin to C/C++. (maybe more like an in-law)
VB.NET and C# are like half brothers

The whole debate is really just BS.

Dan H on September 21, 2006 03:58 PM

Those informations helped me a lot to create my assignment "vb vs vb.net" i am thankful to those who added good information about this subject.
what i found is that vb.net is only a better version over vb6.There are so many advantages
· Full object-oriented capabilities
· An incredible IDE
· Cross-language inheritance
· Real VB (or C#, etc) in ASP.NET, not VBScript
· Web service tools
· One way to do things, no matter what .NET language you are using.
· ..NET is a completely different architecture that provides better
performance, better scalability, less maintenance and more language choices
than COM. For example, VB 6 was not a true OO language and did not perform
as well as C. VB.NET is now fully OO and performs just as well as any other
..NET language

Kiran SCMS on October 11, 2006 04:06 AM

I've been using vb since version 4. I made the switch to vb.net when it first came out. I absolutely love it. The .net platform is pure joy to use. I really do enjoy it.

johnny on October 11, 2006 02:35 PM

I studied C,C++, advanced C++, Visual C++ etc, in college. When I got out (eight years ago), the only job I could find was in VB - I could not believe how easy it was. After I got certified in VB.net my company decided to go C#. Here's my two cent opinion. If you are a vb6 programmer reading this blog trying to decide...you are wasting your time. Go out and learn C#. In creating the .Net framework Microsoft made C# more like VB6 not VB.net more like C++. Because C# is almost as easy as VB6 - C# is going to grow the way VB did. I like VB better - I read these blogs because I hate to see VB die. But it lives on...just with some with some weird syntax and inheritance.

steven on October 27, 2006 07:46 PM

Debates such as this are testament to the fact that free speech still exists, regardless of its form so to speak. Anyone seeking to squelch a debate does not deserve this freedom.

OK, now to buisness. The age-old debate between VBx and C/C++ is still going, albeit not as loudly as the new VB.NET vs. C# fiasco. One could attribute this to the fact that VBx and C/C++ are in fact TWO DIFFERENT LANGUAGES not in any way related by a Framework or CLR. The arguments for both sides are/were strong because of this fact. Type "VB vs C++" into Google and then go practice your counting skills.

Despite this, deep down most debaters knew that neither language would be dominated by the other because it usually boils down to which one is cheaper. If Programmer #1 can produce a working program from VBx in less time than C++, it would have cost less (assuming a time-based wage). In the buisness world, that is all that matters. And if Programmer #2 can produce a working program quicker in C++ than VBx, it have would still cost less. And conversions from either language to the other was next to impossible using automated tools. One would 99% of the time have to re-write each line of code.

Anthony on November 9, 2006 07:47 PM

FWIW - I came to this site via a clusty.com search. I have spent the last 45-60 mins of my life attempting to gain some insight as to how to proceed. Regrettably, I have mainly endured useless opinions of "my Daddy can beat up your Pop!" Gentlemen and Ladies (if present), for the sake of those that must replace you someday, PLEASE, consider the value of the CONTENT of your post. An example is my post (the one you are reading) could have been just a whining session, but it is a substantive plea to provide more useful CONTENT (there's that word again) that can be of help to those of us initiating the journey.

To sum up what I think I have heard... the best way to go would be to learn C# AND .NET on a non-MS IDE that has a strong .NET comfort zone.

Did I pass the test?

CJW

CJW on November 28, 2006 03:16 PM

I have been using VB.NET in Visual Studio for about a year. I moved directly from Classic ASP, which I moved to from PHP at my other job.

It is syntactically similar to Basic/ASP. There is alot of code examples online that are written in C#. They are very easy to translate into VB. The only drawback is that if you use alot of JavaScript you have to jump syntactically back and forth between curly braces/semicolons to the more verbose VB.

Aside from that, they both appear to be very similar. If it is an issue of churning out the product, then using what you are most comfortable with seems the way to go.

Learning a language is simple for me. My biggest challenge has been in moving from procedural to object oriented thinking and applying it effectively.

Allyson on December 24, 2006 09:41 AM

Those are bison, not sheep.

scott on December 27, 2006 10:45 AM

This is a funny read and long read -- anyone else notice the problem here?

I started coding MS Basic on a TRS80 color computer (circa 1981), over the years the syntax to accomplish a Task comes and goes with the reality that I learn, I forgot, I learn, I forgot at least 20 languages -- then I ask myself why? Cause I like to learn new stuff? Cause everyone else was doing it? Cause it looked good on my resume? But after first decade or two of coding the language of the day it just got boring and I yearn for the day this inefficency comes to an end -- the day there is ONE and ONLY ONE programming language to get any automated task done. I'm done with skinning the cat 100 different ways -- it's still a cat.

Rob.

Rob on January 3, 2007 03:35 PM

Bwuahahahahahhaa!!!! I just had to laugh at the "pompous, arrogant buffoon" comment made by Ralphie Boy. That's hillarious! I like how he comments on my "crippling personality defects" even tho he's never met me. Good stuff, good stuff. Funny thing is, I actually agree with his comments. Oh well, what do I know?

Michael Flanakin on January 17, 2007 08:05 AM

I agree with Rob, everyone seems to be missing the point and that is whether you are developing using VB,C,C++, etc you will be always doing the same boring tasks. There are 3 main constructs used to write code, which are sequence, selection, and iteration, that's all there is !!!!!!... everyone is talking as these new languages are ushering in a new advanced form of writing code. I believe that the chose of language used should be down to your requirements and that as a qualified developer you should be able to pick up any language, and after a short learning curve be able to use it proficiently.

DJ on February 13, 2007 09:13 AM

Hello,

I love VB.Net. I am completely self taught. Starting with VB6 8 years ago. If you program with VB-6 and and then you make a transition to VB.Net, it is the dotNet framework that is new. The syntax is still very much the same, but with some distinct changes. Option explicit is no longer supported. But you can use option strict in dotNet instead and force explicit declaration of variables. Which is a good idea if you wish to learn the new rules for variable declaration under dotNet.

The trick to making the transition is to study the framework a little bit first. Learn the NameSpaces and the classes that reside there. Try to look at it this way. In dotNet you have the VB Code (not entirely but very much like VB6)and then you have the dotNet code which is very different and not like your old buddy VB6. So the trick is simply to learn the dotNet framework's classes and constructor methods, and how dotNet behaves at runtime and at design time.

I am still learning dotNet and I do not claim to be VB Guru. In fact I am merely a VB Geek and nothing more. And I know that when you see the code on my website, you people are going to rip me a new one.

GDI+ is so much fun and a good place to start. I do alot of GDI+ 2-D Vector Graphics. That is obvious if you visit my website. Check out the MATRIX Class, write some animated timer events, and use some arrays and for next loops in your code.

Then explore the rest of dotNet and it will make more sense.

Anyways, give it a try, it worked for me.

Benny

Benny on March 15, 2007 06:58 AM

Woops...So sorry. Option Explicit is supported in dotNet.

Benny

Benny on March 16, 2007 01:46 PM

** Pokes head above parapet **

I love using Ada. I use Vb6 at work, but Ada at home. A huge amount of ideas that C++ stole, then Java nicked, and so ended up in .Net were available in Ada in 1983. And using a subset of the language (SPARK) you can **prove** that your software is correct.

But I suppose this debate isn't about software correctness, is it? It's about some sort of elitism that programmers manifest for no other reason apart from ego. Why else would you want to criticise someone for using a language that you personally do not like? Why? If a given language makes a given programmer productive, then so be it.

* Drops head below parapet **

VillagePlank on April 3, 2007 07:55 AM

The problem with VB.Net is that it is neither Visual nor Basic!! If the purpose of Basic originally was to make life simple compared to Fortran then VB might have acted to make things simple with respect to other languages like C++ or C#. For years, that simplicity was there but creeping away. Now, with the OOP's crowd making.every.key.word.a.60 _letter.monster the simple or basic part is nearly gone. But in addition, with VB.net, the glue isn't dry yet. Stability is poor, toolbox crashes are frequent, and with poor internal error trapping (for example the system can't make up its mind whether it is case sensitive) these things make the student's life even more miserable. Engineering applications are nearly impossible, the engineer needs to concentrate on function not on undocumented function trees that go on forever. Documentation is wretched. Gone are simple graphics primitives, simple I/O protocols, simple disk handling commands, etc., etc., etc., etc. As a former System.IO.Wedgeymuffin of the 60's I know when I am being screwed by a vendor. Bravo, you have a great set of Microsofticles there!!!
The question isn't C# or VB.Net. Sad!!!!! just Sad!!!!!

Vineyard on April 6, 2007 02:35 PM

The matter comes down to what your goals are, plain and simple. If you want to make more money, go with C#. If you want to ease of use, go with...whatever you find easier to use. I am a self-taught "programmer" with less than a year experience (save your comments). I originally decided to get into scripting/programming when the guy that works in our office that used to handle those tasks was fired. This left us with nobody to write scripts or anything. At the time, I barely knew how to use the command shell. I picked that up, then moved on to vbscript, then vba, then vb.net (no vb6 for me). I am now working on C++, Assembly, MSIL, PHP, AND C# (I read a LOT...). I would not have been able to do any of this if it was not for vb.net. It definitely has it's place. I will say, even from a beginners standpoint, that both languages are mostly the same. It was easier for me to get into .NET through VB because it IS higher level than C#. It is just plain easier to read, at least from my standpoint. On the other hand, I have a good friend that comes from a shell scripting background in Unix. VB.NET is very cryptic looking to him, because he is used to c-style programming. My standpoint, ultimately? Learn everything. Forget vb vs C#, .NET vs Java, Windows vs Unix, blah, blah, blah. Learn everything. You will be better off. Ultimately this will lead you to understand the very nature of the machine, which will allow you to write in virtually any language you want, just by getting familiar with the syntax. After all, they ARE all the same at the core, aren't they?

MadCatWB on July 21, 2007 08:51 AM

I'm sorry you don't like .Net man!! I'm finding it quite cool, maybe its because I started in Java and its kinda similar?

roman on September 21, 2007 05:31 AM

I really don't see the validity of the c# vs. vb.net debate. .Net is .Net, which uses the same framework stuff no matter what the front language is, so performance or ability is not an issue between the two (at least no longer with vs 2005). Obviously ms created c# to get java and c heads into .net, and redid vb6 as vb.net to get its LARGE BASE of vb coders into .net (which with vs 2005 is incredible -- I did hate the initial vb.net and avoided it until now, 2007, not knowing vs 2005 really improved things for vb coders like me). So which is "better"? Neither! Same power, different audiences.

NonWoot on September 22, 2007 01:16 PM

dude you are comparing oranges and oranges. comparing vb.net to c# is usually an argument made by someone who only knows one or the other. Having written C#, VB.net, and Delphi.net side by side, i gotta say, it's all the same stuff. This really is a style choice not a technology choice.

.net is .net on October 2, 2007 04:44 PM

"To sum up what I think I have heard... the best way to go would be to learn C# AND .NET on a non-MS IDE that has a strong .NET comfort zone.

Did I pass the test?"

DUDE! Talk about a bunch of monkey dung! Flip a coin to decide which language you want to start with. then learn both, and for GODS SAKE, only develop .net in Visual Studio. Anything else defeats the purpose.

to cjw on October 2, 2007 04:57 PM

As someone who started in VB6, then learned C++, and then Java, and recently learned C# I can honestly say that, at least for me, development is far more efficient in C# and Java then in VB6 or C++. The .NET framework is somewhat bloated, but 3-5 megabytes overhead is very minimal on today's hardware and that will only become even more true as memory becomes even cheaper.

Managed code is going to be the future for most apps. There will always be things that must be written unmanaged, but for fast development you can't beat Java and C# because of the tremendous standard library support.

Stephan on October 2, 2007 08:29 PM

Hi, Now VB.net become so popular ....

if u love ur language then so be it.

it's all depends on your strong logical coding and commonsense and usge of it function or creating your own functions that's all yaar.

prashanth venkataswamy on October 21, 2007 11:51 PM

What a waste of internet bandwidth. It's amazing how many people don't realize that VB.NET and C#.NET compile the SAME. It's a pure syntax difference, no speed, no different abilities - just syntax.

Zach on November 19, 2007 07:40 PM

youre all wasting your time, i write CIL, have fun with your high-level language showdown : )

god on November 29, 2007 10:39 AM

The"Express" versions are very slow. You need the "proper" version of Visual Studio. Although they look similar, "Express" is NOT a cut down version of full VS, and lacks features such as dynamic background compilation (which is why it is slow to start every time you run your app)

Use (buy!!) the full version, it's great....

Andyf on December 11, 2007 06:38 AM

I don't quite follow. What language you use (VB.Net or C#) is totally irrellevant, right? I mean, it's the .Net framework that is important to what you can do with it. I speak danish, faroese and english, and all these languages work equally well for me to communicate in. Depends on what country I'm in.

This is the same with VB.Net, C# and Java. Depends on what platform you are developing on, and what your co-workers will be using... Don't write VB.Net if all the other 15 people use C#!

Don't you think it's a bit vague to say - just because vb6 is getting outdated - that these people will not use vb.net. Your own references state that those who are leaving vb6 are chosing different directions: You quoted that 43 will continue using microsoft platform, and of these:
37 will continue using VB (.net)
31 will use JAVA (Microsoft????)
39 will use C# (.net)
---------------------
107 % total :)))

But then again I'm not sure you wanted to be taken seriously about that survey... ?

Andras

Andras Eliassen on January 14, 2008 02:56 AM

You need to do some more research or simply close this site down. You are way out of touch with todays technology.

David on February 22, 2008 07:21 AM

good

rrttttt on February 27, 2008 09:05 PM

Right.

Okay, this article was from 2005, so I can only hope that the author has since changed his opinion about this. I don't have the time to read through nearly three years worth of issues, so forgive me in advance if I'm restating the obvious here.

All .NET languages, including C#, VB.NET (VB 2008 technically speaking), and even COBOL.NET all compile down to MSIL anyway. C# doesn't provide any technical advantage anymore beyond inflating the egos of those who use it.

VB.NET has a lower barrier to entry, and that may be why you still hear about VB code being bad--these aren't problems with the language; these are problems with the green developers who are still learning their craft.

C# has the benefit of being terse, while VB.NET is verbose; but while this may be an advantage while you're developing (less keystrokes==marginally faster code generation) I present to you that VB's verboisty is a strength, not a weakness.

The fact that each VB.NET structure has a clearly defined terminus instead of using the exact same terminus for all statements is and ADVANTAGE when going back to re-read code. Take VB's "End If", "End Class", "End While", vs C#'s "}","}","}", respectively. When I'm working on code, I want my brain devoted to understanding what the code is doing, not on "what is this curly bracket tied to?" VB.NET is inherently more readable--hell, it's almost self-documenting.

In another example, VB.NET is case-insensitive--and this is often a complaint from C# folks. Well, I really hate trying to read code where the same english word means different things throughout the code simply becuase it's capitized differently. I've seen horrorshows like this in the past:

if (ed!=Ed){ED=eD--;Ed=ed;}//WTF?

...seemed like a good idea at the time, I suppose. Anyway, this point is moot, because you can turn on Case-senstivity in the options. In fact, you can make VB 2008 as strict as C# or as loose as VBA, and every combination in between.

The difference between good and bad code has nothing to do with language anyway. There are fantastic VB.NET coders out there, and really crappy C# programmers, and I don't think either camp can lay claim to have the bestest developers EVAR or anything.

But, like I said, I'd much rather sit down and read VB code than C#...

Mark Milley on March 24, 2008 08:04 AM

well, i work for a UK company with an esablished user base of approx. 27,000 desktop applications (C++/VB6).

as part of our service, we do an auto data-synchronisation between central webservice and client apps. During this process (and with customer consent) we gather data on dotnet frameworks installed on customer PCs. Approx 50% have either 1.x/2.x/3.x .... the rest? Nada.

In Spring 2008, dotnet is not an option for slipping stuff onto an established userbase's PCs. Ever see any large-scale distribution apps in dotnet? Of course not.

james on March 27, 2008 01:42 PM

everybody here sound pretty professional in either of .net languages, as I read most of your comments!

My background is engineering and I did mostly hardware programming and some Java applications. However, the Company I am currently working for is using VB.net. I thought I go back to school and get a certificate course in .Net which will help both my resume and my current job! but, one of my friends who is a pro in C# told me to get C#.net certificate as opposed to VB.net.

I am not too sure if I should do that, because my company is using VB.net and it makes more sense for me to do VB...

Can you help in my decision making? does any one here know a good .net certificate program/ online certificate? what do you think is best to do?

Maral Seraji on April 9, 2008 06:34 AM

I think C# is more likely to be the new VB, but not quite as popular.
The drastic mindshare loss is too much to make up.

- Shelon Padmore

Shelon Padmore on April 22, 2008 06:50 AM

The author needs an abject lesson in writing objective articles. I've never read such an biased load of clap-trap.

Darryl Godden on April 29, 2008 03:49 AM

I think Jeff just wanted visitors (which in fact, it seems he did).

Andras Eliassen on May 5, 2008 10:42 AM

.. vb.net shouldn't have been created.. it's ugly and cumbersome to use. and i'd been using vb since version 4 to 6! but prefer c# for the last 7 years. just my 2cents

jack0fshadows on May 6, 2008 10:28 PM

I have used both languages - starting with VB and moving to C# out of curiosity. On balance I prefer C# because I find VB rather cumbersome (that old chestnut ;-) ) and in the beginning I also found it easier to shift to the .Net paradigm through using C#. Currently I am working towards MS certification and alternating between the two languages.

Maz on May 7, 2008 08:59 AM

I have been using VB 6 since 2000. I am a hobbyist but I do have some paying database customers. I started re-writing my database app
in VB 2008 XE in december of 2007.

I will admit it has been frustrating at times but well worth the effort.

I can also see that in some cases re-writing a project would not be
worth the effort.

Ron R on May 11, 2008 05:16 PM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.