Authors: Tony, Dave, Winston, MathScienceAndGraphics, Diletante, SuperDre, Tim Chambers, JillS, Michelle, Razvan Preda, Jeff, Andrew Oliver and Anonymous


Abstract: If you know nothing about VB6, here are some projects (1,2,3,4,5,6,7) that enlighten the path to the extraordinary capabilities of this language (everything is open source). Projects like these (1,2,3,4,5,6,7) are hundreds of thousands on the Internet (all open source).


Regarding VB6, maybe this is a more appropriate metaphor: In the 1400s, Gutenberg invented the printing press. It’s commonly agreed by historians that his invention “permanently altered the structure of society.” However, his primary motivation was to print Bibles. Before that time, via cloistered scribes, reading and interpreting the word of God was the exclusive domain of the Pope, to be promulgated by his Bishops and Priests. With the printing press, the word of God was brought to the masses to be read and interpreted by them directly. The result was the reformation, leading to the renaissance and our modern age of science, democracy, and technology.

Advertisement

Advertisement

With just a touch less grandiosity, Microsoft did something similar with the advent of their BASIC language, starting back with Radio Shack TRS-80 computers and even before. Prior to that time, computers were the rather exclusive domain of the DEC, IBM, and Wang “priests.” Microsoft quite successfully brought the computer, and the ability to make it do wonderful things, to the masses. This progressed through DOS with the BASIC Professional Development System, on through Windows combined with the various versions of VB. Those new to the scene can argue otherwise, but those of us who have been around know that there’s a rather direct upward compatible path all the way from TRS-80 BASIC to VB6.

However, when they abandoned VB6 (thereby abandoning their upward compatible path), it was as if they had decided that their entire success strategy had been a mistake. It’s almost as if Gutenberg felt he had made a mistake, and started going around collecting up his Bibles from the masses, destroying them, and giving the interpretation of God back to the Pope, Bishops, and Priests sitting in their ivory towers. Because of copyright laws, Microsoft has a bit more chance of pulling this off than the Catholic Church, but not without a great deal of fallout, lost respect, unneeded divisions, which we’ve seen in the larger programming community.

Microsoft, give us back our Bibles (erm, I mean, VB6) so we can once again have a direct relationship with our computers, making them do all the wonderful things that were once supported and applauded. Ideally, build it into the next release of Windows, just like VBA is built into Microsoft Office.

Sponsored

Platt, a Knuckleball is a specialized pitch that can only be thrown by a few elite pitchers. VB6 is a wonderful, well integrated, full featured computer language that allows straightforward access to computer programming to bright people who wish to make computers do high-level tasks.”

So how about offering a developing platform that people actually love and that is more productive (RAD)? It makes sense to me that a VB6 like product would do well to achieve that goal. While you find a great number who would agree with this, there is also a large number of people who have embraced the .Net platform and see nothing wrong it. Microsoft has put so much time and effort into it for the last 14 years (unbelievable) and they are so deep into it, that really makes me wonder if they can make a U-turn on that. Yet at the same time, the clues are here and there that it could happen. A COM based VB7? One can always dream.

I really am clueless about the future. But the facts are that, globally, MS is on a downward slope as of lately. They have to move fast before Java or others take over . On a side note, there is a basic for android on the market and from what I have seen, it is MUCH MUCH MUCH more VB6 like than it is .net like. And it is pumping mobile and phone apps right as we speak. Basic4android is RAD and NASA has been using it to develop mobile apps to control systems.

Now the whole android thing is not all that old when you thing about it. Serious players are positioning themselves real fast. Microsoft does not have years to spare to take the right decisions. .Net is for techies, I don’t think it will ever succeed to bring programming masses to Mobile... while a VB6 like RAD tool could do that.”

VB6 is offering the possibility to focus more on building the algorithms rather than on writing time-consuming code

