Evolution of programming

The Evolution of Programming Languages

The first research computers of the late 1940s (like ENIAC commissioned in 1946) were programmed by hard wiring. Cables were plugged and unplugged into huge patch boards to physically alter the electrical circuitry. To program the machine you had to be a highly trained expert in both mathematics and engineering. Australia had its own version of these machine the CSIRAC, built by CSIRO and commissioned in 1947. This machine is being restored to full a working state in a museum in Melbourne. It is the only machine in the world of that era that still exists. For its time it was quite an advanced machine.

Later the “stored program” concept was introduced. The machines were programmed in binary with punched holes in paper tape. This was easier, but with all the ones and zeroes to deal with only experts could handle programming.

Further down the track, came assembly languages with symbolic type instructions converted by a computer program (an assembler) to binary for the processor. The level of abstraction was low, as each symbolic instruction translated directed to a binary operation code for the machine. These are known as low level languages.

With third generation computers came more English-like third generation languages [3GL] like Fortran a contraction from [Formula Translation]. Fortran was developed for scientists and people with only a small amount of special training so they could use it to program computers. A similar language for business Cobol [Common Business Oriented Language] appeared around the same time. These procedural languages were still hard to use however. Similar languages like Pascal and C+ were also developed to make the usage easier. Pascal itself was developed (by Nicklaus Wirth) as a special language for teaching computer programming in a properly structured way. After the program was written it was dealt with by a computer program called a compiler for controlling the processor. BASIC [Beginners All-purpose Symbolic Instruction Code] which was written specially to be easy to use. After the “code” was written it was dealt with by a computer program called an interpreter to change into instructions for the processor, a less complicated process than compiling. It was included on many microcomputers when the earliest PCs were produced, although versions of it have been used on larger systems. On these early PCs it was often built into the memory map as a interpreter ROM, contiguous in the address space with the RAM. A newer version is called QuickBASIC or QBasic. [BASIC was one of the first products sold by Microsoft. Also William Henry Gates III lost a paper tape of it even before it was released and it was widely copied as a result!] It was soon in use by hobbyists and people with very little training.

These were a high level languages somewhat similar to English. These were also “procedural languages” in that they followed the methods of the processor and forced the user to comply with instructions in a one-after-the-other linear fashion. In those days computer screens were mainly text oriented and users interacted with the keyboard only.

The “structured programming” movement introduced special “object oriented” versions of these languages, making coding easier and helping with debugging. It was really just a change in emphasis, code was arranged more logically with the objects it referred to.

Finally with the GUI (Graphical User Interface) systems, Xerox-Sparc, Macintosh and later Windows, came event based programming. In these OS the user (not the programmer as in text-based BASIC and Pascal) chooses what happens, in what order, and when, by using the objects on the screen. The OS detected these “events” and did the appropriate things.

Visual Basic is an environment like this where you design the user interface, that is the objects the user sees on screen, and write code to determines what happens when an event like clicking takes place. Visual Basic had its origin in the BASIC language, in the early 1960's at Dartmouth College. After the Windows operating system was developed, a version of Visual Basic was created to program for these new systems. By this type it was a standalone application, using the RAM like any other application, no longer an intrusive ROM in the middle of the memory. In versions up to 4.0 programs ran slower than fully compiled C or C++ programs. Thus early versions of VB had a speed disadvantage. However, the programs were created interactively within a windowed development environment, and so they had the advantage of ease of development. In the latest version of VB programs can be compiled into native code, so Visual Basic no longer suffers as much from problems with execution speed.

Visual Basic is organized around objects. Each object has attributes (properties) and methods (modifications which can done with it). In VB these are called forms and controls which can then be combined to create a program. The important principle of software reuse is an integral part of VB. Programs can be written to run on the various Windows operating systems seen today, as well as in some types of World Wide Web browser applications. VB is widely used by individuals and software developers to implement many different types of programs.

Programs written with Visual Basic are primarily event-driven. That is, once a form, or window, initialises, it waits for some event to occur which will cause it to execute a segment of code.

Delphi (A proprietary RAD Pascal) is a very similar visually oriented language, where the programmer designs in a modern point and click GUI and the system writes all the hack code code for you. You concentrate on the important aspects of you program. The user controls the running as in all modern WIMPS environments. It can also be used in the console mode for procedural type standard ISO-Pascal, which is often good for teaching because it avoids all the extraneous code and concentrates on the essential material, but this mode runs in a program forced procedural way, like the old computers of the 1970s.

Event Oriented Programming

In third generation languages, traditional programming made a request to the user to enter data when the program asked for it. In other words the entry sequence of a data was fixed by the programmer and the user was forced to comply.

Event driven programming is a response to particular events such as mouse clicks or keystrokes. Such actions occur in an unpredictable manner determined by the user.

With languages such as C++ and Pascal, the programmer has to make arrangements to trap these events in the main loop of the program, and then deal with them by various subprograms.

In Visual Basic the event trapping and subprogram calling is done by the VB runtime system, and all you have to do is write the code (or “procedure”) to deal with the event.

Event procedures are named by an object name (the name property of the object on the form) joined by an underscore to the user caused event (like Click). Eg. CmdExit_Click

Interesting links on similar topics

Brief history of programming

src.doc.ic.ac.uk/bySubject/Computing/Languages.html