Along with the great programmers in history, you also must look at the evolution of programming languages. You cannot truly appreciate the accomplishments of the early programmers without understanding the conditions the early programmers worked in.
With today’s great advances, it’s easy to forget about dumb terminals and punch cards. But it is the evolution of punch cards and dumb terminals into client/server then into this distributed web programming that illustrates the greatness of programmers. It also shows the criteria that should be used to determine tomorrow’s great programmers.
Below are some of the major milestones of computer programming languages evolution.
1952, Autocode: Language developed by Alick E. Glennie
1954, Fortran (FORmula TRANslator system): Developed by John Backus and others at IBM. The language is focused on mathematical calculations.
1956, IPL (Information Processing Language): Developed by A. Newell, H. Simon and J.C. Shaw. It’s a low level list processing language that implements recursion.
1958, Fortran II (FORmula TRANslator system II): Developed by John Backus and others at IBM. The Fortran II enhancements included subroutines and functions, and loops.
1958, Lisp (LISt Processing): Developed by John McCarthy. Language only allows recursive programming.
1960, Algol (ALGOrithmic Language): Defined by an international consortium. Algol was the first language to be machine independence. It has many of the common language features, such as If-Then-Else, For and While loops, Switch with gotos, begin and end markers, local variables, etc.
1960, Cobol (COmmon Business Oriented Language): Defined by a committee named the Conference on Data Systems Languages (CODASYL). The Department of Defense, universities and others were members of the committee. Cobol focuses on business needs and the syntax is believed to be easy enough to read that documentation is not required. Cobol is a procedural language, and its programs are broken into four divisions: Identification, Environment, Data and Procedure.
1964, APL (A Programming Language): Developed by K. Iverson, APL is a language focused on mathematical notation.
1964, BASIC (Beginner’s All-purpose Symbolic Instruction Code): Developed by John Kemeny and Thomas Kurtz. BASIC was designed to be easy to learn. One interesting feature is its use of line numbers – every line has a number assigned to it, and the programmer uses GOTO statements to jump to the desired line.
1966, Logo: Developed by Fuerzeig, Seymour Papert and others. Its goal was to teach programming to children. It is often considered similar to Lisp. Its main feature included a moving “turtle” on the screen.
1967, Snobol (StriNg Oriented symBOlic Language): Developed by programmers at Bell Labs, including D.J. Farber, R.E. Griswold, F.P. Polensky. Snobol extensively used strings – pattern-matching, concatenation and alternation.
1968, Algol 68 (ALGOrithmic Language 68): Improved the existing Algol language by adding features like += for assignment and add, casting, etc.
1970, Pascal: Developed by Niklaus Wirth and named for French mathematician Blaise Pascal. Pascal is a structured programming languages and has many similarities with C.
1970, SQL (Structured Query Language): Developed by IBM as a language to query relational databases.
1973, C: Developed by AT&T Bell Labs programmer Dennis Ritchie. It was intended for the Unix Operating System but quickly spread due to its portability and speed. C is the de facto language for low-level software development, and is widely taught in colleges and universities world wide.
1977, Applesoft Basic: Developed by Microsoft for the Apple II computer. It was an extension of the BASIC language, and shipped with every Apple II computer sold.
1981, BASICA: Developed by Microsoft’s for MS-DOS, it was shipped with early IBM PC’s.
1983, Turbo Pascal: Developed by Anders Hejlsberg as an extension of Pascal. Turbo Pascal was bundled with a full IDE, and was a great improvement in speed, and is often credited with greatly aiding Pascal’s popularity.
1983, C++: Developed by AT&T Bell Labs programmer Bjarne Stroustrup as an extension of the popular C language. C++ was designed to be an object oriented version of C.
1987, Perl (Practical Extracting and Report Language): Developed by Larry Wall as a replacement of several command line languages. It is used today primarily for system administration and CGI scripts.
1991, HTML (HyperText Markup Language): Prototypes and early concepts were initially made by Tim Berners-Lee in the 1980’s, however it didn’t go live until August 6th, 1991 running off of CERN systems. HTML is the language used to make the World Wide Web possible.
1991, Visual Basic: Developed by Microsoft for use on its Window platforms. It was developed to be easy to learn and use. Its last version was 6.0 released in 1998. It was replaced by Microsoft Visual Basic .NET in 2002.
1993, ASP (Active Server Pages): Developed initially by a company called Aspect Server Pages and was later purchased by Microsoft. ASP (commonly called today as “Classic ASP” to contrast with ASP.NET) is modeled off of the BASIC programming language, though it is dramatically different than the original version.
1994, Ruby: Developed by Yukihiro Matsumoto and named as a pun off the “Perl” programming language. Has seen a rise in popularity of late due to the use of Ruby on Rails.
1994, Java: Developed by Sun Microsystems programmers (including James Gosling), and named for the Java Conference room where it was conceived in Sun’s offices. The language is very similar to C++ in many ways, though its use is different. Java compiles into Bytecode that is then interpretted, thus allowing it to be more portable. It is commonly used in client-side applets downloaded over the web, as well as in server-side processing for a website (JSPs).
1995, PHP (Personal Hypertext Processor): Developed by Rasmus Lerdorf to facilitate web development. PHP scriptlets are embedded inside HTML code.
2000, C# (pronounced C-Sharp): Developed by Microsoft to compete against Java. It is very similar in dialect to C++ and Java. C# compiles to an intermediate language called CIL (Common Intermediate Language), as well does ASP.NET. This allows the final application to use code developed in C# and ASP.NET interchangeably.
2002, ASP.NET: Developed by Microsoft as a next generation of its ASP language. It compiles into Microsoft’s CIL, just as C#.