News: 1620303304

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

You've been a good developer all year. You have social distanced, you have helped your mum. Your reward? The return of Visual Basic 6

(2021/05/06)


The beast is back... almost. A "100 per cent compatible Visual Basic 6 solution" has been promised to the backers of a [1]Kickstarter . There is, however, no word on how much it would cost to ensure it stayed dead.

Visual Basic 6 was the last hurrah in a succession of languages first introduced in 1991 and seemingly killed off once and for all in 2008 (a decade after Visual Basic 6 first shipped in a hefty cardboard box.)

Although devs may sniff at the old thing nowadays, a good many IT professionals owe their start in the computing world to the Rapid Application Development world of Visual Basic. While Visual Basic 1 and 2 could be filed in the novelty drawer (this hack has a particular fondness for 1992's Visual Basic for DOS) it was Visual Basic 3 and its bundled Jet database engine that captured corporate imaginations.

[2]

[3]

[4]

The language improved with Visual Basic 4, even if the ditching of .VBX controls in favour of the OLE world of OCX and ActiveX meant for some serious installation headaches thanks mainly to versioning pain. Visual Basic 4 also introduced a 32-bit version and non-GUI classes. Visual Basic 5 ditched the 16-bit edition, sped things up, and finally added the ability to create custom user controls.

[5]Y2K bug lurking in Microsoft VB, Access

[6]Windows, the next generation – Ballmer on NGWS on The Reg, in 2000

[7]25 years of Delphi and no Oracle in sight: Not a Visual Basic killer but hard to kill

[8].NET 6 preview 2: Microsoft confirms no visual designer for WinUI 3.0 at launch

Visual Basic 6 was arguably the peak before it all went downhill for the language at Microsoft, beginning with the slapping of a .NET suffix on anything that caught the corporate eye.

However, ream upon ream of legacy VB6 code still exists within the enterprise, and the language remains in use despite [9]Microsoft pulling the plug more than a decade ago . While alternatives exist (and several turned to the likes of Delphi during the lifetime of Visual Basic) the old warhorse is occasionally missed by those with rose-tinted spectacles.

The project

Including the backers of RAD Basic (see [10]here on Kickstarter ), which makes the boast "Bring your VB projects to 21th [sic] century with 64 bit support."

The brainchild of Carles Royan, whose profile lays claim to 15 years of software development experience (and so arguably missed the golden days of the language), the project aims to be "the true VB7 that never existed."

The plan is to initially allow four types of projects – a standard EXE, an ActiveX EXE, ActiveX DLL and ActiveX Control. The IDE and compiler are to be 100 per cent compatible with the Visual Basic 6 of old, and both compiler and runtime libraries are to be open source. Noting the distress with which the forced transition to VB.NET was received, Royan says "Open sourcing the core guarantees the development will not be ceased or redirected to incompatible ways."

We're not entirely sure that's true, but developing in the open should at least avoid any unpleasant surprises.

[11]

It's an ambitious project, although when one considers how, er, basic the Visual Basic 6 environment really was when compared to the epic IDEs of today, perhaps not impossible.

Royan - who has raised €17,096 out of a target of €60,000 so far - is seeking to elevate the work from a side project via a Kickstarter and it would be churlish not to wish him luck, although the usual health warnings around dropping real money on a crowd-funded project still apply.

Firing up Visual Basic 6 now (and yes, it still works, even in Windows 10 – Microsoft just loves backwards compatibility) feels like stepping back into a different time, although we're not completely sure we really want to go back to those days.

[12]

As the saying goes "the past is foreign country: they do things differently there." In this case we'd suggest ending off the phrase with ... "and seeing the word 'ActiveX' made a bit of sick come up." ®

Get our [13]Tech Resources



[1] https://www.kickstarter.com/projects/koss3982/rad-basic-a-100-compatible-visual-basic-6-solution/description

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YJQSmiKNRWwCCuoP-XJj3QAAAAY&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YJQSmiKNRWwCCuoP-XJj3QAAAAY&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YJQSmiKNRWwCCuoP-XJj3QAAAAY&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[5] http://www.theregister.com/2000/01/07/y2k_bug_lurking_in_microsoft/

[6] http://www.theregister.com/2000/02/16/windows_the_next_generation_ballmer/

[7] http://www.theregister.com/2020/02/14/25_years_delphi_programming/

[8] http://www.theregister.com/2021/03/15/dotnet_6_preview_2/

[9] https://www.theregister.com/2017/02/02/our_strategy_for_visual_basic_has_shifted_microsoft_to_focus_on_core_scenarios/

[10] https://www.kickstarter.com/projects/koss3982/rad-basic-a-100-compatible-visual-basic-6-solution

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YJQSmiKNRWwCCuoP-XJj3QAAAAY&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YJQSmiKNRWwCCuoP-XJj3QAAAAY&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[13] https://whitepapers.theregister.com/

iron

No no no no no no no NO!

VB was shit then, it will be even more shit now.

Many moons ago, I wrote the same program in VB3 and Delphi as a comparison. The Delphi version was orders of magnitude faster on the same PC.

richardcox13

VB5 and 6 did keep me busy for several years. By writing C++ to get around VB's very restricted subset of COM and using the much more powerful debugger to debug things that the VB6 debugger couldn't help with.

One of the latter cases was the first bug I used the internet to help solve... using Lynx (no GUI browser for me!) to find the offset of the reference count in VB6 UI components.

And thus work out which set of components were stuck with circular references (app worked fine in the VB6 IDE, but the built version would crash on exit every time).

AMBxx

The right tool for the right job. Look how hard 'codeless' development keeps being pushed. VB wasn't that far off the mark, just plumb all the events and off you go.

For small applications fronting a simple database it was ideal.

The problem was when people tried to write stuff that should have been considered beyond the scope of VB.

TeeCee

The problem was when people tried to write stuff that should have been considered beyond the scope of...

You can stick just about any language on the end of that. I'll kick off with C, COBOL and Java as obvious ones.

Binraider

I think I'd far rather support Francois Lionet's AMOS2 project...

I liked VB5/VB6

heyrick

It made it easy to write software on what was, to me, a completely alien system. It wasn't perfect, certainly [*], but it did the job with the minimum of fuss.

* - I've never met a mainstream language before or after that didn't have any support for binary shifts. Extracting data from a bitmap using integer division and rebuilding the bitmap using multiplication was tedious and painful.

Re: I liked VB5/VB6

Disgusted Of Tunbridge Wells

I got started on it. It was so easy to make GUI applications that you could draw the GUI, add some code behind the buttons and you've got a program in like five minutes. Press F5 (?) and you're running.

That you could make real programs that looked like real modern programs was important. The alternatives, such as Python, were (without substantial learning) CLI only interfaces meant that they felt old fashioned.

It was so easy to get started with that I remember at first I didn't know what a variable was so I was using hidden text boxes as "variables". With that level of ineptness, i was still able to produce things that worked with a little bit of help from Google ( or was it Ask Jeeves? or Yahoo or something?)

Yes, ew, but that's how flat the learning curve was with it.

I was later less impressed when I came back to it and found that you can't do if ( variable_containing_boolean_true ) { stuff } - because true equated to 0 or -1, or something. Why?

Re: I liked VB5/VB6

Disgusted Of Tunbridge Wells

PS, for anybody wondering, as far as I remember you had to do:

if ( variable_bool_true = true ) { stuff }

So I think that if (true){ stuff() } would not run stuff(). But if (true=true){ stuff() } would

( a depressingly long time ago, so this might all be bollocks )

The Insuranator

I still use QuickBasic 4.5. I'll get my coat.

Potemkine!

Since when VB is in any way related to development or programming?

Potemkine!

People using VB are developers as people using smartphones are digital experts.

My-Handle

As an (unwilling) VB developer, I resent that comment. Even though it may be true.

Petzold

captain veg

Learned Pascal and C at (what is now a) uni, but first job was in Pick shop, so back to BASIC. I tried to make my code as Pascal-like as I could, which bemused my colleagues.

The PC revolution happened and I got a gig writing DOS programs. In C, natch, with some assembler. And then Windows took off. Like everyone else I acquired a copy of Charles Petzold's "Programming Windows" and was horrified to learn that simply putting the words "Hello, world" on the screen required 80 lines of code. That's why VB took off. Not because of BASIC, but the Visual part. You could put the words "Hello, world" on screen without writing a single line of code. The language itself was slow and pretty clunky, but you could still write the serious stuff in C and compile to a DLL and call that.

The BASIC part got better over time, swallowing a lot of Pascal along the way and a little bit of Java. By the end, you hardly ever needed to code anything in C unless you were doing *very* low level stuff. All it really lacked was proper inheritance, strongly typed generics and the option to base collections at index zero instead of one. But instead they gave us the almost completely incompatible VB.NOT, so we switched to C# and, later, JavaScript.

I've still got quite a lot of old code to maintain. Firing up the IDE is certainly a trip down memory lane, but it takes hardly any time to get back into the swing of it. There's precious little code-completion, and I miss the ability to just magic up an object without having to add a tedious boilerplate class definition -- in its very own source file -- but it's still perfectly usable. Even under Wine on Linux.

Being able to target 64-bit platforms would be nice, but for new projects, no, I don't thinks so. When VB was king there was nothing like it for quickly knocking up a GUI. Now there's plenty of choice, and you don't have to fight the limitations of BASIC. Had something like this been around in 2002 it might have been a different matter. Right now, I don't see much point.

-A.

Version 1.0

I'd been coding for years and when VB appeared I thought it was horrible but I then discovered that if you are trying to demonstrate various functions to PhD's with expertise in non-coding areas of life, then VB code samples worked 100% all the time.

I expect we'll see lots of "BASIC sucks" comments but move into the future and every comment we see will be applied to today's languages - saying that a coding method sucks tells everyone a lot more about the commenter than the language.

Ken Rennoldson

Nuke it from orbit, it's the only way to be sure...

Why not bring back REXX too!

Plest

Way back in 1995 I used Visual Basic for MSDOS to write a load of Ops utilities to automate and manage the overnight jobs I had to look after on the graveyard shift I worked. I loved VB-DOS as it was perfect for the DOS workhorse machines we had that didn't have Win31 installed. This was way before PowerShell was even a glint in Microsoft's eye.

I have a fondness for VB the language but only nostalgia, it simply doesn't cut it given modern multi-threaded languages like Rust,Golang, Python even C#, plus langs like C++ are still going very strong. Leave VB in the past along with all those VB books we all bought and we should move on.

Re: Why not bring back REXX too!

Disgusted Of Tunbridge Wells

I'm sure that VB6 had multithreading. Not that I disagree with the rest of your post.

OK...

I code for the bacon

Now young people will have the opportunity to live themselves the glory of the old days of "Invalid Property Value" or "On Error Resume Next"... Lovely.

Re: OK...

Disgusted Of Tunbridge Wells

On Error Resume Next

What do you mean? That was brilliant....

It meant the terrible, awful code I wrote at 14 would work (for varying definitions of the word "work")

Re: OK...

alansingfield

(Shudder)

Brings back nightmares of being in the basement of a customer site, standing at the server rack debugging on a locked-down WinNT DEC Alpha through a crappy 640x480 KVM with a crusty trackball.

Some of VB6's greatest hits:

Method '~' of object '~' failed

Binary Compatibility DLLs

REGSVR32

HKEY_CLASSES_ROOT, CLSID and InprocServer32

You've never lived :-)

Digital reenactment

ComputerSays_noAbsolutelyNo

Many people, myself included, like to don medieval-ish attire and congregate at castles and markets with the like-minded.

So, why not bring the hobby of reenactment into the digital age?

In real life, I am an app developer for Android;

but in my spare time, I am a VB6 developer.

Visual Basic

Boris the Cockroach

I'd rather nail my own head to a table than go there again.

But then I'm biased because I used dephi

It wasn't the only tool...

Red Ted

...but it was a useful one for doing a particular job, such as quickly knocking up a UI for the embedded systems I was developing.

Unfortunately when the only tool you have is a hammer, all problems look like nails and so it got used for everything far beyond its means.

It's inability to do bit manipulation and the utterly awful serial interface control added to the challenge!

karlkarl

What always made me shudder wasn't the VB6... it was the crusty ancient C++ code behind the VB6 VM and all the tooling.

There was a lot of infrastructure there just to drag a button onto a visual form. The script interpreter is all behind closed doors, who knows what madness lies behind it (and still in Microsoft Office as VBA).

I still can't decide if Microsoft were better developers back in the early 90's or if they are better now. Either way, I do not want to be near the code of one of their projects of this maginitude.

Unfortunately we have run out of bits/bytes/whatever. Don't worry, the next supply will be coming next week.