This is part II of our three-part series: Programming Languages: the Good, The Bad & The Ugly. For Part I on good programming languages, check out our previous blog post.
First up, let’s define bad programming languages. To understand why a programming language is considered bad, one of the things to look at is its syntax. Syntax describes which strings of characters comprise a valid program. Sounds quite complicated. Put simply, the syntax describes the rules the code has to follow in order to be valid. When compared to spoken languages, the syntax is a little bit like grammar. In order to communicate effectively, you have to get your punctuation right. The same is true for code: in order to program effectively, you have to get your syntax right.
Different programming languages use different syntaxes. For a really great snapshot of what this looks like, check out this comparison of how many lines of code it takes to write “Hello World” in any given programming language.
But enough in terms of introduction. Let’s see which programming languages are the most dreaded.
According to StackOverflow’s 2021 Developer Survey, COBOL is the most dreaded programming language. VBA and Matlab follow closely. For all three languages, more than 78% of developers say they dread them. Let’s find out why this is the case. Here’s how to write a “Hello World” program using COBOL:
For comparison, here’s how to achieve the same in Python:
To be fair, COBOL is a relatively old programming language. It first appeared in 1959. Python, on the other hand, was created in the 1990s, with three decades of extra knowledge.
What does the example above illustrate? A good programming language has easy, English-like syntax, making it easy to read, write and understand. Vice versa, a bad programming language is just the opposite. COBOL is considered wordy and cluttered.
Even though we singled out COBOL as an example of a bad programming language, it does have its applications and some systems that are still in use, especially at government organizations or banks, were written in COBOL. In the 1970s, COBOL was in fact the most widely used programming language in the world.
Syntax apart, COBOL and other older languages are simply reaching their limitations. Applications are more complex than what can be achieved with newer languages. There’s also the problem of finding developers who know how to write older languages. According to IBM, the average age of a COBOL programmer is 58 and around 10% of them retire every year. This creates big problems for companies that rely on applications written in COBOL, as few developers know how to maintain them.
So, to be fair, it’s not so much that these programming languages are bad. Just on the contrary: they more than served their purpose and their longevity is a testament to their usefulness. Instead, software engineering has moved on: the pace of innovation in software and its underlying languages is incredibly fast. And that’s where older languages gradually get replaced with newer, easier languages that are more popular, more in demand, and more useful.