Before Visual Basic There Was BASIC
When Bill Gates and Paul Allen founded Micro-Soft (later becoming Microsoft) back in 1975, their initial software product had been Altair BASIC. BASIC was the acronym for Beginner’s All-purpose Symbolic Instruction Code aimed at expanding the reach of computer programming. Monte Davidoff was also involved with development, in particular with floating point arithmetic. It was designed for the Altair 8800 using an Intel 8080 processor made by MITS (Micro Instrumentation & Telemetry Systems) based in Albuquerque, New Mexico, USA.
The original Altair BASIC was released on a punched tape and an agreement was made with MITS to distribute the interpreter after a successful demonstration. By the end of the 1970s, additional releases had been created and distributed by cassette tape for other platforms such as those that used the MOS 6502 microprocessor.
Microsoft found commercial success with BASIC until 1981 when the IBM PC first became available. The focus then began to shift to developing an operating system known as DOS (Disk Operating System), although an agreement was made with IBM to include BASIC onto ROM chips in their PCs throughout the decade. Licensed from Microsoft, IBM released four different variations of Microsoft BASIC for their PC and PCjr computers, one of them known as BASICA (Advanced BASIC) that relied on the ROM chip.
MS-DOS versions released during the 1980s typically came with GW-BASIC, that was derived from BASICA. GW-BASIC could run without the ROM chip and use disk drives, which initially with Compaq gave way for IBM PC compatibles to access BASIC.
By 1991, MS-DOS 5.0 came about bringing major changes to the operating system that also included replacing GW-BASIC with QBASIC. QBASIC stemmed off QuickBasic, a product that was sold separately. One of the primary differences was that QBASIC was only an interpreter, meaning that you’d run a BASIC program by opening its source file. QuickBasic not only could do this, but also allowed these sources files to be compiled into executable files.
Rewind back to the late 1980s however and an individual not yet known to Microsoft would unknowingly become one of the forefathers to the yet to be released Visual Basic, Alan Cooper.
Alan Cooper & Ruby
Alan Cooper from California originally studied architecture though a career with software had eventuated instead. Microsoft at the time released their first version of Windows and this took Alan’s interest not only due to having a fully-fledge graphical user interface but in particular the use of dynamic link libraries (DLLs). Nevertheless, he felt that the Windows shell and MS-DOS Shell application were poor in useability.
Initially Alan began the ‘Tripod’ project, with the objective to develop a better shell than what Windows had. It occurred to him however that locking down a single shell wouldn’t necessarily work for users with various degrees of skill levels and requirements. The idea that came about was to have a shell construction set where a user could customise their own shell to their liking. How it was designed was that there would be a palette comprising of various controls such as buttons, and these would be placed on a form. Metaphorically speaking, it was akin to the idea of having a paint palette with different colours and a sheet of canvas to paint on.
A couple of months had passed and a working prototype was available. As he had done in the past, Alan attempted to show his program to various publishers in order to sell it. It didn’t gain any traction until the prototype was shown to Bill Gates in March 1988. Bill saw potential with Tripod and although it wasn’t immediate a deal finally came to fruition. As the name Tripod had much exposure, it was decided on that in future it would be named ‘Ruby’.
Alan put together a team (Mark Merker, Gary Kratkin, Mike Geary, and Frank Raab) and developed Ruby from the ground up. It wasn’t until early 1990 when a release quality version of the product was ready. Microsoft were to release Windows 3.0 later that year.
As part of the agreement that was in place, Microsoft was to have exclusive rights for Ruby. Alan and his team developed Ruby with its own language within for creating a shell program and with the intention that it would be shipped with Windows 3.0. Microsoft had other ideas by stripping out their language with QuickBasic and using the shell that resembled OS/2, an operating system that initially was a joint venture with IBM.
At first, Alan was frustrated with Microsoft’s decision though warmed up to the idea after seeing the potential with partnering up with QuickBasic. Microsoft named the project ‘Thunder’ and by May 1991 Visual Basic 1.0 for Windows was finally announced at the Windows World ’91 trade show in Atlanta, Georgia, USA.
In the below sections, I’ll briefly go over each version up until the introduction of .NET.
Visual Basic 1.0 for Windows (1991)
Original RRP: $199 US
Minimum System Requirements: 286 processor, 1 MB RAM, 10 MB disk space, CGA graphics, MS-DOS 3.1, and Windows 3.0.
Designed specifically for Windows 3.0, VB 1.0 didn’t really grab attention in the professional market although it stroke an interest with those that were a hobbyist or wrote shareware programs. The attraction was using drag-and-drop to develop the program’s interface, a lot simpler to implement than working out the functions for a windowing system using the C language.
VB 1.0 was released on both 5¼” and 3½” 720 KB floppy disks with three disks in total. Installing VB itself however only required one of those with the other disks for sample code and an icon set. Compared to other Microsoft products, the Setup program was very primitive.
Upon opening up VB 1.0, the application is relatively simple with only a small handful of tools available. Although adding a menu to your application was easy enough, adding a toolbar wasn’t as straightforward. In the sample program IconWorks for example, the ‘toolbar’ on the left hand side is sourced from a bitmap image file. Nevertheless while VB 1.0 certainly had its limitations, if someone wanted to create a simple game or application it was sufficient enough.
Scanned image of VB 1.0’s retail box (front). Click on the image.
Scanned image of VB 1.0’s retail box (back). Click on the image.
Visual Basic 1.0 for MS-DOS (1992)
Traditionally in the early 1990s software products would typically have their origins beginning with DOS, and later eventuate to becoming a Windows 3.x based product. VB 1.0 for MS-DOS didn’t fit the mould and was released the following year from the initial Windows version.
This oddball release became available in both Standard and Professional editions, and would never see later versions targeting DOS. Microsoft announced it as the direct replacement for QuickBasic, though ultimately preferred users to transition to Windows programming and this may have been a way to entice that.
Programs developed using VB for MS-DOS were not compatible with VB 1.0 for Windows. Interestingly enough, the same programs could be converted to Windows applications using VB 2.0 for Windows released a few months later with a few quirks, though not vice versa. A support article KB120075 discusses the conversion process.
Although programs written in VB for MS-DOS appeared graphical in nature, the programs were instead in text mode using an extended character set.
Whilst investigating the difference between the DOS and Windows versions, and between Standard and Professional editions I came across an ancient newsgroup post by Kris Nosack from 1994 that sums it up better than I could.
The difference between VB for Windows (VB/Win) and DOS (VBDOS) he described as:
“VB/Win gives you the capability of creating applications which run in Windows, while VBDOS gives you the ability to develop apps which do not need Windows to run and run in text mode using the extended character set to give the user the feeling of a graphical environment, while still remaining in a text mode.
VB/Win applications are compiled into a pseudo-code (p-code) file with an “EXE” extension. When run, the p-code file accesses a run-time Dynamic Linked Library (DLL)(VBRUNx00.DLL) which interprets the p-code into Windows(tm) Aplication Programming Interface (API) instructions. VB/Win cannot create a stand-alone application (i.e. an executable which does not need the VBRUNx00.DLL.). Currently, applications developed using a particular version of VB/Win requires the same version of the run-time DLL. Therefore, a VB application developed in VB/Win version 3.0 will only work if the run-time DLL VBRUN300.DLL is installed in either the WINDOWS or SYSTEM directories.
VBDOS can create both types of applications. Those that require a run-time module, or those that are a stand-alone .exe file. In addition to being able to use the standard run-time modules, VBDOS Professional allows the creation of custom run-time modules. (A feature which VB/Win does not support.)”
Later in his post he explained the difference in the editions. Reading what the additional features were in the Professional edition, I could see why it came on seven 3½” floppy disks compared to two for the Standard edition.
“Both version of VBDOS load and run all existing QBasic and QuickBasic programs. With little or no effort, your QBasic and QuickBasic programs can use the compiler in Visual Basic for MSDOS to take advantage of optimized code generation and greater string capacity. The professional edition has the capability of loading and running Basic PDS programs designed for MS-DOS.
Help toolkit create on-line help
Setup toolkit create distribution disks
CodeView debugger version 4.02
Financial toolkit functions from Microsoft Excel
Present. graphics kit make charts and graphs
Matrix math toolkit matrix operations
Create custom controls requires MS MASM
Create custom RTMs Put your modules into RTM
Microsoft mouse driver version 8.2a
(NOTE: RTM = Runtime Module)”
Visual Basic 2.0 (1992)
Original RRP: $199 US (Standard); $495 US (Professional)
Minimum System Requirements: 286 processor, 1 MB RAM, 13-30 MB disk space, EGA graphics, and Windows 3.0.
VB 2.0 released late in 1992 after the MS-DOS version, was a significant update to VB 1.0 in functionality that was well received by the media. The approach of having a Standard and Professional edition of VB for MS-DOS resonated, and so VB 2.0 offered the same for the first time on Windows. Standard comprised of three 3½” floppy disks, and Professional with six.
Some of the notable changes in VB 2.0 was the introduction of the toolbar, ability to create MDI (multiple document interface) programs, ODBC (Open Database Connectivity) for programs to access databases, and general performance improvements. MDI gave the introduction of having support for parent and child windows, where the parent was the program itself and the child window typically being the opened documents. I wouldn’t be surprised if the functionality of having MDI and ODBC stroke an interest with professionals to develop productivity and database programs that contribute to this release being more successful.
Maybe because it was 1992 and Microsoft decided to standardise their setup programs with a gradient blue background, this was noticeable compared to the previous version.
If one had the Professional Edition, options abound as part of the custom installation.
In Standard edition, you still get the same Icon Library and Learning Visual Basic tutorial, though less sample applications and a slighter smaller application for VB itself. A slight inconsistency with the wording along the top of the custom install dialog box oddly enough.
The following two screenshots shows a comparison between Standard and Professional upon starting up the application. Both editions provide more controls than VB 1.0 such as for drawing up shapes and creating a grid for data in a similar manner to spreadsheets. However side-by-side it’s noticeable the extra controls available in Professional.
Without going through each one, some of the controls available include being able to produce graphs, utilise progress/status gauges, and a communications control for creating programs that can access your modem.
You may have noticed the additional VBX files under Professional. These are associated to the additional controls made available in this edition. VBX (Visual Basic Extension, also known as a custom control) allowed for easy implementation of additional controls that could be developed by third-parties. VBX files could simply be loaded up with VB and could be utilise by any program that was being developed. Given the increased popularity when VB 2.0 was released this generated an influx of third-party controls that could be purchased.
I don’t have the original packaging for VB 2.0 however in VB 3.0 a brochure was included that advertised the controls that were available by various vendors to promote the flexibility and capability of Visual Basic.
Although both editions had the Introducing Visual Basic tutorial, the Professional edition also included the Visual Design Guide. The Visual Design Guide was to inform programmers on what Microsoft perceived as best practise for user interface design. The point of it was to encourage standardisation of menus, toolbars, and other user interface elements regardless of who the developer was with the aim that end users would be able to use various programs with relative ease.
One such example could be how a file is opened. Regardless of whether you are using Word, Excel, or WordPerfect to open a file, it would be to choose Open under the File menu, or by pressing the shortcut key Ctrl+O.
Below is a sample providing details on how a Windows 3.x toolbar should appear from the Visual Design Guide. The guide also had been included with VB 3.0 Professional.
Visual Basic 3.0 (1993)
Original RRP: $199 US (Standard); $495 US (Professional)
Minimum System Requirements: 286 processor, 2 MB RAM (4 MB RAM recommended for Professional), EGA graphics, and Windows 3.0.
It wasn’t even a year since the release of VB 2.0 that VB 3.0 had become available. The last of the pure 16-bit releases, it was apparently the most successful compared to the previous, and the most popular version for Windows 3.x development.
While VB 2.0 introduced OLE (Object Linking & Embedding), VB 3.0 enhanced that by providing OLE 2.0. In essence for example, this allowed you to have a document typed up in Word, and insert a chart that was sourced from an Excel spreadsheet. You were then able to modify the chart via Word if need be as though you were using Excel directly. OLE 2.0 enhanced the original by incorporating Component Object Model (COM), drag-and-drop functionality and structured storage.
Other features included the introduction of Jet Database Engine that allowed a VB program to read and write to an Access 1.x, FoxPro, Paradox, or a dBASE database, and Crystal Reports.
Like the previous Standard edition VB 3.0 also comprised of three 3½” floppy disks, though Professional had expanded to nine. Below is what comes up during installation for both editions. The Microsoft Office Developer’s Kit was also included with Professional on CD. This allowed VB programs to utilise functionality from Office applications via the use of objects.
Apart from shuffling more disks around for Professional, it does ask whether you wish to install Oracle or SQL Server drivers for ODBC.
Loading up VB 3.0 Standard, it looks at face value very similar to 2.0 Standard. Noticeable differences is the update to OLE and the addition of the Common Dialog control.
VB 3.0 Professional included an Outline and Crystal Reports control. The Outline control allows to have a list shown on the form with folders that can expand and collapse with items beneath them. This resembles with help files from the Windows 95 to 2000 era where each subject was a ‘book’, and pages were underneath relevant to the subject.
There had been some reports though that the Outline control would cause issues for those running above 256-colour depth using certain video card drivers.
Both editions came with some extras such as Data Manager. For those that were creating database programs, one could use an existing database or design one that the program would access to. Although it was possible to use several database formats such as FoxPro and dBASE, only Access 1.x MDB databases could be created.
Scanned image of VB 3.0 Standard’s retail box (front). Click on the image.
Scanned image of VB 3.0 Standard’s retail box (back). Click on the image.
Scanned image of VB 3.0 Professional’s retail box (front). Click on the image.
Scanned image of VB 3.0 Professional’s retail box (back). Click on the image.
Visual Basic 4.0 (1995)
Original RRP: $99 US (Standard); $499 US (Professional); $999 US (Enterprise)
Minimum System Requirements: 386DX processor (486 recommended), 6 MB RAM on Windows 3.1 or 95 otherwise 16 MB RAM on Windows NT, 20-70 MB disk space, VGA graphics, Windows 3.1 with minimum of MS-DOS 5.0, Windows 95, or Windows NT 3.51.
Released at the same time as Windows 95 and two years after VB 3.0, VB 4.0 brought about many changes. Support was dropped for Windows 3.0 and you now needed as a bare minimum a computer with a 386 processor. The only release to concurrently come with a 16-bit and 32-bit version, this was a time of transition and allowed programmers to gradually change over to Windows 95 development. Microsoft placed further emphasis on utilising OLE 2.0, and OLE DLLs components could now be created to support automation although only in the 32-bit version. VBX files used in prior VB releases for controls had also been replaced with OCX (OLE Control Extension) that allowed for OLE 2.0 components to be shared amongst programs. This release also allowed a user to have multiple instances of VB running concurrently and provided context menus on objects with the right-click of the mouse.
On top of the existing Standard and Professional editions, VB 4.0 was also released as an Enterprise edition for the first time. Standard and Professional for the most part carried over a similar feature set as the equivalent editions in VB 3.0. Standard still had the Jet Database Engine for accessing local databases, though only was available as a 32-bit version. Due to the much higher licensing costs for the other editions, I suspect this contributed to VB 4.0 having limited exposure on Windows 3.x machines, and users would simply stick to using VB 3.0 for 16-bit development.
Professional again included ODBC support for connecting to server-based databases, the Microsoft Office Developer’s Kit, and a variation of Crystal Reports. Enterprise came with all of the above though included remote OLE automation and Microsoft SourceSafe’s product. SourceSafe was a fairly obscure application to manage changes occurred during software development over multiple users.
Not having a copy of VB 4.0 Standard, the following screenshots are mostly from the Professional edition.
Installation on Windows 3.1 was noticeably different to earlier releases as shown below. It was consistent to most of the later Windows 3.1 applications Microsoft released such as Office 4.x, Project 4.0, and Publisher 2.0. Installing VB 4.0 also required a restart, which earlier releases didn’t need.
In the installation options show above, very little was different with the Enterprise edition. Installing Enterprise would just have another option here called Enterprise Options for a total of 3 MB, and include the following sub-options; Remote Automation, Component Manager, and Remote Automation Sample Applications.
VB 4.0 was given a general refresh with the user interface that reflected the influence of Windows 95 at the time. Flat colour toolbars, grey backgrounds, and tabs both in VB itself and for use in development were obvious changes. The icon shown in Program Manager was also changed for the first time removing the grey horizontal lines that were common in early Windows 3.x applications by Microsoft.
Next is VB 4.0 again under Windows 95, now offering the 32-bit version.
The blue gradient background that was standard for later 16-bit Microsoft applications had now been changed to turquoise green.
The 32-bit version of the Professional edition would take an additional 15 MB for installation. VB itself was only a couple of meg larger, though the extra space was primarily for a larger icon library and additional sample applications.
Once fired up you’ll notice there’s a few (9 in fact) additional controls available. Some of these include being able to utilise rich text box (RTF) fields, sliders, and can finally easily create your own toolbars.
The MSCOMM control used with modems became a custom control as I noticed it was no longer in the toolbox as it was in VB 2.0 and 3.0. The 32-bit version has more available however both versions provide a substantial increase in available controls compared to earlier releases especially concerning multimedia.
I had a floppy disk version of the Enterprise edition which worked faultlessly under a Windows 3.1 virtual machine, however on Windows 95 I’d receive an ‘initialisation error’ reading the second disk. Originally I thought something was wrong with the CAB file, however it was discovered that VB 4.0 has a few quirks in order to install it. There wasn’t an obvious explanation for it, and so I decided to skip following the KB150614 document to install manually.
Visual Basic 5.0 (1997)
Original RRP: $99 US (Learning); $499 US (Professional); $1,199 US (Enterprise)
Minimum System Requirements: 486DX/2 66 processor (Pentium recommended), 8-32 MB RAM, 25-345 MB disk space, VGA graphics, Windows 95 or Windows NT 3.51 with SP5.
Released in February 1997, it was a time when Windows 95 had matured, Windows NT 4.0 had just been released months prior, and Windows 3.1 was gradually losing relevancy. VB 5.0 therefore was the beginning of the end for 16-bit software development.
Like VB 4.0 there was also three editions available to purchase, though for some reason the Standard edition was replaced with one named Learning.
There was actually another named Control Creation Edition (CCE) that Microsoft released for free though it was limited to only being able to create ActiveX controls, not to compile your own standalone executable programs. Installation of CCE is similar to a Windows service pack where there’s not much to look at. In CCE itself I noticed Visual Design Manager under the Add-Ins menu was completely disabled, and although Reports Designer was selectable it would complain there’s a missing EXE file to load Crystal Reports. In theory, you could still create your own Windows programs and compile it elsewhere where a greater edition was installed which somewhat reminded me of comparing QBASIC and QuickBasic.
Microsoft had also released Visual Studio 97 the first release in the Visual Studio product line that incorporated multiple languages, where VB 5.0 had been included.
With VB 5.0 you were able to import VB 4.0 16-bit developed programs, and also save projects into VB 4.0 format for easier compatibility.
With mention to ActiveX earlier, this was one of the major new features of VB 5.0 that allowed creation of controls that could be used with Microsoft Office applications and web sites although Internet Explorer was all that it really supported.
Installation naturally was straight-forward, though I noticed the optional graphics components (i.e. icon sets) is off by default. Nevertheless, disk space requirements of around 133 MB was practically double that of VB 4.0 Professional. VB 5.0 also introduced the use of wizards as shown in the options as well.
Unlike previous versions of VB where upon start-up there would be a blank form to begin from, VB 5.0 introduced a dialog box as below requesting the type of project you wish to create, or alternatively open up an existing project.
After selecting Standard EXE, you’re presented with the following screen. The integrated development environment (IDE) was revamped with a similar interface as Office 97 to an extent, and the windows such as Project and Properties were fixed to the right-hand side of the screen. These windows however could be repositioned to each side of the application or made into separate windows again.
Also noticeable was that the blank form was in it’s own project window, to allow multiple projects to be worked on at the same time. Then there’s the Form Layout window, which was to give an indication of how the form would appear on screen at different screen resolutions.
Visual Basic 6.0 (1998)
Original RRP: $? US (Learning); $549 US (Professional); $1,299 US (Enterprise)
Minimum System Requirements: Pentium processor (Pentium 90+ recommended), 24 MB RAM for Windows 95 or 32 MB for Windows NT (48 MB recommended), 76-200 MB disk space, VGA graphics (SVGA recommended), Windows 95 or Windows NT 4.0 with SP3.
Ultimately this version became the most popular, and considered by VB enthusiasts to be the last “true” release of VB before Microsoft decided to move onto the .NET framework for software development. Traditionally VB was always focussed on Windows as the platform to develop software. .NET was Microsoft’s answer if Windows was to lose dominance as an operating system by having cross-platform capability.
Microsoft only fully ended support for VB 6.0 in March 2008, a whole 10 years later from release. Nevertheless applications developed from this version have the ability to work natively all the way up to Windows 10, although it relies on using the WoW64 subsystem on 64-bit Windows to run 32-bit applications. The second release of Visual Studio, named Visual Studio 6.0, also included VB 6.0.
VB 6.0 incorporated a number of new features that assisted with database and web client-server development. Since VB 3.0 Crystal Reports has been included, though in this version it isn’t installed by default. Instead it was replaced with Microsoft’s own Data Report Designer.
At the beginning of installation a wizard-like dialog box comes up to confirm the license agreement and your product key.
Shortly afterwards, the actual Setup program is displayed looking visually the same as installing the 32-bit version of VB 4.0. The available installation options has been further consolidated by having further secondary options. Whereas in VB 5.0 Setup for example had Wizards and Templates as a primary option for installation, it now falls under the main Microsoft Visual Basic 6.0 option when selecting Change Option.
Once installation commences it changes to having a white background, with Microsoft attempting to convince you that you’d have been better off purchasing Visual Studio. Who cares about the new features in VB 6.0!
Setup reverts back to turquoise green when it’s complete prompting to restart Windows. Once Windows restarts, Setup comes back up to confirm if you wish to install MSDN documentation and server components.
Launching VB 6.0 you are presented with a choice of projects to create similar to the previous version albeit with some more options.
Side-by-side to VB 5.0, the IDE looks almost identical thus used the About dialog box to prove it. There are a couple of additional features on the toolbar concerning data.
Using Data View provides easier configuration to connect to your data sources for use in your application.
Additionally there is also the Visual Component Manager by creating your own repository of the various forms, controls, and documentation for your project.
While Visual Basic has arguably declined in popularity in more recent years, it’s left a legacy for Windows programming. Using standardised controls and drag-and-drop functionality for designing your application’s interface has resonated with more modern IDEs. It also gave the opportunity for amateur and casual programmers to step-up from BASIC to create more substantial applications.
If you read this far, I hope your enjoyed the walkthrough of the early days with Visual Basic.