Introduction to Programming Languages



One question I hear from introductory students "What the heck is Visual Basic?"

The simple answer is Visual Basic is a programming language.

The next logical question I hear is "What the heck is a programming language?"

The slightly less simple answer is a programming language is a set of instructions (or words or commands or statements) to tell (or instruct) some sort of hardware what to do. In the case of a computer programming language, Visual Basic is a language to tell a computer what to do.

Does the hardware have to be computer hardware, you ask? Not at all...it could be automobile hardware, cellular phone hardware, microwave oven hardware or even robotic vacuum cleaner hardware. Any device which contains a microprocessor chip can (and will) have computer programs written for it.

Are there other languages than Visual Basic you ask next? Absolutely, I reply. There are too many to count, with the numbers being in the hundreds. I personally have written programs in a dozen or so languages throughout my academic (as a student) and professional career.

Modern "high-level" programming languages began with FORTRAN in the mid 1950's and contine to evolve as new ones are created constantly. For an outstanding history of most, if not all programming languages, see O'Reilly's History of Programming Languages poster here.


Programming Language Classifications

When talking about programming languages in general, there are numerous ways to classify (or describe) them according to shared, common features. Some of the general classifications along with specific attributes include classification by:

Where does Visual Basic.Net fit into the overall classification model? VB.Net is a 3rd generation language (3 GL) which is object oriented, event driven, with strong typing and JIT translation.

For more detailed information regarding programming language taxonomies and comparison, see Wikipedia here. ([WP 2])


Which Language Is Best?

Students often ask "which programming language is the best one?" While not a silly question, this is comparable to asking which eating utensil (fork, spoon or knife) is best. The answer is dependent upon what you are trying to accomplish, that is eat.

For example, if you are trying to eat mashed potatoes, a fork would work, as would a spoon, and even a knife would work (although it might be dangerous if it were sharp). However, if you were trying to eat soup, a spoon would be optimal where a fork or a knife may leave you quite hungry.

The same is true for programming languages; it depends upon what sort of problem you are trying to solve. Some languages work extremely well for one type of problem, while not working very well for another type of problem. Some languages work moderatly well for many tasks, but not optimally so. Using our eating utensil analogy, this is the spork approach. Additionally, some languages may allow a programmer to implement a solution using that language, but it may be extremely difficult; similar to trying to eat potatoes with a knife.


Why Visual Basic?

Why use Visual Basic as "the" introductory programming language? Why not Java? Why not C#.Net, or any one of the other plethora of programming languages?

My oft contemplated answer is simplicity. VB.Net provides the simplicity that allows beginning students to focus on problem solving skills (the most important skill) and not be hindered by the complexity of many other popular languages (e.g. Java and C#). Other strengths of VB.Net include:

There are some who will say I am daft. I will admit there are weaknesses with VB. Perhaps the number one criticism of VB is it that allows for unstructured, sloppy programming. This is a definitely a weakness I will admit. However, one of the fundamental goals of this text and my direction in the classroom is the mandate of structured programming. With this in mind, I am confident I can offset this criticism of VB.

Authors note: this section is entirely my own opinion. I'm sure there are many who will critize this opinion, which is fine. This opinion, however is founded with over a decade of experience in teaching introductory programming courses.



Next Section: Problem Solving Table of Contents


©2007, Mark A. Thomas. All Rights Reserved.