The next generation

Classes of programming languages

Raymond Meester
4 min readNov 3, 2022

In honor of Kathleen Booth, inventor of the Assembly language

In the early days of computing, it happened that programmers wrote directly in machine code. It’s hard to imagine, but sometimes this was the only way to program. Quickly, they switched to assembly languages. Programming using assemblers is also difficult, but at least you have symbolic names for operators rather than just numbers.

Generations

From the very beginning of computing, there also have been higher-level programming languages. For example, Plankalkül (Developed in the early forties by Konrad Zuse and published in 1948). Plankalkül is a so-called third generation language.

Here is an example of a program written in PlanKalkül:

P1 max3 (V0[:8.1],V1[:8.2],V2[:8.1]) => R0[:8.1]
max(V0[:8.5],V1[:8.4]) => Z1[:8.3]
max(Z1[:8.6],V2[:8.2]) => R0[:8.2]
END
P2 max (V0[:8.6],V1[:8.3]) => R0[:8.1]
V0[:8.0] => Z1[:8.4]
(Z1[:8.0] < V1[:8.3]) -> V1[:8.2] => Z1[:8.1]
Z1[:8.3] => R0[:8.2]
END

Generations

There are 5 generations of programming languages, namely:

First generation: Machine code

Second generation: Assemblers

Third generation: Machine-independent and more programmer-friendly languages (C, Java, Python)

Fourth generation: Higher-asbtraction languages (for example Progress 4GL and SQL)

Fifth generation: AI languages

The term generations is here somewhat confusing. The term generation seems to imply that they followed each other, thus in the first decades of computing there were machine code languages, then assemblers, then the third generation came along and so on. However, this is not true, they were all developed more or less at the same time.

It would be better to speak of five classes of programming languages than of five generations.

I don’t know if there are still people writing directly in machine code (outside self-abuse) the other types still co-exist next to each other. Assemblers for example are close to machine code and are thus fast and optimized for a specific architecture. They are used in bootloaders, games and OS kernels.

The third generation

By far the most computer programs were and are written in third generational languages. But even among these languages, there are different levels of abstraction. For example, C was considered high-level when it arrived in 1972 (compared to for example Fortran). Later, Java (1995) was considered more high-level than C and Kotlin (2011) more high-level than Java. And so on.

One could put most visual languages, flow languages and lots of other domain-specific languages in the class of the fourth-generation languages. They just have a higher-abstraction level, but they can be more limited because they are often only applied to a certain domain.

Note that unlike third-level programming languages, fourth-generational languages are regularly not open source. Think of Progress 4GL or Mendix Microflows. That limits its widespread use. Even SQL which is relative open and widespread has multiple dialects and differs between databases.

The fifth generation, AI programming, is a class of programming languages still in early development. On the other hand, some consider Prolog, a fifty years old language, as one of the first languages in this area as it's used and associated with artificial intelligence.

Nowadays, we see a shift that the AI programs acts as a sort of compiler. Thus, you discuss with an AI chatbot and the program is generated from that conversation. And the AI may even ask questions back to find out what you really want…

Fifth generation languages are still in its early stages, as mostly they don’t understand the developer's intent and produce faulty and insecure code.

From intent to solution

To summarize, each generation of programming languages shortens the process to come from intent to a solution.

The speed of development however comes at the cost of the speed of running the program. Also, it often less flexible, because you have less steps to put your intent. That’s why every generation has its place.

A last, a bit more philosophical note. One could say that the generation, after the fifth, is when there is no distinction between intent and program anymore. That’s when we all have chips in our brains and become cyborgs. We are the program, so to say.

Scene from the Matrix

--

--