TCA is one of the more recent software systems that is based on Visual Basic programming. Source code is written in more than one programming language but predominant is VB6. The reason is quite simple. VB6 is close to pseudocode, offering the possibility to focus more on building the algorithms rather than on writing time-consuming code. Understanding the studied processes and creating the algorithms are the core of any scientific software system building activity. Writing the code is just the implementation phase that offers the possibility to verify the results and that should happen quickly. Otherwise, the research of the phenomenons would be dragged over a long period of time due to the implementation phase. In border sciences, such as colour science (which requests knowledge in the fields of chemistry, physics and mathematics), it is important to have more time to study and understand how to address the problems, in order to create viable algorithms, than to waste time on writing complicated computer language syntaxes. Large software programs that aim to solve a variety of problems are usually not written today in only one computer language. That is because some languages are better suited to some problems, and some are not. I started learning computer languages when Fortran 77 was leader and learned several computer languages since then. VB6 is not a strongly typed object-oriented programming language and that’s why I’m not exclusively using this language but VB6 earned its place among the top computer languages for good reasons that should not be underestimated. Ultimately, it is software developers that make computers useful and Operating Systems attractive, and if there’s a large number who say that VB6 should be supported, then Microsoft should continue to support it in its own interest.

The Microsoft dilema regarding Visual Basic 6.0

VISUAL BASIC wins the technical impact award at The 19th Annual D.I.C.E. Awards (2016)

Microsoft is awarded with the technical impact at The 19th Annual D.I.C.E. Awards (2016) for the creation of VISUAL BASIC programming language. The latest version of Visual Basic is Visual Basic 6.0:

The speed at which I can develop in VB6 is just astounding. It is the perfect tool for all my application needs. Rock solid applications in no time at all. Just amazing to this day. If Microsoft put out just an updated version (64-bit) and market it as RAD tool I cant see how that would have any down side for them. They can still have .Net for those that feel they need it. .Net and VB6 have co-existed for several years at this point. They will co-exist until 2024 at least. I say let all the .Net folks have their .Net they are certainly no threat to VB6 developers. Both great products in their own way.

VB6 will out-last that entire .NET generation of tools

.net is just plain awful. Slow, buggy, incompatible tripe. The code isn’t even very readable. I know, I’ve had to use it professionally, however given the choice, to start a new project in ever tighter timescales, VB6 is the ONLY option. Period. I’ll be honest, I don’t need a new version, just keep it running in your new OS’s MS, that’s all I need to hear. However, if it does ever die it would actually be less trouble for me to just move to a new platform completely, as other have suggested, so it would be just one more nail in the coffin for Windows generally. If I wasn’t a programmer (ok .net peeps, I’m not a programmer in your book), I think it would be quite perverse for a company to ignore a product that is obviously as popular as VB6, even today a top 10 ranking development tool. And one which only exists on Windows. Bearing in mind the ebbing away of Windows fans as it is, can they really throw the baby out with the bath water? Nobody like to admit their wrong, but they should really take their heads out of their ***sses occasionally and see what their own community actually want. By all means, keep developing .net, if that makes you feel any better, but I think most VB6 developers will have already trodden that path and decided it’s not for them. I don’t think any new version based on the .net model will ever change that, even if people bothered to try it out again (I think I tried out all of them, up to VS 2010 (?)), it didn’t get better, fancier, definitely, more complex, absolutely, more powerful, depends on what you think power is (as it’s generally slower each rendition), a joy to program in, not at all, anything like VB6, no - it’s a totally different language. In another post somewhere, the point was made that .net is the future, but I think VB6 will out-last that entire generation of tools, because it’s ‘better’ for what we, in the real world, need to do. Would it be nice to have an updated, supported and entirely code compatible version of VB6, absolutely. Would it be successful, more than I think even MS could imagine. Will they ever do it, absolutely not. Why? I haven’t a clue, it defies logic. Perhaps, like a small child, they just can’t admit they where wrong and have become totally absorbed with trying to prove their right. But, as we all seem to know, they did get it very very wrong.

Wrong assumptions, bad mathematics and pointless examples from others: welcome to the .NET world

Advertisement

Advertisement

