tags:

views:

412

answers:

12

Why is VB6 still in use? I am confused because Visual Basic 2008 .Net exists and why don't programmers use VB 2008 .NET instead?

I have observed lately that many recently released viruses use VB6 as well.

+3  A: 

Perhaps, old programs that are written in VB6 still need support, and developers find it too much overhead to port whole software onto newer platforms like .NET.

I remember Joel's blogpost regarding this very question. And as far as I remember his thoughts were exactly the same.

Sorantis
+3  A: 

There are still a large number of developers who know VB6 and can create applications quickly and cheaply in it. The businesses they work for see no reason to spend additional money hiring new people & upgrading infrastructure when the apps they're using still work. Same reason IE6 is still used in corporate environments

Glenn Slaven
Another major additional cost would be migrating existing applications.
MarkJ
+2  A: 

Some people don't understand object oriented programming. So they stick with what you know. The only problem is that you need to keep up with current technologies.

Check this discussion.

TrickyM66
You can create procedural programs using modern languages. You can just neglect OO features of a language.
Sorantis
-1 I disagree. Microsoft UK surveyed VB6 developers in January 09, and found that at least 45% are using .NET as well as VB6. Many of us love learning, use OO in VB6 as much as possible, and use VB.NET for new development, but we have actual working applications ("legacy code") that still need maintenance. http://blogs.msdn.com/goto100/archive/2009/02/17/results-of-visual-basic-survey-uk.aspx
MarkJ
+14  A: 

If I had a couple years to spare I could get rid of all the VB6 code we have. My boss has other ideas for my time. Computer languages don't die if they have a large enough installed base. It's just too expensive to replace all the code.

Kevin Gale
+1. And +1 to your boss, too.
MarkJ
Yeah I agree with my boss. He's a good guy. It would be nice to rewrite all the code but it's just not going to happen. We do pick away at replacing it a piece at time.
Kevin Gale
The same is for Cobol :D
yelinna
+7  A: 
  • Many application already built with VB6 still exist, and will exist for more long time.

  • Some places still teach VB6 for students in summer courses, and they say that its a good programming language to start with!!

  • I think also if a developer was working with VB6 and didn't see .Net, he will keep producing programs using VB6!!

  • And while its wired but there are some still don't have .Net installed on their machines and need windows applications.

Amr ElGarhy
If you see places teaching students VB6 you may want to try and encourage them to use VB.Net... with the Express tools being free, there aren’t any good reasons to teach students such an antiquated language. Also, if you have XP or above (only supported operating systems) you have at least .Net 1.1. If you update your computer using Windows update or WSUS, you probably have .Net 3.5.
Matthew Whited
VB6 is a good language for learning the Windows API
yelinna
+4  A: 

Because VB.NET can't compile all VB6 code, Microsoft broke source level backward compatibility between VB6 and VB.NET, so programming houses that had a significant investment in VB6 code have put off switching.

John Knoeller
I think "put off" is an understatement - it's been about 9 years.
John Saunders
Yeah, but I just had a job interview with a company that is _just now_ moving to C# and plans on taking at least a couple of years to move away from their VB6 codebase. The thing is, this company is doing _well_
John Knoeller
@John. Are we supposed to spend significant development effort migrating to VB.Net, while our competitors invest in new features? We'd go bust, long before any possible productivity benefits from .Net had paid back the original migration investment.
MarkJ
@John. Delaying migration has been a good decision. Migration has been getting easier and easier - the third party tools keep improving and language features like generics make it easier. VB6 runtime support keeps being extended so the VB6 code still runs fine. Also some original parts of .Net now look rather neglected - migrate now and you can target WCF rather than remoting, for example.
MarkJ
@MarkJ: You know your business better than I do. I think it made no sense to move from VB6 to VB.NET back in the .NET 1.1 days, but to just now be starting the porting effort doesn't make a lot of sense to me either.
John Knoeller
+2  A: 

VB6 is still the FASTEST, EASIEST way to make GUI programs. Im not saying that using .NET isn't 'BETTER' but for a very large majority of programmers, its NOT faster.

