Some of the most important programming languages
1970s
C
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
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.
External Links
- [Visited on 01/11/2014] C
- [Visited on 01/11/2014] General Purpose Programming Language
- [Visited on 01/11/2014] BCPL
- [Visited on 01/11/2014] B
- [Visited on 01/11/2014] ANSI
- [Visited on 01/11/2014] ANSI C
- [Visited on 01/11/2014] Pascal
- [Visited on 01/11/2014] Niklaus Wirth
- [Visited on 01/11/2014] IFIP
- [Visited on 01/11/2014] Data Structure
- [Visited on 02/11/2014] Smalltalk
- [Visited on 01/11/2014] PARC
- [Visited on 02/11/2014] Dan Ingalls
- [Visited on 02/11/2014] Goldberg
- [Visited on 02/11/2014] Kaehler
- [Visited on 02/11/2014] Dynamic Typed Language
- [Visited on 02/11/2014] Reflection
- [Visited on 02/11/2014] Simula 67
- [Visited on 02/11/2014] GUI
- [Visited on 02/11/2014] Xerox Alto Computer
- [Visited on 01/11/2014] Prolog
- [Visited on 02/11/2014] AI
- [Visited on 02/11/2014] LISP
- [Visited on 02/11/2014] Alain Colmerauer
- [Visited on 02/11/2014] Robin Milner
- [Visited on 01/11/2014] ML
- [Visited on 02/11/2014] LCF
- [Visited on 02/11/2014] Polymorphism
- [Visited on 02/11/2014] Type Inference
- [Visited on 01/11/2014] Scheme
- [Visited on 02/11/2014] Guy L. Steele
- [Visited on 02/11/2014] Gerald Jay Sussman
- [Visited on 02/11/2014] MIT Al Lab
- [Visited on 02/11/2014] Lexical Scope
- [Visited on 02/11/2014] Tail Call
- [Visited on 02/11/2014] Functional Programming
- [Visited on 02/11/2014] Recursion
- [Visited on 02/11/2014] First Class
- [Visited on 01/11/2014] SQL
- [Visited on 02/11/2014] IBM
- [Visited on 02/11/2014] Donald D. Chamberlin
- [Visited on 02/11/2014] IBM System R
- [Visited on 02/11/2014] Oracle
- [Visited on 02/11/2014] RDBMS
- [Visited on 01/11/2014] C++
- [Visited on 02/11/2014] ALGO 68
- [Visited on 02/11/2014] Default Argument
- [Visited on 02/11/2014] Virtual Function
- [Visited on 02/11/2014] Operator Overloading
- [Visited on 02/11/2014] C++ Reference
- [Visited on 02/11/2014] C++ Constants
- [Visited on 02/11/2014] Dynamic Memory Allocation
- [Visited on 02/11/2014] Multiple Inheritance
- [Visited on 02/11/2014] Exceptions
- [Visited on 02/11/2014] CFront
- [Visited on 01/11/2014] MATLAB
- [Visited on 02/11/2014] Cleve Moler
- [Visited on 02/11/2014] LINPACK
- [Visited on 02/11/2014] EISPACK
- [Visited on 02/11/2014] Perl
- [Visited on 02/11/2014] Regular Expressions
- [Visited on 02/11/2014] Binary Data Streams
- [Visited on 02/11/2014] Larry Wall
- [Visited on 01/11/2014] Python
- [Visited on 02/11/2014] ABC
- [Visited on 01/11/2014] HTML
- [Visited on 02/11/2014] WWW
- [Visited on 01/11/2014] Oak
- [Visited on 01/11/2014] The Development of the C Language
- [Visited on 02/11/2014] A Brief History of C
- [Visited on 02/11/2014] The C Programming Language
- [Visited on 02/11/2014] The Pascal Language Page
- [Visited on 02/11/2014] Smalltalk - Computer Definition
- [Visited on 02/11/2014] Prolog Programming Language
- [Visited on 02/11/2014] PROLOG
- [Visited on 02/11/2014] History of SQL
- [Visited on 02/11/2014] A History of Computer Programming Languages
- [Visited on 02/11/2014] The C++ Programming Language (3rd Edition)
- [Visited on 02/11/2014] How could the first C++ compiler be written in C++?
- [Visited on 02/11/2014] Which language did you use to write C++?
- [Visited on 02/11/2014] What's this STL vs. "C++ Standard Library" fight all about?
- [Visited on 02/11/2014] Why I Created C++
- [Visited on 02/11/2014] The Origins of MATLAB
- [Visited on 02/11/2014] Larry Wall: Why Perl Is Like a Human Language
- [Visited on 02/11/2014] Foreword for "Programming Python" (1st ed.)
- [Visited on 02/11/2014] A history of HTML
- [Visited on 03/11/2014] TIOBE Index for October 2014
- [Visited on 03/11/2014] JAVA TECHNOLOGY: THE EARLY YEARS
- [Visited on 05/11/2014] Free Pascal Program Tutorial 1 - Getting Started - Lazarus
- [Visited on 04/11/2014] Writing a MATLAB Program