As usual, the netties are totally in the ditch! Wrong assumptions, bad mathematics, pointless examples of others they know nothing about (you browsed it on google did you not?) and links that don’t work. I am talking about real code that I write and that works, not google links or other half-baked graphics library from ... whatever. VB6 puts .net graphics to shame on every aspect, performance, capacity, speed, capabilites. Try a bilateral space domain bitmap filter in .net... (oopss no such thing)!

The programming world toppled over with VB6 : finally a top level language with limitless possibilities, so easy to use because of its free form and human like simple syntax, leaving you more time to concentrate on crucial aspects of the programming job at hand. There is a concept that netties just don’t seem to get, and that is : PRODUCTIVITY.

A big share of the real world is about physics, mechanics and mathematics. I am much more interested in doing FFT’s, convolution and correlation on mechanics problems than doing the programming. The language is just a tool to support other mathematical activities. Suddenly with VB6, scientific programming was 5% learning curve/maintenance and a full 95% productivity for problem that matters.

Advertisement

Last 15 years has been a joyride and many people just don’t want out of the band-wagon just now...not ever in fact. Who in his right mind would give up 95% productivity in a painless programming environment where everything works so fine all the time and with an almost unlimited access to low level API’s power? For what?

Face reality : .Net and the Framework are incredibly stuffy, cumbersome, low productivity, painful environnments born out of the symbiosis relationship between a bunch of micro-managing minded, OOP obsessed techies on a binge (techies are, by definition, people that like making things more complex than they really are) and a very ill advised managing class (pun) that let things go this way for too long, backing them.

The point you are not getting is that scientists and engineers have long masterered ALL the programming they really need, we like the 95% productivity of VB6 and we will just not settle for less or anything else for that matter.

Advertisement

Advertisement

It is pretty amazing to see a company spits out on its own creation, which ironically happens to be one of her best ever, and fail, in fifteen years, at making a successor product that competes with it.

A bunch of us, we are just watching from afar a company entangling herself in a web of doubtable OOP concepts and miscelaneous technologies, jumping from XML to AXML, Silverlight to LightSwitch, DAO to ADO, deprecating perfectly good working stuff at will along the way, for the benefit of their next new great idea that will work (or maybe not), due for deprecation anyway. And from a distance, it all looks pretty silly because it is mostly about stuff a scientific productivity programmer (or accountant or just about any other trade) does not want or even care about.

Fact is : circa 2000 had all the best programming tools (namely VB6) on an hardware base technology that remains unchallenged and is not to be for decades to come. If you want it in other words, that means that the low level kernels of Windows have achieved monolithic status for as long as there is a product called Windows. Then on the upper floor, the techies are having a ball, making Windows and .Net an ever harder thing to manage in the name of...how did you say? Something about managed.. and future ... hum there was also something about spaghetti but I lost you there, you were babbling and I have a short attention span for that sort of things...

Advertisement

I do appreciate that there is a whole sector of programming that is of little interest to me, and about which those fore mentionted programming technologies are promising wonders, and I have no problems with that. I say go for it, have a ball.

But in a sane, mature, productivity world, you don’t fix things that are not broken, you do not throw away a winning recipe, you don’t re-invent the wheel when yours is running so smoothly, you don’t invent New Coke nor Windows 8 (or 10) nor .Net, and if you do, salvation only goes through bringing back Classic, or else drown yourself in your new taste nobody likes.

What the VBsixters are telling you is : we want a hammer and a nail, we’ll take care of the rest. Please bring back VB6! Nothing else will do really. Every year spent widens the gap. Run-time will last beyond 2024.

There are limits to what could be done without breaking a lot of things people expect from VB6 now

There are limits to what could be done without breaking a lot of things people expect from VB6 now.

Advertisement

Advertisement

Anything that requires a new runtime will become a disaster for many. People have come to rely on a stable VB6 runtime being preinstalled as part of Windows. That precludes any changes to the set of instrinsic controls, native I/O, and other built in classes and functions.

