Visual Basic 6.0: A giant more powerful than ever

When discussing VB6, we should look at the reality of the situation and not on preconceived opinions. New source code projects are made daily in Visual Basic 6.0. The paper proposes the reintroduction of Visual Basic 6.0 on the market, in parallel with Visual Studio line.

Introduction

Released on the market in mid 1998, Visual Basic 6.0 (abbreviated VB6) has been and it still is the most successful version in the history of Visual Basic. The VB6 compiler has been designed to satisfy the slow processors of the late 90’s (800MHz – 1300MHz). Fortunately, compilers do not get old (ie. ADA – an "old" compiler underlying F22's raptor on board equipment, or Fortran and COBOL - which are widely used)1-3. This throws us into an older conclusion, namely if it is new it is not necessary better.

Nevertheless, at the time, VB6 designers were true visionaries, who have done an incredible job which has withstood time. With the increase of the processor speed, compiler designers have become increasingly careless, overestimating the hardware power. These bad habits have probably been taken from the 3D game industry where the size of the game was almost always confused with its complexity and novelty.

Why is VB6 still successful ?!

There is no great secret that VB6 gets along very well with embedded machine code and the assembly language. VB6 advanced programmers are usually advanced assembly language programmers also. They have propelled VB6 programming language to the very top. Nowadays, through a simple copy and paste of the myriad of functions created by advanced programmers for VB6, an intermediate level programmer can create VB6applications that run faster than those designed in C++ (no joke there).

Microsoft should perhaps listen to the hundreds of thousands of programmers who demand the introduction of VB6 to the market . It seems that no other programming language has created more scandal than VB6, culminating in a very serious petition to Microsoft made by programmers (14627 signatories including 265 Microsoft MVPs) from around the world4,5. The phrase that is most heard from other internet VB6 programmers in small talk discussions is: "if there is no more VB6 then I will move to Linux, I know most programming languages anyway ..." otherwise a troubling phrase for Microsoft.

Both I and other VB6 programmers, do not understand why Microsoft does not redesign a parallel version of VB6, ("Visual Basic 6.0 phoenix" would probably be a good name taking into account the circumstances). Most companies take care of their fans and designers. Personally I do not see anything harmful or threatening in a new separate VB6 programming language for the Microsoft grand plans.

Some VB6 open source projects in 2013

With an average of 7 posts a day, VB6 programmers brought in 2013 about 2500 open source projects on Planet Source Code alone. What is interesting is the high quality of the projects made in VB6 in recent years. Listed below are some very serious VB6 projects that have ignited my interest and imagination:

Visia Compiler is a native x86 compiler for Windows 32 platform (update #4). This great project is made by Kinex (with thanks to Mark Chipman, Mordred (nick name), Tommy Lillehagen and Jordi Enguídano). It is written in Visual Basic 6.0 but compiles directly into machine code without the need of any runtime libraries or other dependencies. The language supports GUI creation, API, pointers, inline assembly (FASM must be installed). It may build and include libraries, include source headers (inc), custom entry point and dynamic arrays. Syntax is only little similar to basic-like languages as coding structure is near to C than Basic.

08 JAN 2014 UPDATE. This update includes a new content-aware resize tool (also known as Liquid Rescaling). Content-aware resizing uses seam carving (http://en.wikipedia.org/wiki/Seam_carving) to rescale images by removing unimportant areas while preserving important ones. It wasn't added to Photoshop until CS4, so it's a relatively cutting-edge technique, and I think this is the first-ever VB implementation. Feedback welcome! Try it from the Image -> Content-aware resize menu. This update also includes many minor bugfixes, optimizations, and other improvement. As the title says, PhotoDemon is a fast, powerful, VB6-based photo editor focused on usability. Despite being coded in VB, many of its filters and tools outperform those in other free photo editors (GIMP, Paint.NET, etc).

Key features include: 100+ filters and tools, macro recording, batch processing, automatic update notifications, real-time effect previews, EXIF and XMP metadata handling, RAW format support, color-managed workflow, and much more. Compile for best results. Thank you to all the PSC projects whose work helped PhotoDemon exist; full credit and links to those projects can be found in Help -> About.

Advanced mathematical functions (made in VB6)

Description:

Here I upload 102 modules containing several hundred advanced mathematical functions written by Sergey Bochkanov between 2005 and 2013 (some of these functions are not found even in C or C++). Some of the functions , include:

OpenStreetMap (made in VB6)

VB6 the king of the jungle

Microsoft "thinkers" probably "thought" that if VB6 is no longer supported, then programmers will be forced to move to the .NET environment. This was, undoubtedly, a wrong assumption, because it seems that in 2013 (and no doubt in 2014), VB6 is once more in the top of open source projects (see Figure 1). After the programmers petition4,5, and many articles in the media6-15, several years ago VB6 was again supported by Microsoft (and still is).

Figure 1. Best programming language in the world in 2013 - 2014. The figure shows the number of "source code" keyword appearances for some of the most popular programming languages6. These proportions reflect the actual number of open source projects for each programming language. The methods after which these calculations were made, can be found here.

VB programmers do not particularly like VB. NET and don't like any other versions of VB after VB6. Why? VB6 is dependent on a single file, namely: msvbvm60.dll. On the other hand, VB .NET is dependent on the .NET Framework environment, which inhibits the individualism of the programmer and this is not consistent with the human nature.

The silent VB6 war

Certain VB6 applications (compiled EXE's) are in conflict with some antivirus companies. The reasons behind this conflict are not yet known. VB6 is too strong and it has the most programmers, this may be a good reason for conflict, or, another reason would be the incompetence of these companies in extracting relevant signatures. There are rumors throughout the VB6 community that many customers uninstall the antiviruses of some security companies due to false detections on VB6 applications (VB6 executables). Let us remember, Microsoft has not perhaps realized that antivirus companies have buried Visual Basic Script (VBS). However, Visual Basic Script did not have hundreds of thousands of programmers worldwide as VB6 has.

If Windows 7 is criminaly ensane-smart and beautiful (Windows 8 being just smart) and the team dealing with it did a great job, the team (department) that decides the fate of Microsoft programming languages does not, still, understand the force of Visual Basic 6.0. Paul Yuknewicz is (as I understand) the Lead Program Manager on the Visual Studio team. He invites us to use VB6 inside VMware in the future!16. It says this in an online movie viewed by 45,841 VB6 programmers, 45,841 souls. Now, is not this a lack of respect for the entire VB6 community ?! just a thought ...

The humble request of programmers

We have to force Microsoft's hand to reintroduce VB6 to the market, of course, under the same name and fully compatible with future Windows OS’s! As long as the programmer feels like in VB6 and the classic VB6 source codes work, everything will be fine and everyone will be happy. Increasingly more and more applications are made in VB6. We will not be ignored !

I will end this article quoting Karl E. Peterson: "Microsoft had never rendered any of their customer's data unusable. Not once. Why they did it first to the users of the world's most popular programming language ever, the product the company was founded upon and that may have had more impact on their overall corporate position than any other, is extremely puzzling. After years neglecting the VB6 community, Microsoft seems to be missing something. Us!"16

1. As a RAD tool it is great for prototyping
2. It has an interpreter-like feel and safeness about it but compiles quickly without all that .NET baggage
3. For the beginner programmer it sits nicely between a 3GL and a 4GL

VB6 is great and Microsoft owes everyone an explanation as to why VB6 was such a poor cousin to the other Visual Studio 6 Developer Components and why everyone has to pray that their VB6 code will run on its next OS!

I'm the author of the PhotoDemon project mentioned above (which should point to photodemon.org instead of an old Planet Source Code article). I thought I'd share my $0.02 on VB6.

VB6 is not a perfect language. No language is. But it does offer some unique benefits that many of its competitors lack, despite being nearly 15 years old.

One of VB6's greatest strengths is its portability. Privacy is an enormous concern for many people, so interest in portable applications - e.g. apps that can be run from a thumb drive without installation or admin rights - is higher than ever. VB6's lack of external dependencies makes it an excellent choice for portability, and is the primary reason I chose VB6 for PhotoDemon. VB6's runtimes are included by default on all versions of Windows (XP through 8.1) meaning anyone can download a VB6 application and run it without installation or admin rights. That's huge. .NET's versioning hell and enormous size make it a poor choice for portability, and there are simply no other languages that provide the combination of portability, RAD, and performance that VB6 does.

Let me elaborate on performance a bit, since PhotoDemon is a project where performance is a primary concern. VB6 remains an excellent choice for coders who care about performance. As a language with support for native compilation, it tends to outperform purely interpreted languages (java, js, etc), while staying competitive with similar code from a modern C/C++ compiler. As an example, PhotoDemon outperforms both GIMP and Paint.NET in a number of areas, and while that's more demonstrative of good algorithms than good compilers, it goes to show that performance is still a perfectly valid reason to stick with VB6.

Surprisingly, VB6 is also a reasonably good solution for cross-platform development where performance is crucial. (Obviously HTML/javascript is much better for less performance-intensive operations, but for things like photo editing, they remain insufficient.) VB6's simplicity means its code actually runs very well under Wine, and it does not suffer the same woes as .NET projects reliant on Mono. There are no perfect solutions for cross-platform development, but VB6 is a surprisingly good choice for performance-intensive, UI-centric cross-platform applications.

I could go on for some time, but ultimately the arguments for/against VB6 should boil down to this: can it still be used to write quality applications? I think projects like PhotoDemon demonstrate that it can. For all its faults, VB6 continues to fill a niche that its successor (VB.NET) and "competitors" (Xojo, PowerBasic, etc) do not, while still remaining true to the BASIC heritage. As a developer who works in everything from PHP to Perl to C++ to javascript, I still find myself coming back to VB6 for certain tasks, and that will continue to be true for a very long time.

It is a honor Tanner! At first I was looking through the PhotoDemon VB6 source code files, but after a while I started to simply use the software for my work, and I consider PhotoDemon as the best graphics tool. Many of your observations complete this article. Thank you for your comment, it is greatly appreciated

I would very much welcome an updated version of Microsoft's VB6, as the forwarding/preceding article proposes.
I am a son of Visual Basic from v3 to v6 and would like the code I write, with VB6, to be Cross-Platform or at the very least to be guaranteed on future MS Operating Systems. VB6 is a brilliant lightweight software developer tool that deserves a whole lot more recognition and backing from its main facilitator/creator.

@ Microsoft, do the honourable thing and make good your promises to VB6 licence payers, honestly, VB6 ia a poor cousin to the other developer tools available within Visual Studio 6 and it is quite inconceiveable that you would have ripped off such a huge customer base, as you did, without good reason. Please accept that you were always obligated to fulfill the promise that you were so reticent to deliver. Given your sudden desire to convert all your prodigy to your Dot Net, and how expensive it was and still is, you will naturally forgive how upset and aggravatated we, as a community, have become as true believers in your original awesome-ness. Nowadays, u is just some tarnished bit of nothing that none of us wants to be associated with, your choice Microsoft... these days, I reckon the customer always wins, so good luck with your 'couldn't give a toss' attitude but please, at least acknowledge, that you can still do some good by repaying your followers with the goods you promised but, deliberately, failed to deliver. My name? Dave Carter! My email? daveecarter@hushmail.com!
C'mon Microsoft, change the world and stop being such a money grabbing pratt, you unforgiveable f***er, you! Long Live VB6, Long Live Microsoft, but only on condition of it being conversent with and amiable towards human endeavours that are not drownded in a sea of fiscal want, but are elevated to a higher point of responsible public good than just making sure that 'Polly has her Pony' and that all is well back on the Ranch! For Pete's sake, what6 planet are you on?

Thank you for a very interesting article. I agree, VB6 is alive and feels better than ever. With over 10 years invested in VB6, I have no intent or reason to move to another development language/environment. My annual income today is likely in the top 1% specifically because of what VB6 allowed/allows me to do. That's really all that matters to me.

I agree, it was/it is good for business and this is one of the main reasons why it was supported by programmers and their companies. Thank you for your positive feedback on this article, it is greatly appreciated

Congratulations for the article. The truth is there is no competitor for the niche that vb6 fills. It is a very capable language in everything that it does. I can code in C, ASM, and C#, but VB6 is still my favorite. C# is to long winded and verbose. To many options, nuances, classes. Bigger is not better.

VB6 is elegant in its simplicity and if you need more power it integrates nicely with ASM and the windows API. It does everything I need for the last 13yrs and I will continue to use it. There is no reason to not continue to sell it, people will still use it. You are leaving money on the table and dissuading developers from MS technologies all at the same time. Many developers dislike being forced to switch to the language dejour and with no code upgrade path. They ask themselves when the same happen to .NET?

The language we choose to code with should not be subject to the whims of the developer of that language. When we originally purchased our copy of Visual Basic, we were given a license to develop with it not with a stipulation that at some future time the creator might say "This is dead, you may no longer use it".

Now, the creator of the language may decide to no longer support it, society at large may decide it is no longer the preferred development language used in the mainstream, but that does not preclude enthusiasts (or evangelists) from continuing to successfully use it in accomplishing their objectives.

I have made a career out of developing with Visual Basic beginning about 25 years ago - even working with competing predecessors as they first began to emerge. When Microsoft released Visual Basic, I saw the future and the impact it would have. As a result, I have been blessed to be very successful in my career. Now, far enough along, and successful enough that I no longer need to be working for "the man", I can march to my own drummer and continue developing with Visual Basic, and am still extremely successful. In perfecting my skills over my career, I know that my productivity rivals 10 decent Java developers to get the same job done. It allows me to continue to be successful working for myself, on my own terms, and not a corporate blob.

I don't have any issues with folks who prefer Java, or whatever flavor of Visual Studio tickles their fancy - it's a choice. By the same token, if Visual Basic, VBA, VBScript, etc. gets the job done for me, and allows me to create robust, reliable, high-performance systems, I fail to understand why so many others take issue with it.

VB6 does everything I need to do and does it very well. Honestly I can live with its current features and stability. It fills a niche that nothing else does. It is the best RAD environment I have found and has great powerful GUI capabilities. I will not use .NET. I have and can, but I find no extended value in it over VB6. I do not want to be more abstracted away from the processor , Windows API, or raw memory access. If anything I want to be closer to it. Seeing the trajectory that Windows has taken in general, I am glad they havent decided to try to innovate on VB6 yet. I dont really trust them to do it right. To the people who argue that all of .NETs OOP stuff is great, I disagree. I am much happier with C over C++ as well. Complexity gives people more ways to make things..well complex. I prefer simple direct solutions where ever possible. If you revel in complex constructs fine, use your language of choice, but your not going to sell me on it. For the VB6 bashers, its fine that you dont like it, go use something else, but your arguments have no value for those who do use it. If a VB6 developer has hung in there this long to still be using it and rejecting other languages, its experience that has fueled this choice and strengthened their resolve. It does what it does well. Every language has a niche and target audience. This is still the best product in its range even though its 15yrs old and billions have been spent trying to obsolete it.

Much of it is well reasoned and interesting, but your claims that VB6 is the 'best programming language' via some simple search engine exploration are completely flawed!

Just a few reasons ...

1. You are not filtering searches by date, so how can you attribute your results to 2013 - 2014?
2. The presence of the terms "source code" and a programming language will bring up a great many pages that contain text, not source code. How does this in any way reflect the usage of that language for writing open source code?
3. You only consider 3 other competing languages. What about JavaScript? Ruby? ...
4. Your results are in contradiction to a large number of other more reliable studies.

If the results lack of scientific method, then shame on me, because I am a scientist in the true sense of the word.

However, some particularities of this issue must be placed into a correct light. Programming languages (VB6, VC++, C++ ...) and scripting languages (PHP, JavaScript, Ruby ...) can not be put together in such a study (it is not just my opinion).

TIOBE, Github and PYPL contradict each other. Therefore, these studies are NOT reliable. And these are the reasons:

1. TIOBE index it is based on Alexa rankings. TIOBE places C++ above PHP, and this is not correct at all because PHP and Javascript have the largest amount of source code in the world.

2. "PYPL is created by analyzing how often language tutorials are searched on Google". PYPL places Java above PHP and Javascript under C++, and VB on the last palace ... which is not true.

3. "Github is a dataset of Github events queryable using Google BigQuery". After I looked at this "study", I even refused to take this into account because it has nothing to do with the reality (it has on the first paces VimL, CoffeeScript, Scala, Clojure, Go and Groovy, but NOT VC++, VB6 or VB. NET ?!).

Thank you for the comment, it is greatly appreciated.

PS: if the article didn't have at least one 4 stars vote then would have meant that something was wrong with it.

if the article didn't have at least one 4 stars vote then would have meant that something was wrong with it.

Not necessarily true, I would give it a 1 vote for content as I disagree with your whole concept of reviving VB6, but a well presented article does not deserve that. Note that even Colin did not down vote the article.

I also notice that most of your positive responders are low rep members, not one of the more respected CPians are will represented.

Also you may look at the 3 votes for Colin's comment, 1 negative and 2 positive and the balance is 4.7 something, indicating that at least 1 other high rep person approved of his comment.

1. TIOBE index it is based on Alexa rankings. TIOBE places C++ above PHP, and this is not correct at all because PHP and Javascript have the largest amount of source code in the world.

Where's the link to your source for this? If you're going to play scientist, you've got to show ALL of your work and sources.

ISpliter wrote:

2. "PYPL is created by analyzing how often language tutorials are searched on Google". PYPL places Java above PHP and Javascript under C++, and VB on the last palace ... which is not true.

This is slightly flawed as there can be many reasons for a search for classified language that have nothing to do with using the language itself. For example, your own research.

There are plenty of cases where someone may search for how to use a 3rd party control in both C# and VB.NET. Should that count towards the popularity of one or both of the languages??

I agree with the others. This article sniffs a bit of finding facts to fit your hypothesis instead of letting the data drive the hypothesis.

Being a former long time VB6 developer, I absolutely do NOT agree with this, nor do I agree with trying to force Microsoft to bring back VB6 support. I picked up VB.NET way back in 2001 when .NET was a Beta and you had to write code in Notepad and compile with command line compilers and immediately thought that using VB6 was like coding in the Dark Ages! I've never started a new VB6 project since that day.

Quote - "VB.NET enters top 10 for the first time.
Visual Basic .NET has entered the TIOBE index top 10. This is quite surprising for 2 reasons: VB.NET is the successor of Microsofts well-beloved classic Visual Basic 6.0 version. Since VB.NET needed to run on Microsofts .NET platform the language has changed drastically. Many software engineers refused to migrate to VB.NET. For this reason VB.NET has been critized through the years. The other reason why this is surprising is that Microsoft seemed to slowed down further development of VB.NET. For example, the latest Visual Studio version 2013 doesn't contain any new VB.NET language features." /Quote

This is the best performance for VB.Net in it's 12 year history.

Visual Basic (VB6 and earlier) is in 7th place.

PS: I do not want to bother you, but how can you be a former long time VB6 developer if you picked up VB.NET way back in 2001 ?!

because PHP and Javascript have the largest amount of source code in the world.

While I enjoyed your article, your reasoning in regards to positioning is entirely flawed.
For example, since China is the most populated country in the world, therefore Chinese (or one of the dialects in China) must be the most spoken or, most popular language. Population does not indicate popularity or use.

In college, one of the tasks I was given was to write an application that counted the number of lines in a COBOL application, the implication being, the number of lines denoted the complexity of it.

Code sammple:

Add A to B giving C
Add C to D giving E
Add E to F giving G

(Only the value of G was ever used again)

versus

G = A + B + D + E

The first example is 3 ilnes, therefore 'more complex' than the second example although the end result is the same.

If VB 6 is to stand on its own, then the developers who insist on using it must learn to live in an everchanging world, and by extension, accept that new hardware and software may not be compatible with it.

If that happens, don't ask Microsoft to update the language; they have provided a path forward, even if people choose to not use it.

You can vote all you want for MS to bring VB6 back. It's NEVER going to happen.

Now, if this vote was for MS to Open Source VB6, that's got a better chance of happening. The "die hards" can keep their precious VB6 as long as they want without trying to hold back the resources of MS to further progress other, more advanced environments and languages.

A computer programmer exemplifies Human thought, translating in effect each thought to a computer command. It is therefore ABSOLUTELY necessary that the programming languaged used is as close to Human thought as possible. This is exactly where VB6 scores High. But I do appreciate the need for other languages.

It is time to re-invent VB6, proving that it does indeed offer an excellent environment for converting thoughts to programms.