Understanding Programming Language Tool
Sets
Before a publisher uses a development
language, they first develop a set of tools to compliment that language.
For example, an accounting software product typically contains about
6,000 user screens. Each screen will probably have the same look and
feel in terms of size, font, color, border, etc. In this case, the
publisher develops a tool which automatically creates a new blank user
screen with the click of a button. In this manner, the programmer does
not have to recreate the wheel each time a new user screen is created.
Instead, the programmer clicks a button and the predefined screen pops
up, and the programmer modifies the screen from there. It is important
to understand this because publishers often give names to their
respective tools sets. For example, Great Plains is written in “C”, but
the tool set that Great Plains used to compliment “C” is called
Dexterity. Some people falsely assume that Dexterity is the actual
programming language, but it is not. It is merely a tool set that Great
Plains developed to help programmers write code with greater efficiency
and accuracy. Navision goes even further. Navision Attain is also
written in “C”, but they refer to their programming language as C/SIDE.
“C” being the programming language, and “SIDE” being their internally
developed tool set plus an integrated database. Because Navision’s tool
set is very extensive and integrates the database, the company claims
that this makes the “product fast to implement, easy to customize, and
simple to use and maintain”.
This is by no means a
complete review of programming languages. However, you may find some of
this reference information useful.
Definition
A programming language
is a standardized method for expressing instructions to a computer. The
language allows a programmer to specify the data a computer is to act
upon, and what actions are to be taken under various circumstances.
A History of
Programming Languages
1940 – Ada Byron
King described in great detail Charles Babbage’s mechanical general
purpose computational device which he called the analytical engine.
Despite the fact that Babbage never built a working model of his
analytical engine, Ada Lovelace specified in complete detail a method
for computing Bernoulli numbers with that machine. This is generally
considered to be the world’s first computer program.
1949 – Short Code
was the first computer language that actually was used on an
electronic computing device. It is, however, a “hand-compiled”
language.
1951 – MATH-MATIC
was developed by Grace Hopper while working for Remington Rand,
MATH-MATIC was the first widely known compiler. It was code named A-0
prior to its release by Rand in 1957. As a side note, in 1983 I ran
into Grace Hopper in the Atlanta airport and talked to her for a few
minutes. She handed me a piece of wire cut to a length in which
electricity travels in a nano-second.
1952 – AUTOCODE
was developed by Alick E. Glennie in his spare time at the University of
Manchester. He called it a “rudimentary compiler”.
1957 – FORTRAN
is an abbreviation of FORmula TRANslating system. It was
developed by a team headed by John Backus. John goes on to assist in the
development of ALGOL and BNF.
1958 – FORTRAN II
was developed by John McCarthy while working at M.I.T. The system is
able to handle subroutines and links to assembly language. John also
worked on developing LISP which is derived from LISt Processing.
1959 – LISP 1.5
was developed by John McCarthy while working at M.I.T.
1959 – COBOL is
created by the Conference on Data Systems and Languages (CODASYL).
1960 – ALGOL 60
first appears. This language lays the foundation that ultimately
produces Pascal. ALGOL becomes the most popular language in Europe at
the time.
1960s – APL is
derived from A Programming Language. It was developed by Kenneth
Iverson and it uses a specialized character set that works with
APL-compatible I/O devices. Iverson documents his work in his 1962 book,
A Programming Language .
1962 – FORTRAN IV
is released.
1971 – SNOBOL is
derived from StriNg-Oriented ymbolic Language.
1971 – SPITBOL
is derived from Speedy ImplemenTation of snoBOL.
1963 – ALGOL 60
is revised.
1963 – PL/1
development begins.
1963 – Sketchpad
was designed on the TX-2 computer at MIT. This language is considered to
be the first computer graphics application.
1964 – APL\360
is implemented.
1964 – BASIC is
developed by professors John G. Kemeny and Thomas E. Kurtz while working
at Dartmouth University. The first BASIC program is said to have run at
4:00 a.m. on May 1, 1964.
1964 – PL/1 is
released.
1965 – SNOBOL3
is released.
1966 – FORTRAN 66
appears.
1966 – LISP 2 is
released.
1966 – LOGO
development is started by Wally Fuerzeig and Seymour Papert at Bolt,
Beranek, & Newman. LOGO becomes best known for “turtle graphics.”
1967 – SNOBOL4
is released.
1968 – ALGOL 68
is released. ALGOL 68 develops a reputation for being difficult to
implement and members of the specifications committee protest its
approval.
1968 – ALTRAN is
released as a variant of FORTRAN.
1968 – COBOL is
officially defined by ANSI.
1968 – Pascal
development is begun by Niklaus Wirth.
1970 – Forth is
developed by Charles Moore, and he writes his first significant program
using this language.
1970 – Prolog
development begins.
1970 – Smalltalk
development begins by Alan Kay while working at Xerox PARC. This effort
spawned Smalltalk-72, Smalltalk-74, and Smalltalk-76.
1970 – Pascal
first appears on a CDC 6000-series computer.
1970 – Icon is
released. This language is a descendant of SNOBOL4.
1972 – C is
developed by Denni S. Ritchie. The reference manual is released in
1974.
1972 – Prolog is
developed and released by Alain Colmerauer and Phillip Roussel.
1975 – Tiny BASIC
is developed by Bob Albrecht and Dennis Allison (the language is
implementation by Dick Whipple and John Arnold). The language first runs
on a 4-KB microcomputer, using just 2 KB of the RAM for the program.
1975 – A version of
BASIC is developed by Bill Gates and Paul Allen, which they sell to
MITS (Micro Instrumentation and Telemetry Systems) for use on its’
Altair, an 8080-based microcomputer.
1975 – Scheme is
developed by G.L. Steele and G.J. Sussman. It is a descendant of , a
LISP.
1975 – The Pascal
User Manual and Report is published by Jensen and Wirth.
1975 – RATFOR is
an abbreviation of RATional FORTRAN. It is developed by B.W.
Kerninghan and it allows C-like control structures in FORTRAN.
1976 – Design System
Language is released. It is considered to be a predecessor to
PostScript.
1977 – MUMPS is
an abbreviation of Massachusetts General Hospital Utility
Multi-Programming System. It first appears in 1977 and was
originally used to handle medical records. MUMPS only recognizes string
data-type. It was later renamed M.
1977 – ADA –The
design competition that will produce Ada begins. Honeywell Bull’s team,
led by Jean Ichbiah, will win the competition.
1977 – FIG is an
abbreviation of the FORTH interest group. Developed by Kim Harris
and others FIG-FORTH sold for around $20.
1970s – UCSD Pascal
was developed by Kenneth Bowles and made Pascal available on PDP-11
and Z80-based computers.
1977 – Modula-2
is the successor to Pascal. Development is initiated by Niklaus Wirth.
1978 – AWK is
released. It is a text-processing language named after the designers,
Aho, Weinberger, and Kernighan.
1978 - VISICALC
is released by Dan Bricklin of Frankston. Technically it is a
programming language, however we generally refer to it as a spreadsheet
application.
1978 – FORTRAN 77
– The ANSI standard for FORTRAN 77 is released.
1979 - Green is
released by Jean Ichbiah et al., while working for the US Department of
Defense.
1980 – Smalltalk-80
is released.
1980 – Modula-2
is released.
1980 – C is
developed by Bjarne Stroustrup. This language later spawns C++.
1981 – Common LISP
development begins. This is to be a common dialect of LISP.
1981 – Prolog is
developed by Japan under the Fifth Generation Computer System project.
1982 – ISO Pascal
is released.
1982 – PostScript
is released.
1983 – Smalltalk-80
is published by Goldberg et al.
1983 – Ada is
released. Its name is derived from Lady Augusta Ada Byron. She is
the Countess of Lovelace and daughter of the English poet Byron. She has
been referred to as the first computer programmer because of her work on
Charles Babbage’s analytical engine. In 1983, the Department of Defense
dictated that all new “mission-critical” applications be written in Ada.
1983/1984 – C
Compilers for microcomputers are first released by both Microsoft
and Digital Research.
1983 – C++ is
released. The product is named by Rick Mascitti.
1983 – Turbo Pascal
is released by Borland with a splash, thanks to an effective
advertisement in BYTE magazine.
1984 – APL2 is
descendant of APL that permits nested arrays. A reference manual for
APL2 is released.
1984 – Vanilla
SNOBOL4 for microcomputers is released.
1984 – Methods
is released. It is a line-oriented Smalltalk for PCs.
1984 - CLIPPER
is released by Nantucket.
1985 – PARADOX
is released by Borland.
1986 – Smalltalk/V
is released for microcomputers.
1986 – Object Pascal
for the Mac is released by Apple.
1986 – Turbo Prolog
is released by Borland.
1986 – Actor is
released by Charles Duff. It is an object-oriented language for
developing Microsoft Windows applications.
1986 – Eiffel is
released. It is an object-oriented language.
1986 – C++
appears.
1987 – Turbo Pascal
version 4.0 is released.
1987 – Perl is
released.
1988 – CLOS is
derived from Common LISP Object System. The specifications for this
language are published.
1988 – Oberon is
released by Niklaus Wirth. This language is a descendent of Modula-2.
1989 – The ANSI C
specification is published.
1989 – C++ 2.0
draft reference manual is released. The 2.0 version adds multiple
inheritance and pointers to members.
1990 - C++ 2.1
Reference Manual by B. Stroustrup et al, is published. This version adds
templates and exception-handling features.
1990 – FORTRAN 90
is released it includes case statements and derived types.
1990 – J is
presented at the APL90 conference by Kenneth Iverson and Roger Hui.
1991 – Visual Basic
wins BYTE’s Best of Show award at Spring COMDEX. Visual Basic (VB)
is a descendant of the BASIC programming language developed by
Microsoft. It is an event driven programming language centered around a
forms engine that enables rapid development of graphical user interface
applications and a database object library (ADO). It is used primarily
for database front ends, and its relative VBScript is the language for
Active Server Pages.
1991 – Python is
released.
1992 – Dylan,
which is derived from Dylan Thomas, is released by Apple. It is
an object-oriented language that resembles Scheme.
1993 – The X3J4.1
technical report is released by ANSI. It is the first-draft proposal
for object-oriented COBOL.
1994 – VBA –
Microsoft incorporates Visual Basic for Applications into Excel.
1995 – Ada 95 is
accepted by ISO. It includes OOP features and support for real-time
systems.
1995 – Java is
created by James Gosling and other engineers at Sun Microsystems. It was
officially announced on May 23, 1995, at SunWorld. It is language is an
object-oriented programming language developed so that programs written
for it will look and function approximately the same regardless of the
device it is running on.
1996 – C++
standard is released by ANSI.
1997 – Visual Basic
for Applications (VBA) is built into every product in the Microsoft
Office family (Word, Excel, Access etc.), and also in several third-part
products such as Visio. This makes Visual Basic the programming platform
with the largest installed base in the world. VBA is developed to write
small applications for specific purposes. In recent years, VBA has been
exploited to write macro viruses which are able to spread.
1997 – ActiveX
is released by Microsoft.
2001 – KYLIX is
released by Borland. It is a descendant of Delphi5.
Programming Language
Family Tree
Based on what I
have read, I have attempted to reconstruct a Programming Language Family
Tree, which depicts the natural progression of programming languages
from their ancestors through their descendents. It is a difficult
exercise and I am sure that I have made many errors here. Still, this
might be useful to you.
- Assembly languages
- Algol family
- BASIC family
- Lisp family
Links
- END -