What could be done includes things like an updated IDE, a new C2.EXE aware of newer CPUs to generate more optimal code, more OCXs containing Unicode as well as ANSI controls, and new OCXs and DLLs that follow the shift from 1998 to now. In many cases all that is needed for the latter are some wrapper-OCXs or even just some typelibs for things already implemented in Windows... and then some more VB-friendly documentation. The main “shifts” I’m referring to include less need for ANSI support, more need for Unicode including UTF-8, prevalence of HTTP and web services, and things like that.

Most of that could be done piecemeal, i.e. they might leave the IDE alone except to add a few compiler options to be passed through to C2 - if even that. Or they might just ship a “libraries add-on pack” with those new OCXs, DLLs, and typelibs.

Advertisement

Any or all of that could be part of a new Service Pack.

More radical changes that actually resulted in a real VB7 (not VFred7) would mean the runtime deployment requirement returns. I don’t really care for that unless it made things that I need possible, and most of what I want or need could be accomplished through that “service pack” approach I already described.

In a UAC/least-privilege world being able to package VB6 programs as “portable apps” using reg-free COM has been important. With a “new VB6" we would lose that because of the new runtime requirement... unless they found a way to make the runtime libraries portable as well.

Advertisement

Advertisement

Hmm...

I might have to take some of that back.

With a new IDE/compiler and C2.EXE pass 2 I suppose they could add to native I/O syntax and even add new Unicode pseudo-intrinsic controls by compiling them as calls into a statically-linked extender library. Then the existing Earth Standard VB6 runtime that is preinstalled in Windows could still be used.

Advertisement

This would bloat compiled programs, but how much depends on how many things they put into the extender library. I suppose that could be an optional DLL though instead.

But that’s still a minor update, not a “new VB6" at all. Call it “VB6.1" maybe?

Standards are just what you use yourself

Advertisement

Advertisement

Standards are just what you use yourself, .NET itself doesn’t have any real standards just like VB6 didn’t have.. As I’ve said before, bad code is all down to the developer, and with that, bad code is also very much in the eye of the beholder.. VB6 doesn’t stand in your way to use actual development standards, but some people are just too lazy to actually use them, those are the same people who won’t use any real standards when they develop in .NET..

Yes, for some stuff you need to ‘hack’ your way around it, but that’s exactly the same with .NET, I’ve had to ‘hack’ my way around certain stuff because the .NET framework (at that time) didn’t support what I needed or did it in a very unlogical way.. Yes it’s nice you can extend you classes and add a lot of attributes, but to me, using those things it’s just another fancier way of ‘hacking your way around stuff’.. I’ve sweared a lot at for instance having to use standard .NET components because they just didn’t do what they were supposed to do, yeah, unless you are a dummy developer who doesn’t actually use it, exactly how you describe VB6 developers (as in NON professional developers)..

And what is exactly spagheti-code, because when I look at a lot of .NET code, to me it also looks a lot like the VB6 code we use (I specifically say ‘we use’ as I have no real clue to how others work with it)..

Advertisement

Also with .NET you have the problem of having to update your code if you want to use the latest additions, and not all companies have the money to keep updating to the latest version of Visual Studio, or the full version so they can use stuff like the complete testing suite. Yes, only now you have a free version which actually is acceptable to use in a professional enviroment (Express editions had too many commercial license problems), but the last 15 years you had to upgrade every 2-3 years if you wanted to use the latest features..

But just like there is still unmanaged C(++) in the latest version of Visual Studio, why not also have an unmanaged (classic) VB...

VB6 is a true RAD: VB.NET is no longer the “Rapid” programming VB6 is

