20 most significant programming languages in history
This is a preposterous table I just made up after reading Wikipedia's History of Programming Languages. I was trying to figure out which programming language or environment this article might be refering to. The article talks about some of the Canadian federal government's computer systems "falling apart" because they are "60 years" old. Everyone cried "COBOL" but I figured there might be other culprits.
Update: see also the CBC (english) version for the article, and a Hackernews thread which seems to confirm the COBOL hypothesis.
Year | Language | Founder | Claim to fame |
---|---|---|---|
1954 | Fortran | IBM | first high-level language with functional implementation |
1958 | LISP | MIT | first homoiconic language |
1959 | COBOL | US DoD | still in use |
1964 | BASIC | Darmouth College | saw explosive growth with PCs in 1970s |
1972 | C | AT&T | early systems language, foundation of UNIX |
1972 | Prolog | Alain Colmerauer | first (and only?) "logic programming" language |
1978 | SQL | Oracle? | first commercial language to use the relational model, still in use in most database systems |
1980 | C++ | AT&T Bell Labs | major systems programming language |
1986 | Objective C | Apple Inc. | main Apple language until the introduction of Swift |
1986 | Erlang | Ericsson | originally written in Prolog, highly-available, hot-swapping, distributed language |
1987 | Perl | Larry Wall | every sysadmin can write-only it |
1990 | Haskell | University of Glasgow | first type classes implementation |
1991 | Python | Guido van Rossum | ease of use and readability, built Dropbox |
1995 | Ruby | Yukihiro Matsumoto | built GitHub |
1995 | Javascript | Netscape | you're running it right now, most popular language on stackoverflow |
1995 | Java | Sun | "write once, run everywhere", consistently the most popular language on the TIOBE index |
1995 | PHP | Rasmus Lerdorf | personal project, built Facebook, which eventually replaced it with Hack (2014) |
2001 | C# | Microsoft | multi-paradigm |
2009 | Go | readable, concurrent, high-performance | |
2010 | Rust | Mozilla | memory-safe, concurrent, high-performance |
Some interesting observations:
- all of those languages are still in use
- in particular, COBOL is indeed 60 years old and still in use by governmental agencies, according to a US congress report
- I am also aware that Fortran is still in use in institutions, particularly research, and particularly Environnement Canada
- a significant number of programming languages came from research (Lisp, Prolog, Haskell, Python, Ruby), but that has basically disappeared in the last two decades
- the list is skewed towards languages I learned as I reached adult life
- yet I can't help but think some years were especially fertile (like 1995) and that things seem to be slowing down - after all, all the languages before the new ones still exist as legacy code that needs to be rewritten
- in this list, PHP is the only language that was not designed by an author working under a large corporation or university - it was, after all, designed for Personal Home Pages...
But for me, the most significant thing I find in this list is that every corporate ruler eventually creates its own programming language. IBM made Fortran. The US government made COBOL. AT&T made C. Ericsson made Erlang. Google made Golang. Facebook made Hack. And it's interesting to note that some languages came up shortly before the business crashed (e.g. Ericsson, Netscape, Sun) or a dark period (Apple post-Jobs, Google post don't-be-evil, Microsoft anti-trust era). Maybe this means Mozilla is about to crash?
Notable omissions and regrets
I originally jotted this down as a quick list of 18 languages I found while reviewing the Wikipedia page. Then I couldn't help myself and added Prolog, rounding up to 20 languages.
Then I realized I had forgotten Java, one of the most popular programming languages and the foundation of many corporations. So I was stuck and had to remove some things. Besides, there's only so much stuff that can fit in here. So here's the list of langugages that did not make it.
Year | Language | Founder | Claim to fame | Excluded |
---|---|---|---|---|
1940? | Assembly | Alan Turing | first concept of a stored program | not high level |
1970 | Pascal | Niklaus Wirth | first major decent language with complex datatypes | mostly dead |
1971 | Shell | Ken Thompson / AT&T Bell Labs | interactive programming | not a real programming language |
1983 | Ada | US DoD | design-by-contract, used in safety systems | own ignorance |
1987 | Hypertalk | Dan Winkler / Bill Atkinson | english-like | mostly disappeared |
1996 | OCaml | INRIA | the other significant functional language aside Haskell | too similar to Haskell in spirit |
2002 | Scratch | MIT Media Lab | block-based visual language, used for teaching kids | not very well known |
2014 | Swift | Apple Inc. | safer version of Objective C | too Apple-specific |
2014 | Hack | gradual typing for PHP | too Facebook-specific |
I also excluded things like Ada, Algol, APL, and other relics that are
historically significant but largely irrelevant now as they are not in
use anymore. I was surprised to see that Pascal was the most popular
programming language for a few years (1980-1984) until it was
surpassed by C, according to this vizualisation. (That video also
gives Ada the top row for 1985-1986, which I found surprising...)
Scala, Groovy, Typescript, and other minorities are excluded because I am not familiar with them at all.
See also my short computing history.
Update: I added Ada to the table above after being told it's still widely used in aerospace, avionics, traffic control and all sorts of safety-critical systems. It's also standardized and still developed, with the latest stable release from 2012. Ada is also one of the languages still supported by GCC, along with C, C++, Objective-C, Objective-C++, Fortran, and Golang, at the time of writing.
Second update: I kind of cheated here. As the "preposterous" adjective intended to indicate, this list is totally biased and reflects how I see those languages and programming history, more than factual, hard data. For example, Python was founded by Guido while working at the CWI in the Netherlands. Is CWI the founder, or is Guido? In my mind Guido is the founding figure. Another, more important example: Oracle didn't create SQL. Obviously, like a lot of computer things at the time, IBM initially developed SQL in 1974. But the "the first commercially available implementation of SQL" is Oracle v2 in 1979, back when Oracle was called "Relational Software, Inc". And yes, IBM built DB2, which I didn't know about, but that actually came later, in 1983.
But sure, we could assign SQL foundation status to IBM here, but do you really think of IBM when you think of SQL? Or do you think of Oracle, MySQL (now also Oracle!) or PostgreSQL? I sure know where I stand...
Third update: Ars Technica did a piece on how Oracle is full of it for suing Google in the Java case, because it copied IBM over SQL.
Excluding Scratch made me remember LOGO, which as a significant precurser to Scratch (and very popular) I think deserves to be on the second list. Except you could argue LOGO is a LISP dialect, perhaps; speaking of which, I am happy Haskell made the cut, but describing it as the most significant FP language is amusing, what about LISP? The thing I take issue with though is describing shell as "not a real programming language". Sure it's ugly and sharp-edged, but also massively pervasive. Nearly every source code repo for UNIX/Linux/FLOSS programs has at least one shell script in it, no matter what the majority language in use for that program.
By virtue of including LISP you've kinda included OCaml by the way, kinda, by way of ML; also you've kinda included Scheme and I guess LOGO as I say, if you really squint.
Also amusing that you remembered Java so late
A fun post. Thanks!
I actually thought of that! I think LOGO is the first programming language I ever used, without even knowing I was programming... But that's exactly why I mentioned Scratch and not LOGO: for some reason, I feel kids now are closer to programming with Scratch than LOGO, but maybe that's just me being old.
Historically, LISP is the most significant FP language, of course. But what's Lisp now? Isn't Haskell itself Lisp as well, in a way? Otherwise who programs in Lisp for real nowadays, except Emacs hackers? See also the curse of lisp.
It's "not a real programming language" as in "you should not write programs in it". I could also have included Perl or PHP (5?) in that category if I wanted to be even meaner. Be grateful I don't alter the list any further.
Yeah, I kind of did my best to draw broad strokes. It's why Prolog is in there at all as well, even though it's probably mostly irrelevant for most people.
Some things you just want to forget...
Thanks for the feedback!
I can't believe that you missed APL. It's important because it invented a new programming paradigm, array programming, which is still in widespread use. "Numpy" is an implementation of APL-style array programming for Python, and is widely used in data science. TensorFlow is an implementation of APL-style array programming that is the basis for most machine learning projects.
APL is still in use. Dyalog.com just released version 17.1 of their APL environment in November 2019. Dyalog APL continues to be in active development. There are plenty of APL projects on github. Co-dfns is a notable github APL project: it is an optimizing APL compiler that emits GPU code, written in 750 lines of of APL (https://github.com/Co-dfns/Co-dfns)
I can't believe you missed Smalltalk. This is the language that introduced the concept of "object oriented programming", and it also introduced the concept of the GUI, and the MVC (model view controller) framework for writing GUI code. Smalltalk is important because it is extremely influential. We still use object oriented programming, and we still use GUIs. Smalltalk continues to be used. There are multiple implementations under active development. Smalltalk continues to be at the leading edge of GUI development. A good example is the Glamorous Toolkit, a notable Smalltalk project on Github, which shows what GUIs will look like to the rest of us in another 20 years. (https://github.com/feenkcom/gtoolkit)
I don't agree that Cobol is more important than APL and Smalltalk. Cobol was not influential: it was an evolutionary dead end. Its ideas were not adopted by later programming languages.
So before someone else makes yet another "I can't believe that you missed Foo", let me say that again: I didn't miss Foo at all. This is a personal list. It's deliberately biased and will not reflect your personal view of computing history. It's my list.
You can safely assume that I am aware of the multitude of program languages there are out there.
I particularly don't miss APL. This is the Game of Life in APL, according to Wikipedia:
I don't think that's a reasonable syntax for a high-level, human programming language. Now maybe Wikipedia screwed up and there's this delicisiously beautiful modern implementation of APL still in use. But Numpy, Python, and Tensorflow, they are not APL. They are derived from APL.
And yes, COBOL is an evolutionary dead-end. But we just so happen to still be in that dead-end. Fortran is also still in use, and is causing similar programmers for new developers that have grown up with languages that are easier to use. That's the reason they are here: they're still there. Remember that I wrote this because I was researching what environment the governemnt of Canada was still using after 60 years. Do you think that's APL? Or COBOL? Or Fortran?
In other words, this is not "the genealogy of programming languages". I wanted to take a new approach and look at living languages and how they reflect the culture of the corporations that rule the world right now.
If you're looking for your favorite language here and missing it, you're missing the point.
(Although I am kind of sorry about Smalltalk, I must admit. It's welcome to have tea at my house at any time, of course.)
So you think that SQL was founded by Oracle?
Certainly, I must congratulate Oracle on their successful marketing.
"SQL was initially developed at IBM by Donald D. Chamberlin and Raymond F. Boyce after learning about the relational model from Ted Codd in the early 1970s." https://en.wikipedia.org/wiki/SQL#History
DB2 (on mainframes) is the original. Oracle is a clone.
... a very successful "clone." Oracle pretty much dominates the marketplace.
Had to look it up. If you've read
GEB
by Douglas Hofstadter, you might remember typogenetics.As a kid, I had a book (which I just tried to track down, failed) "Babel 1000 computer languages" or something to that effect. It sure opened my eyes early!
Thank you for your article!
Another language, that spawned a whole new paradigm, is FORTH. It is, to date, not very well known, but is a cool language nonetheless. The Thinking Forth book on it is pretty cool.