Some of the most important programming languages


1970s

C

The C Programming Language (2 edition)

One of the most important and influential programming languages invented at the beginning of the 70s is the C1 general-purpose compiled programming language designed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. A general-purpose programming language is a programming language designed to be used in a wide variety of applications areas.

The creation of C is strictly related to the creation and implementation of the Unix operating system, which was initially created by Dennis Ritchie and Ken Thompson, and a few other programmers. C is an imperative, procedural programming language, but it also allows structured programming.

Although C is a general-purpose2 language, it was mainly thought as a system programming language, which means that it was thought to create system software, such as operating systems or drivers.

The language derived mostly from the type-less language BCPL3 and the B4 programming language, written previously by Ken Thompson in 1970 at Bell Labs.

It was static typed to prevent unwanted operations, and it allowed recursion and dynamic memory allocation.

The C programming language influenced many other programming languages, such as C++, Objective-C, Perl, PHP, Python or Java.

1983, the American National Standards Institute (ANSI)5 decided to put together a committee to define a standard definition of the language. The definition ended around 1988, and it was called ANSI C6.

Pascal

In 1970, another important imperative and procedural programming language that was emerging is the Pascal7 programming language designed by Niklaus Wirth8, a member of the International Federation of Information Processing (IFIP)9.

Pascal was created as a small and efficient language invented to encourage good programming practices using the structured programming and data structuring10, which refers to particular and efficient ways of organizing data in a computer. It was also developed as a vehicle for the teaching of the important concepts of computer programming.

If you want to learn how to program in Pascal, here's an introductory video (in the video the host uses recent versions of Pascal and of its development tools):


Smalltalk

Around 1972, an insurgent programming language named Smalltalk11 came out. Smalltalk was designed and created in part for educational purposes, at the Learning Research Group (LRG) of Xerox PARC12 by Alan Kay, Dan Ingalls13, Adele Goldberg14, Ted Kaehler15, Scott Wallace. It is an object-oriented, dynamically typed16 and reflective17 programming language. It was not the first object-oriented language, but it has been one of the most influential object-oriented programming languages.

It is thought that the first actual object-oriented programming language was Simula 6718, which has been influencing all the following object-oriented languages, such as Smalltalk or C++.

Smalltalk was originally used to create prototypes of simpler programming languages and graphical interfaces (GUIs)19. Smalltalk was first run on Xerox’s Alto computer20, which was designed for it.

Prolog

Between 1972 and 1973, another general purpose and one of the first logic programming languages appeared, Prolog21. It was originally thought as a natural language processing, which is field of computer science, artificial intelligence22, and linguistics concerned with the interactions between computers and human natural languages. Prolog represented a fundamental new approach to computing, and it became a serious competitor to LISP23.

The language was first conceived by a group around Alain Colmerauer24, Roussel, and Kowalski, in Marseille, France.

ML

In 1974, Robin Milner25 with other collaborators invented the functional ML26 programming language. It was designed as the implementation language for LCF27 theorem prover. It was strongly typed, it supported parametric polymorphism28 and type inference29. This language has also evolved in different dialects over the following years.

Scheme

Scheme30 was created as another dialect of the older programming language Lisp by Guy L. Steele31 and Gerald Jay Sussman32, around 1975. It was developed at the MIT Al Lab33, mostly for the academic world via a series of memos. It was t=he first dialect of Lisp to choose lexical scope34 and the first to require implementations to perform tail-call35 optimization, giving stronger support for functional programming36 and associated techniques such as recursive37 algorithms. It was also one of the first programming languages to support first-class38 continuations. It had a significant influence on the development of Common Lisp, the other main dialect of the List programming language.

SQL

A special purpose, declarative and procedural programming language that came out around 1974 was SQL39 or structured query language. SQL was initially developed at IBM40 by Donal D. Chamberlin41 and Raymond F. Boyce. It was designed to manipulate and retrieve data stored in IBM's original quasi-relational database management system, System R42, which a group at IBM San Jose Research Laboratory had developed during the 1970s.

The original name SEQUEL was later changed to SQL because SEQUEL was a trademark of the UK-based Hawker Siddeley aircraft company.

In the late 1970s, Relational Software, Inc., which is now called Oracle Corporation43 saw the potential of the concepts described by Codd (a pioneer of the relational model for databases), Chamberlin, and Boyce and developed their own SQL-based RDBMS44 or relation database management system with the intention of selling it to the U.S. Navy, Central Intelligence Agency, and other U.S. Government agencies.