VB6 is a true RAD. VB.NET is no longer the “Rapid” programming VB6 is in 2016. The amount of hoops to jump through, reinventing the wheel, obfuscated code and horrible data methods drive programmers crazy. The problem is the people making the decision never used the programming languages & tools and no deep understanding of “what”, “how” and “why”.
They may believe the marketing and finance people more than the expert users. If Microsoft don’t believe there could be a future for VB6 and no benefit in keeping the tools then there shouldn’t be any problem with selling or gifting it to the community. If your 16 year old car had travelled >200'000 Miles, rust, holes in the dash/carpet/upholstery and you thought it wasn’t worth maintaining then would you mind your 16yr old son from driving it or converting it to a rally car ?? If you want to keep it then look after it, if it’s not worth keeping then give it way or sell it for scrap. That goes for VB6 : If they think the Intellectual Property (IP) is so precious then keep it and update it; if the IP is not precious then MS won’t loose much if they give it away or sell it for cheap. Once it’s opened up or sold then if it has no value then no one else could make a profit from it and MS looses nothing. What is MS afraid of ? Are they scared that people outside of MS are actually better at efficient and creative programming, better at designing user friendly software and better at keeping customers happy ? Microsoft should stop complaining about bad customers hurting MS staff feelings and concentrate more on the wider user base instead of the PR focus group.

Why Microsoft .Net failed... and Visual Basic 6.0 and COM is big stuff in 2016

Microsoft tried, but it couldn’t win the hearts and minds of developers who weren’t already indoctrinated — and it alienated others along the way.

Advertisement

Advertisement

Like many Microsoft “innovations,” .Net was a copy (embrace) and improvement (extend) of someone else’s technology — in this case, Java.

Unfortunately, .Net also cannibalized Microsoft’s most successful corporate IT development environment, Visual Basic.

Visual Basic .Net didn’t have much to recommend it. There wasn’t enough documentation, so you had to learn C# anyhow.

Advertisement

Instead of .Net propping up Windows, the greater Windows ecosystem propped up .Net. People coded to .Net because they were coding for SharePoint or BizTalk. If you delve deep into .Net jobs, you’ll notice they tend to be legacy or related to SharePoint and friends.

Now it’s too late for .Net. As we move from IaaS to PaaS and SaaS, folks are simply unlikely to care about operating systems. If you don’t care about operating systems, why not code as if you don’t care about operating systems and code for the cloud? We’ve seen recently that Azure isn’t lighting the world on fire. Why would we expect that to change?

This results in a downward spiral for ‘Softies hoping that writing to .Net is enough.

A recurring miscalculation: Microsoft has “tried” to ignore the VB6 demographic

We are curious, how many posts need to happen here before Microsoft will act on updating VB6?

Advertisement

Advertisement

Many of us like the idea of simply incorporating VB6 as part of the OS for current and future Windows versions. That may allow MS to save face if that is any kind of road block for them.

Microsoft has “tried” to ignore the VB6 demographic but that is just a recurring miscalculation on their part. VB6 is bigger than any vision they had\have for it. It does not perfectly fit into a senior stock holders pigeon hole. Kinda like trying to squish soap in a shower with your foot. Very illusive. That seems to confuse their decision makers.

I think the Star Trek analogy is 100% accurate. Here is the truth Microsoft: we are not going away! Please align your business model to THAT fact.

Microsoft “evangelists” present the news stuffs as good

I guess should be the time to seriously think about to abandon Microsoft and their moods. I would remember that EACH SINGLE time they release a new technology, they present and SELL IT as the absolute and definitive good solution for ever. While, in the meantime, they constantly show all the weak point of the past technology like if was made from somebody else!
I’ve partecipated to hundreds of workshop from Microsoft and their “evangelist” and ALWAYS they present the news stuffs as good, past stuffs with absolutely BAD even if THEY MADE IT. This happened with RDO and then, after a little while ADO was suddendly the new way to god... Also with IIS happened the same. And now it happen with the SDKs...For who is taking the time to read this post, please consider that from .Net 1.0 to .Net 4, ALWAYS a “porting” was needed! Even if you used .Net... but with the new wrong version! At Microsoft seems they do not care AT ALL about developers.

Advertisement

They seems not to understand that all the above “moods” COST MONEY other than time! Bigger the company bigger the costs. Not all the software company around the world have the resources Microsoft have! I hope those are only “moods”, otherwise that means at Microsoft they do not know what they are doing! At moment, seems that developers are binded with their operating system and if you want to produce YOUR software, you MUST agree with their politics. Take it or leave it. If you don’t agree, you just loose all what you did till that moment! I perfectly understand that the world need to be innovated, but then two considerations came to my mind:

