We can start off by defining what a programming language is. A programming language is simply a computer-based program that is used to develop computer software or computer programs (or applications). Programming languages are so many and are constituted differently. Some of them are extremely complex whilst some have resemblances to English thus making them easy to understand and use. Remember that using computers is all about handling data and information. The efficient execution of all that relies on having well-written computer applications or software for such processes. That is why programming languages exist i.e. to be used to develop computer applications or software. In this article we shall be navigating through history by looking at generations of programming languages ie how they have evolved over time.


An Overview Of What A Programming Language Is

Programming languages differ in so many ways but there are constants in each. Each and every programming language has, on average, 5 components to it. Those 5 components are Input, Output, Arithmetic, Conditions and Loops. If you have ever used any programming language before you would be familiar with this. Of course not all programming languages have all 5 – two or more can be found in a programming language. Some quick examples of programming languages are C, Python and Microsoft Visual Basic.


First Generation Programming Languages – 1GL

The first generation of programming languages were the first ever programming languages to be in existence. They were also popularly known as low level programming languages. First generation programming languages were meant for programming computers at their most basic level i.e. machine level. You are probably aware of the fact that computers only understand binary language – zeros (0) and ones (1). First generation languages entailed programming or coding using binary i.e. zeros and ones. Apparently you can see how tedious and very complex this must have been.


As much as first generation languages meant a lot of time and effort to code they did have certain benefits. The most outstanding benefit was that of smooth and swift execution. What happens with programming languages is that after coding you have to execute or run the code for it to do what you have programmed it to do. Thus in the case of first generation languages, code could be quickly and directly executed which meant programs would execute quite swiftly.


Second Generation Programming Languages – 2GL

Again with second generation programming languages, the label low level language still applied. However, these programming languages are popularly known as assembly languages. The key difference between 1GL and 2GL is that 2GL employs the use of mnemonics when coding. Let us define what a mnemonic is so that you get the sense of what we mean here. Mnemonics is the study and development of systems for improving and assisting the memory.


Thus in this programming languages context, a mnemonic is a symbolic name denoting an executable machine language instruction. As is apparent, second generation languages are much easier to code (especially in comparison to 1GL). The incidence of mistakes in the coding process is significantly less also. The mnemonic approach contributes to less space used by the code thus speeding up program execution also.


Third Generation Programming Languages – 3GL

Given that the preceding generations i.e. 1GL and 2GL, were riddled with some limitations, improvements had to be made. Pursuant of that, third generation programming languages were born. Third generation do not fall under the class of low level languages. Rather, they are referred to as high level languages. With third generation programming languages coding does not involve a direct handling of machine level language. This makes them a bit less complex to work with. The content of the programming languages is much easier to understand. Ultimately, this also makes coding less laborious and time consuming. Some quick examples of third generation programming languages are C, C++, C#, Java, BASIC and Pascal.


Fourth Generation Languages – 4GL

These are synonymously known as very high level languages. Fourth generation programming languages are significantly easier to understand and use. This is because code can actually be written in statements that resemble English. When working with a 4GL you key focus is on instructing the computer on what to do. This is why fourth generation programming languages are characterised as non-procedural. This culminates in very small chunks of code being written.


It is worth noting that the categorization of 4GLs is not clear-cut. You will find that some people classify all programming languages used in artificial intelligence (AI) as 4GL. Interestingly, some insist that programming languages used in that field of AI are actually 5GLs. This probably stems from the fact that fourth generation languages are still going through transformations. An example of a 4GL is SQL – standard query language. Other examples of fourth generation languages include FOCUS, Unix Shell, LINC and AMPL.


Fifth Generation Languages – 5GL

Fifth generation programming languages are commonly used in fields such as artificial intelligence (AI). Such fields entail core processes like machine learning, and deep learning, just to mention a few. Fifth generation programming languages are quite interesting in how they function. Normally (like for other programming languages) when coding you come up with an algorithm that instructs the computer on what to do.


With 5GL it is different, you avail a set of constraints to the program so that it figures out what to do. 5GLs involve the use of natural language input from which they then figure out or learn patterns by themselves. 5GLs are well suited for use in decision support applications because they can employ principles of logic-based reasoning. OPS5 is a common example of a fifth generation language.


That is about it for generations of programming languages. Though it might seem that 5GLs are the epitome of programming languages, things might change going forward. The evolution of programming languages is so rapid that even more sophisticated programming languages might emerge in the near future.