VB6.0

Visual Basic 6.0

Let me justify the use of a programming language that was introduced in mid 1998. I am amazed that I have yet to find any programming language or development environment that can rival VB6.0 for its use in the classroom; and it is not for want of trying, I have searched long and hard for modern alternatives.

What is Visual Basic 6.0

Visual Basic 6.0 (or VB6.0) is a RAD (rapid application development tool) that was introduced around 18 years ago. The origins of the BASIC language (Beginners All-purpose Symbolic Instruction Code) go back even further; with a fairly obvious aim of making computer programming accessible to everyone. The Visual Basic line of products built on this by adding a GUI (Graphical User Interface) and Window form designer. Although almost 20 years old it still enjoys strong support from various communities, with recent petitions, requests and articles to bring back an updated version.

Why continue to use it today?

The VB6.0 IDE (Integrated Development Environment) provides the perfect space for developing software. It provides all the features (and often more) of most modern development environments, integrating the features of many development applications into a single space. Even saving the application files is simplicity compared to many other languages. When starting a new VB6.0 program there is no need to add references to libraries, you just start programming on a blank screen. As we proceed I expect all learners to fully understand every word and statement that appears in the code Window – even professional developers could struggle to explain some of the code that either automatically appears or regularly appears in their code window; code for constructing the form (for example) and so on is hidden from the VB6.0 developer. The code is not only colour-coded by the editor but it is syntax checked as it is entered. Context menus appear when you type commands suggesting the command word you are looking for or suggesting the property/method you wish to choose for the object you are currently referencing. There is an online, context sensitive help system providing instant access to a reference of all the commands. The programs run through an interpreter which takes you to the current piece of code that is being executed whenever an error is encountered. Programs can be compiled with a simple menu command, instantly creating an executable file (.exe) for the developer. Although we do not focus too much on developing the HCI, it provides a simple Form editor to do so and is more motivational for pupils than seeing their programming results as a command line only.

Surely other languages are more relevant?

Indeed! They are for professional developers. Microsoft developed the VB line into .NET technologies and leveraged in a large number of professional features. You will not get a job as a VB6.0 developer. However no other programming language has provided such an easy entry into the world programming as VB6.0. I have examined many alternatives, aware of how long-in-the-tooth VB6.0 is, and cannot find anything that meets our educational needs as perfectly as VB6.0…

  • JavaScript
    Is a great language but the syntax can be awkward for beginners as it can be very symbolic. It is also very case-sensitive causing real problems when trying even short pieces of code with pupils. This can detract from the real learning which should be about the programming structures and algorithms. As it is primarily a client-side web language security is paramount and it can be difficult creating general applications with it, for example to provide file access and so on. Also I have yet to find an IDE (Integrated Development Environment) for it that even nearly rivals the functionality and ease of use of VB6.0.
  • Python
    Many schools are now using Python. Its use can involve multiple programs and use of the command line. Creating graphical applications or even a simple GUI can be complex, especially for beginners. I do not like how it is loosely typed (implicit), many programmers overcome declaring of variables by setting initial data to them but it is poor workaround (imho). I have not seen any IDE to rival VB6.0 and consequently debugging, error and syntax checking can all be quite a bit more complex.
  • PHP
    This requires the use of a web server, adding further complexity.
  • HTML5
    HTML5 is a markup language and requires additional languages for creating applications. When combined with CSS and JavaScript it makes a compelling development environment but requires learners to grasp 3 different languages at the same time. We develop HTML and CSS skills separately and introduce JavaScript in the N5 course.
  • Java
  • Microsoft Small Basic
    Great for an introduction but limited for future use.
  • Microsoft Visual Basic for Applications (VBA)
  • Visual Basic 2015 (VB 14.0)
  • Scratch
    This is just too simple and restrictive and pupils start to prefer VB6.0 to Scratch even after just a short time of its use. It is a great environment for introducing programming but learners quickly grow out of it. It lacks many features required for the curriculum of Higher or Advanced Higher.

How do we use VB6.0?

We keep the HCI as simple as possible, often with a single Command Button, sometimes with a Picture Box or List box to provide an output area. The rest of the programming is done in code. We try to develop good practices right from the start including declaring variables (option explicit) and learning about data types. Graphical output is simple and rewarding for the pupils and VB6.0 easily copes with the demands of all our courses up to Advanced Higher level where we introduce OOP (Object Oriented Programming practices and concepts). Inputting and Outputting data from files is pretty straight forward. Some of our initial projects are games involving some additional objects on the screen, however where possible the screen is kept as simple as possible.

Suggestions

If you can suggest or recommend any modern alternatives to to VB6.0 then I would love to hear from you. Perhaps you can address some of the concerns I have with the programming languages listed here (for example I know there are many advocates for Python out there) or suggest new ones. Please get in touch with me!
Send me a message