1980s

C++

In 1979, the Danish and British Bjarne Stroustrup started developing the compiled object-oriented, imperative and generic C++45 programming language at Bell Labs. The intention of the creator of C++ was to put together the efficiency and the flexibility of the C programming language and high level features for a better and well-organized software production, such as classes of the Simula 67. The language was also influenced by other programming languages, such as ALGO 6846, Ada or ML.

C++ was conceived to be strongly typed, and it started supporting many features, such as default arguments47 in functions, virtual functions48, operator overloading49, references50, constants51, dynamic memory allocation52 (with the "new" and the "delete" constructs), single-line comments with two forward slashes (//), multiple inheritance53 or exception handling54.

The language was first called by its creator as “C with classes", but the name changed to C++ to emphasize the evolutionary nature of the changes from C, or the addition of new functionality respect to other languages, since the ++ symbol, in the C programming language, is the increment operator.

Bjarne Stroustrup wanted also to maintain as much as possible backward compatibility with C libraries and modules, that’s why many "dangerous" features of the C programming language were removed.

C++ has evolved over those years, but without an official version until the late 1990s, but in many versions, which corresponded also to different version of compilers and libraries.

The first real C++ compiler, written by Bjarne Stroustrup, was an ancestor version of CFront55, and it was not written in C++, but in C. The new compiler was used to compile the “C with classes” code to C, and then this new language “C with classes” was used to create a more efficient CFront compiler. The new compiler was written in “C with classes”, because writing it with C would have required much more time and effort.

This is the controvert explanation of its creator:

The first C++ compiler (CFront) was written in C++. To build that, I first used C to write a "C with Classes"-to-C preprocessor. "C with Classes'' was a C dialect that became the immediate ancestor to C++. That preprocessor translated "C with Classes" constructs (such as classes and constructors) into C. It was a traditional preprocessor that didn't understand all of the language, left most of the type checking for the C compiler to do, and translated individual constructs without complete knowledge. I then wrote the first version of CFront in "C with Classes".

Why Bjarne Stroustrup created C++?


MatLab

A numerical computing environment and its programming language, MatLab56, which stands for matrix laboratory, was first developed by Cleve Moler57 at the University of New Mexico, around 1970s. He designed it to give his student’s access to LINPACK58 and EISPACK59, both software libraries for algebra and numerical computing.

Subsequently, around the 1984, MatLab was rewritten by the programmers of MathWorks, that in the meantime had enrolled Cleve Moler as their dependent, using the C programming language.

By Cleve Moler about the creation of MatLab:

When we were developing EISPACK and LINPACK, I was a math professor at the University of New Mexico, teaching numerical analysis and matrix theory. I wanted my students to be able to use our new packages without writing Fortran programs, so I studied a book by Niklaus Wirth to learn about parsing computer languages.

This new language and environment allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces and can also interact with other programming languages, such as C++.

MatLab was revolutionary because it was not invented just for computer scientist, but for all scientist.

If you want to know how to create a simple MatLab program:


Late 80s and early 90s

Perl

One of the first web programming languages was Perl60, which was characterized by the wide variety of text processing facilities, regular expression61 and binary data streams62 support. It was interpreted and dynamic. Perl was initially created by Larry Wall63 in 1987 at Unisys, but it has evolved in a family of languages over the following years.

Its founder, before creating it, had already created other compilers. The ideas from those experiences and other languages constructs were put together when creating Perl:


Python

The idea of creating Python64 goes back to 1980s, but its implementation was just started in 1989 by Guido van Rossum at CWI in the Netherlands. It was a successor of the ABC65 programming language, and the first interpreter for that language was written by Guido.

This is more or less the initial idea and the premises of the creation of the Python programming language according to its creator:

Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office ... would be closed, but I had a home computer and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood and a big fan of Monthy Python.

HTML

W3C

The Hypertext Markup Language or HTML66 was invented by the physicist Tee Berners Lee at CERN, where the World Wide Web (WWW)67 began its life, as language for sharing data between scientists, and subsequently it became the official language for structuring webpages.

Oak

In 1991, James Gosling, Mike Sheridan and Patrick Naughton started developing a new compiled-interpreted programming language called Oak68. This language was originally designed for interactive television, but it was too advanced for that purpose. It was also thought to have as few implementation dependencies as possible; it was thought to be cross-platform through the use of a virtual machine. This language was first implemented in C and C++. Later, Oak was renamed to Java, that would have become one of the most used languages ever.