Back to Homepage FullerData.com - Programming Languages

Starting with Charles Babbage and the difference engine in 1822, physical motion was eventually replaced with electronics in 1942 with the US Government ENIAC. The first of the major programming languages appeared in 1957 as FORTRAN for scientific computing, with the business language of COBOL then appearing in 1960.

Many languages have been developed, although most follow the same principles of the early creations. Some of the more popular languages continue to be COBOL and FORTRAN, along with the more fashionable C-family (including C, C++, Java and C#), Pascal (including Turbo Pascal and Delphi) and BASIC (including Visual BASIC).

Here are a couple of diagrams borrowed from elsewhere on the web, which try to map the fairly complicated family history of many of the languages:

Language History Diagram 1
Language History Diagram 2

1957 - FORTRAN
1958 - ALGOL
1960 - LISP
1960 - COBOL
1962 - APL
1962 - SIMULA
1964 - BASIC
1964 - PL/I
1970 - Prolog
1972 - C
1975 - Pascal
1975 - Scheme
1980 - dBASE II
1983 - Smalltalk-80
1983 - Ada
1984 - Standard ML
1986 - C++
1986 - Eiffel
1988 - Mathematica
1988 - Oberon
1990 - Haskell
1995 - Java
2000 - C#
Click here for a more complete language list text file: Language List

Here's an amusing selection of the well-known "how to shoot yourself in the foot" with various languages (or here for XML):

Assembler You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot.
C You shoot yourself in the foot and then no one else can figure out what you did.
C++ You accidently create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying "That's me, over there."
Pascal The compiler won't let you shoot yourself in the foot.
Java You shoot yourself with any kind of gun anywhere you want. Unfortunately, it shoots real slowly and misses sometimes, especially when shooting at windows.
C# You shoot yourself in the foot and bruise your toe.
FORTRAN You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you have no exception-handling facility.
Modula-2 After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.
COBOL USEing a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.
Lisp You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds...
BASIC You shoot yourself in the foot with a water pistol. On big systems, continue until entire lower body is water logged.
Visual BASIC You draw yourself being shot in the foot with a water pistol.
Forth Foot yourself in the shoot.
APL You shoot yourself in the foot; then spend all day figuring out how to do it in fewer characters.
Snobol If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.
Prolog You tell your program you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't allow it to explain.
370 JCL You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.
COMAL You attempt to shoot yourself in the foot with a water pistol, but the bore is clogged, and the pressure build-up blows apart both the pistol and your hand.
Scheme As Lisp, but none of the other appendages are aware of this happening.
Algol You shoot yourself in the foot with a musket. The musket is aesthetically fascinating and the wound baffles the adolescent medic in the emergency room.
Ada The Department of Defense shoots you in the foot after offering you a blindfold and a last cigarette.
Eiffel You create a GUN object, two FOOT objects and a BULLET object. The GUN passes both the FOOT objects a reference to the BULLET. The FOOT objects increment their hole counts and forget about the BULLET. A little demon then drives a garbage truck over your feet and grabs the bullet (both of it) on the way.
Smalltalk You spend so much time playing with the graphics and windowing system that your boss shoots you in the foot, takes away your workstation and makes you develop in COBOL on a character terminal.
PL/I You consume all available system resources, including all the offline bullets. The Data Processing and Payroll Department doubles its size, triples its budget, acquires four new mainframes and drops the original one on your foot.
Postscript foot bullets 6 locate loadgun aim gun shoot showpage
PERL You stab yourself in the foot repeatedly with an incredibly large and very heavy Swiss Army knife.
BCPL You shoot yourself somewhere in the leg -- you can't get any finer resolution than that.
Concurrent Euclid You shoot yourself in somebody else's foot.
Powerbuilder While attempting to load the gun you discover that the LoadGun system function is buggy; as a work around you tape the bullet to the outside of the gun and unsuccessfully attempt to fire it with a nail. In frustration you club your foot with the butt of the gun and explain to your client that this approximates the functionality of shooting yourself in the foot and that the next version of Powerbuilder will fix it.
Standard ML By the time you get your code to typecheck, you're using a shoot to foot yourself in the gun.
Clipper You grab a bullet, get ready to insert it in the gun so that you can shoot yourself in the foot, and discover that the gun that the bullet fits has not yet been built, but should be arriving in the mail REAL SOON NOW.
Genetic Algorithms You create 10,000 strings describing the best way to shoot yourself in the foot. By the time the program produces the optimal solution, humans have evolved wings and the problem is moot.
HTML You shoot yourself in the foot, only to find out that no matter how gory the result looks, your foot keeps working. Your foot finally stops working when you stub your toe kicking the box the gun came in.
Logo You tell a turtle to draw a picture of a foot and a gun, then shoot the turtle.
Occam You try to shoot both of your feet with several guns at once, but deadlock.
PHP If you're lucky and the HTTP connection doesn't time out, you shoot yourself in the foot.
Z You write out all the specifications of your foot, the bullet, the gun, and the relevant laws of physics, but all you can do is prove that you can shoot yourself in the foot.
Ruby Load the gun with anything you like and shoot yourself in the foot. Everything's a bullet, you see.
Python You insert the bullet into the gun but because there were actually TAB characters in the barrel instead of spaces, the gun jams with an IndentError.
UML A model is made of the bullet, gun and foot using sequence diagrams and a wide selection of document artefacts for the inception, elaboration, construction and transition iterations of the high-risk use cases. Unfortunately, the architect has no actual hands-on experience implementing anything and fails to find a developer able to actually implement the shooting-ones-foot use cases.


Or the various links below for some of the more well known languages (or here for XML):

ABCA Short Introduction to the ABC Language
AdaAda 95
Ada Home Page
AlgolThe ALGOL Programming Language
AWKThe AWK Programming Language
APLThe APL Archives
BThe Programming Language B (abstract)
Users' Reference to B by Ken Thompson
BasicThe Basic Archives
Visual Basic Instinct
BCPLBCPL Reference Manual by Martin Richards
CThe Development of the C Language
Very early C compilers and language by Dennis Ritchie
The C Programming Language (book)
Programming languages - C ANSI
C++Bjarne Stroustrup's Home Page
C#C# Introduction and Overview by Microsoft
CamlThe Caml language
Caml-Light
Objective Caml
The Objective-Caml system
CluCLU Home Page
The CLU Programming Language
CobolCobol FAQ
IBM Cobol
DelphiDelphi by Borland
Pascal and Delphi
Pascal Programming
EiffelEiffel
Flow-MaticFlow-Matic and Cobol
ForthForth Interest Group Home Page
FortranUser notes on Fortran programming
HaskellHaskell Home Page
IconThe Icon Programming Language
Icon
Icon
JJ software
A management perspective of the "J" programming language
JavaJava by Sun Microsystems
Java Technology: an early history
Programming Languages for the Java Virtual Machine
LispThe Association of Lisp Users
An Introduction and Tutorial for Common Lisp
MLStandard ML
Standard ML '97
ModulaModula-2
ISO Modula-2
Modula-3 Home Page
OberonA Brief History of Oberon
A Description of the Oberon-2 Language
The Programming Language Oberon-2
Objective-CObjective-C FAQ
Objective-C by Steve Dekorte
Object-Oriented Programming and the Objective-C Language by Apple
PascalISO Pascal (document)
Pascal and Delphi
PerlPerl Home Page
The Perl history records
Perl
PL/IIntroduction to LPI - PL/1 Language Compiler
VisualAge PL/I by IBM
PostScriptPostScript level 3
PostScript and GhostScript by Jim Land
GhostScript Home Page
PrologThe Prolog Programming Language
PrologIA
PythonPython Home Page
RexxThe Rexx Language by IBM Hursley
Rexx History
The Rexx Language Association
RubyRuby Home Page
SatherSather History
Sather
GNU Sather
SchemeScheme by MIT
The Revised Report on the Algorithmic Language Scheme in PostScript
Schemers Home Page
SCM
ShKorn Shell of David Korn
SimulaSimula by Jan Rune Holmevik
SmalltalkSmalltalk Home Page
Smalltalk FAQ
Smallfaq
History of Smalltalk
The Smalltalk Industry Council web site
SnobolSnobol Resources Page by Phil Budne
Introduction to SNOBOL Programming Language by Mohammad Noman Hameed
Snobol4
Tcl/TkTcl/Tk Information