1) I wish to be FREE to decide if I NEED to innovate myself or forced to do it, paying otherwise the penalty to loose my customers or job.
2) If innovation is in terms of software “theology”, structure, OOP etc. and the porting from “the past old bad stuffs and habits” is the “new” .Net way of light, please consider that JAVA it’s like is .Net NOW, but just years and years ago! So if we want to talk about innovation, then it is Microsoft that is LATE about 10 years, not WE as developers. WE JUST BELIEVED TO THEIR ABILITY to provide a working environment to build software. And Visual Basic 6 IT IS EXACTLY THAT. So, if we are talking about “innovation” seems then that all the developers that trusted on Microsoft’s solutions have really used very OLD stuffs, not competitive since the beginning. So, how many of you still believe to continue trusting in Microsoft?

How long this “new and good” .Net technology will remain the same, until the new “porting”, in the name of the “innovation”? We have to still trust about the forecast for the support of this .Net product? What about the mandatory switching to Windows 8 if you want to INVEST into the new latest versione of .Net? How many of your customers will feel comfortable to mandatory switch to Win8 only because you started to use the latest .Net framework? Personally, because of the amount of the products and related code I’ve done in these years I CANNOT AFFORD to “port” it to .Net. Too much complicated. Dot Net is good for “complex” stuffs to do with VB6, but incredibly slow and difficult for basic everydays stuffs. Not to mention the protection of the intellectual property, that with .Net it is simply impossible to really protect. Well.. there are “obfuscators”... good to stop just my grand mother...

Advertisement

Advertisement

That said, if a new Linux Basic SDK appear on the market, I’ll for sure reccomend it to ALL OF MY customers, suggesting to switch to Linux. Probably I’ll do the switching for free then! Incredibly less cost, more performance, more stability, less problems system-wide. If a new “Linux Basic” that REALLY WORKS will be sold for Linux, I’ll go to buy it. 100%. So, who is able to do a compiler, should take this opportunity that Microsoft left open! Whoever will make a Linux Basic, have a market of thousands and thousands of developers, READY TO GO. Those developer, like me, are simply tired to be kept by the neck from Microsoft. We do not switch to other systems simply because there are no good alternatives, or good economic alternatives.
Yet.

Well... if I’m FORCED to INVEST my time and MONEY somewhere else, there is JAVA, that prooved to be made from who have clear idea in mind about software industry and how to respect who kept the company grow. Do you think that Microsoft could sell so many licenses of Windows and Office, if there was not so many developers around the world?

I respect what Mr. Paul Yuknewicz said. Technically speacking, his points are honestly good points, but economically speacking, and in the way Microsoft usually put decisions, it is totally unacceptable. Refactor VB6 is difficult?!!? This maybe means that doing the .Net was easier?

Advertisement

We have no way to force Microsoft having a “GOOD SENSE OF PRACTICE” other than go away and leave them alone.
So, this is a WORLDWIDE CALL to any developers that are able to make a SDK that have the same ability of VB6, but opened to all the suggestions made in this forum, actualize it, make it for mobile applications too, if possible and with the obvious constraints.
BUT running onto a serious platform: LINUX.
That one will be then a “porting” that could make some sense to do... and not blindly still follow the Microsoft “evangelists” (I’m not kidding. They call like that, by themself, at least here in Italy...).

VB6 paradigm is not only the present but also the future

Let’s look at it this way. Ultimately, everything has to run on a machine. Open source? That’s a paradigm not a programming technology. As far as VB6 goes, the syntax is the heart of the matter. As we move into the future I think this paradigm is going to be an absolute necessity. Whatever the future holds as far as programming techs go, I think they’re going to get higher level requiring that there be some intermediate compilation from a high level programming tech to some intermediate state and ultimately down to machine language so it can be executed. We already have that VB6. That’s what it’s all about. So yes - I think that VB6 is going to be with us for a long time. Any successor will be designed according to the VB6 paradigm by necessity. I’m not the biggest Microsoft fan, but I do think that the VB6 paradigm is not only the present but also the future.