Why we still use VB6 for some projects

Aug 9, 2007

I've been asked several times, what programming language do we use in our development. Here it is:

Yep, that's right. We still code in Visual Basic 6. We do have modules made with C++, but still we use a lot of VB6. And here is why:
  • VB6 is the only .NET-like rapid development tool, that produces small native Win32 executables (that run fine on Vista, by the way, of course, with some hacks applied)
  • VB6 is so COM-friendly
  • VB6 is widely supported by the community and the Internet is full of articles, manuals, hints and tricks
  • VB6 is rapid, allows to concentrate on the end-user's needs instead of memory management, marshalling and stuff

With VB6 I do miss the "true OOP" features like inheritance, or polymorphism. In fact, ages ago I was a "hardcore" C++ developer, who despised VB6. But now I'm not going back to C++/MFC. Because I'm really spoilt by rapid .NET development. I wish there was a "C# 6", but there isn't, so we stick to VB6. It is almost dead, it will be totally unsupported after 2008, but... it works!

You may ask, why not use .NET to build end-user tools?

  • I believe that our customers need small and fast native executables, that do not require a 25 megs download from Microsoft, and run on older versions of Windows
  • .NET apps are way hard to protect from reverse engineering
  • I don't like the mess with different .NET-framework versions (1.1, 2.0, 3.0 and now even 3.5) that might confuse our customer
  • Basically, .NET is good for developers, .NET is OK for enterprise web-applications, web-services, some complicated distributed database-driven enterprise apps etc. etc., but not for end-user utilities.

I guess when the VB6 is really truly dead, we will think of moving to Delphi, maybe. And again, I wish there was a native compiler for C#... Sigh...

UPDATE: thanks for commenting, mates! We do think of migrating to Delphi. But as far as I know, it has no support for Unicode. Correct me if I'm wrong.

5 comments:

Oliver said...

There is another Win32 development tool available, it's called Delphi, and the latest version works with Vista.

Craig said...

I have to agree with you Oliver. Although if Alex has a great deal of experience with VB6 then changing to Delphi would make not much sense, but his points are slightly misleading.

- VB6 is not the only RAD like tool that produces that produces native apps (with hacks applied). Delphi does it also (with no hacks applied).

- VB6 is COM friendly and while some aspects of COM are easier in VB6 Delphi is ultimately much more powerful in developing COM objects.

- Delphi also has great community support. In fact it is probably all that kept it going over the last few dark years.

- Memory managment is definitely a pain with C++, especially as 90% of developers have no clue about pointers. Delphi doesn't have garbage collection but any reasonably programmer will have no problems.

Also,

- Delphi does have 'true' OO features.
- A new version of Delphi came out this year and there will be another new one next year.

Alex said...

Craig, Oliver, thanks for commenting! I've been looking at Delphi for the last 8 month, cosidering a migration... Actually, I wrote in my post that "we will think of moving to Delphi, maybe"...

But there's one thing that stops me from migratin to Delphi: as far as know, it has no support for Unicode. :(

Clay Dowling said...

I work with Delphi every day. It does not have the level of object oriented features that are present in C++, and at times that can be a big drawback.

If you find that you need an alternative, C++ isn't completely out. MFC is a serious pain, but alternative GUI libraries like wxWidgets take the pain out of GUI development. There is still the necessity of having developers who understand pointers and memory management, but experience has shown that they have as much trouble with Delphi as they do with C++.

dan said...

Window is now a bloated and a dead O/S, VB6 works better on linux under WinE. IPhone, Navman, tomtom and net books are the way to go in the future. Windows.NET is to fat to run on small devices and India is the hub of programmers. Programming a dead end unless you do it for a hobby for the Iphone.

Post a Comment