← Previous · All Episodes · Next →
What Languages Fix - The Problems Solved by Programming Languages Episode 188

What Languages Fix - The Problems Solved by Programming Languages

· 02:40

"This article written by Paul Graham in 2002 serves as a guide for those curious about which problem each programming language solves. Graham explains what needs different programming languages were created to meet or what problems to solve, and he also reveals the advantages and disadvantages of these languages against each other. This article is quite enlightening for those who want to better understand the relationship between programming languages.


# What Languages Fix (The Problems Solved by Programming Languages)

February 2002

Kevin Kelleher suggested an interesting way to compare programming languages: to describe each in terms of the problem it fixes. The surprising thing is how many, and how well, languages can be described this way.

**Algol**: Assembly language is too low-level.

**Pascal**: Algol doesn't have enough data types.

**Modula**: Pascal is too wimpy for systems programming.

**Simula**: Algol isn't good enough at simulations.

**Smalltalk**: Not everything in Simula is an object.

**Fortran**: Assembly language is too low-level.

**Cobol**: Fortran is scary.

**PL/1**: Fortran doesn't have enough data types.

**Ada**: Every existing language is missing something.

**Basic**: Fortran is scary.

**APL**: Fortran isn't good enough at manipulating arrays.

**J**: APL requires its own character set.

**C**: Assembly language is too low-level.

**C++**: C is too low-level.

**Java**: C++ is a kludge. And Microsoft is going to crush us.

**C**: Java is controlled by Sun.

**Lisp**: Turing Machines are an awkward way to describe computation.

**Scheme**: MacLisp is a kludge.

**T**: Scheme has no libraries.

**Common Lisp**: There are too many dialects of Lisp.

**Dylan**: Scheme has no libraries, and Lisp syntax is scary.

**Perl**: Shell scripts/awk/sed are not enough like programming languages.

**Python**: Perl is a kludge.

**Ruby**: Perl is a kludge, and Lisp syntax is scary.

**Prolog**: Programming is not enough like logic.


Relevant Keywords: comparison of programming languages, problems solved by programming languages, evolution of programming languages, Algol, Pascal, Modula, Simula, Smalltalk, Fortran, Cobol, PL/1, Ada, Basic, APL, J, C, C++, Java, Lisp, Scheme, T, Common Lisp, Dylan, Perl, Python, Ruby, Prolog, programming language fixes."


Listen to Yigit Konur's Curation using one of many popular podcasting apps or directories.

Spotify Pocket Casts Amazon Music YouTube
← Previous · All Episodes · Next →