Wayne Bienek
How is it not faster? .NET has a better visual designer, a richer framework, etc. It should be quicker to throw together a .NET app than a VB app.
Matt Olenik
How did this answer get any upvotes?
Baddie
That was the case for .NET 1.0 but since VS 2005 it’s definitely no longer true. .NET has caught up on all the goodies that VB6 had, especially with the introduction of the much better WinForms designer.
Konrad Rudolph
+2  A: 

vb.net semantics are really quite different from vb6's -- better, IMHO, but definitely different; and the surface syntax similarities, partly masking the underlying semantics differences, can be a trap more than a help.

As a consequence, porting existing vb6 programs to vb.net may be perceived as a substantial effort and be deemed to be unwarranted (that may be right, depending on how much ongoing maintenance the existing program needs and what environments it needs to run on).

More controversially, training existing vb6 programmers (especially employees who do a bit of coding in vb6 as only part of their overall job, which may include system administration or other duties) may be perceived as unwarranted too -- I think wrongly, almost invariably, because upgrading a person's skills is generally an excellent investment (I say "almost" because I'm reminded of an old friend, quite a few years ago, who steadfastly refused to learn anything beyond Cobol, including VB... but that was because he had such a short time left to go before retirement, his time was fully occupied maintaining existing Cobol programs, and he never really liked programming anyway, having slipped into it almost by mistake and strictly only as a way to make a living!-).

Alex Martelli
It's a shame that people enter a field just for the *living* and not the *liking*. But it is also explains why the people that *like* the field typically do much better.
Matthew Whited
Porting VB6 programs to VB.Net **is** a substantial effort, so that perception would be correct.
MarkJ
@Mark: yes, definitely. In my experience, porting any substantial VB6 software in a meaningful way (i.e. ending up with a maintainable architecture) is more expensive than a rewrite from scratch.
Konrad Rudolph
A: 

Why is VB6 still around? The answer any surprise

  1. Languages don't expire, it's our attitude around them that changes

  2. If you ask why VB6 isn't dead, let me remind you that C++ is still alive and kicking

  3. VB6 developer licenses do not expire

  4. Also, run-times, there are many places that require IT to install run-times. VB6 came with Windows 2000.

  5. There are many many many applications written in VB6, and sometimes there isn't a budget to upgrade it, just maintain it. Look at MFC as a prime example.

  6. Ever used apps like Magic Jelly Bean Keyfinder? It's written and maintained in VB6 but Delphi rather.

Chris
I tried to compile `Magic Jelly Bean Keyfinder` in VB6 but the IDE keeps on rising `Delphi code found at line XX` error. Help! :-))
wqw
@wqw, wow, I stand corrected
Chris
Languages may not expire, but support does. In the case of VB6, that’s a biggie, especially since the VB6 runtime has known bugs which will remain unfixed in all eternity. As for C++, that’s still actively developed and maintained. Furthermore, C++ *still* fills a niche, unlike VB6 (which has been completely superseded by .NET) so the comparison is useless.
Konrad Rudolph
+1  A: 

VB6 and VB.NET are completely different languages. They have absolutely nothing whatsoever to do with each other. Microsoft borrowed a few syntactic constructs from VB6 in VB.NET, to make the language appealing to VB6 programmers (just like they borrowed a few syntactic constructs from C++ in C# and a few syntactic constructs from Java in J#), but that's about it.

At the beginning of the Dynamic Language Runtime project, there was a prototype implementation of a language called VBx or Dynamic VB, which was intended as a successor of VB6 on the .NET platform, but it never left the prototype stage, and Microsoft decided instead to integrate DLR support into VB.NET 10 (and also C# 4) and improve COM interoperability in .NET 4, thus alleviating two of the major pain points with VB.NET compared to VB6.

Jörg W Mittag
+3  A: 

Same reason for many companies to keep on Cobol. Too much built on it and they can't afford a major upgrade including the business logic all over the apps.

Alfabravo
A: 

VB6 is a rapid application development system that does not require a runtime to be present on the target machine.

Simple as that.

(VB6 runtimes have been included with the OS since the launch of XP in 2001)

soupagain