
Throughout the history of computers, countless programming languages have been developed. While some have endured, others quickly became obsolete. This has led me to question why languages like Fortran, which is over 60 years old, have stood the test of time, while newer and more advanced languages have faded away. In my opinion, a programming language’s survival depends on four key factors: its niche, relevance, popularity, and accessibility.
The niche
Programming languages that have stood the test of time often have a specific area in which they excel. This is true for both languages and the technologies that support them. Fortran is a prime example of a language that has survived due to its specialization in computationally intensive applications in science and engineering. This has made it a popular choice among major tech players like IBM and Oracle. C, which is over 50 years old, has found its niche in general computing, system computing, and embedded systems. Ada, which is 40 years old and unknown to many, is widely used in the defence and aerospace sectors.
Relevance
The relevance of a programming language is not solely determined by its niche. Factors like advancements in hardware technology and new programming paradigms can also influence a language’s relevance. To stay current, languages like Fortran, C, and Ada have undergone multiple revisions over the years. Just like spoken languages, relevant programming languages will evolve. Therefore, a language, its syntax, and its implementations need to be well-maintained and adaptable to the changing times. Accessibility The more accessible a language is to a wider audience the more influence Today, most popular programming languages are easily accessible for download and use, unlike in the past when it was a privilege to learn a new language. Back in the early 2000s, purchasing compilers, IDEs, libraries, and licenses for programming languages was common, making it an expensive venture for novice programmers. Fortunately, computing has become more affordable, and one can learn to program on a small and inexpensive computer like a Raspberry PI, with many freely available IDEs and software development tools. Even though there are still some costs associated with obtaining licenses and subscriptions to use certain programming languages, these expenses are typically only necessary when developing software in highly specialized circumstances. However, programming languages must remain accessible to stay relevant in today’s world. Ideally, popular programming languages should be freely available to users.
Popularity
The popularity of a programming language is influenced by the three factors previously stated: Firstly, popular languages are typically used in a particular area of development and appeal to a specific group of developers. Additionally, a language’s relevance and performance in that particular niche can also contribute to its popularity. Finally, the accessibility of a language can play a significant role in its rise in popularity. Even programming languages with initially flawed concepts can become popular if they meet certain conditions. For instance, JavaScript, also known as ECMAScript, gained popularity despite its initial shortcomings because it filled a unique niche, had minimal competition, and was widely available across numerous devices. Today, JS’s popularity can be attributed to its longstanding use in front-end web development. How they die or are banished into obscurity Fundamentally, lacking any of the four key factors mentioned could cause the death of a language.
Language Death
Death by niche
Programming languages can become obsolete due to niche markets disappearing. This is typically caused by technological advancements. When a niche market disappears, the programming language associated with it is likely to become obsolete as well. An example of a language that is currently at risk is Adobe’s ActionScript. This language was created for scripting Adobe Flash applications and animations but has lost support due to HTML5’s canvas animations, which use JavaScript. The future of ActionScript looks bleak. Another way for a language to become extinct is through competition with other languages. An example of this is Visual Basic (VB), a scripting language used for developing Windows applications. VB had a short but popular seven-year lifespan. However, it was eventually replaced by Visual Basic .NET due to its lack of compatibility with the .NET framework, which Microsoft saw as the future. VB .NET was created to help developers transition to .NET, even though it is syntactically similar to VB, it is also fundamentally different.
Death by unavailability
Throughout the history of programming languages, it has been common for a language to become obsolete if it is not accessible to a wider community. Usually, large enterprise organizations develop languages, which can be costly. To recuperate the expense, businesses sometimes propose selling their language to a broader audience. Depending on how this is achieved, it can either make or break the longevity of language. If the programming language and accompanying technology are accessible to a larger community, it has a better chance of surviving and gaining popularity.
Death by irrelevance
Over time, languages can lose their relevance for various reasons. This can be due to neglect by language authorities or competition from newer, more relevant languages. Usually, there is some governance issue involved when a language becomes irrelevant.
Considering some languages
Go lang
- Niche: while it can be used as a general-purpose language, the language, brought to us by Google is specialized in developing software services for cloud-based computing and distributed systems.
- Availability: Freely available
- Popularity: Go programming language has gained popularity among users due to its ability to promote faster software development without worrying about garbage collection. Despite similarities with Java, Go has a well-defined niche and offers comparable performance. Additionally, technologies like Docker have enabled Go programs to be easily deployed.
- Future: Overall, Go has a bright future ahead due to its relevance, availability, and popularity.
Java
- Niche: Android and enterprise services provide cross-platform applications by utilizing a JVM.
- Relevance: Java is a highly popular programming language that has been widely used for many years. Its popularity was mainly due to its exclusive use in developing applications for Android devices and its ability to work across different platforms. However, its popularity has declined in recent years as Android is now promoting Kotlin as the preferred language for app development. Despite this, Java remains a dominant force in enterprise systems and back-end services and will continue to be relevant for many years to come when there is a need to maintain Java legacy systems.
- Availability: Propriety and Open source development tools are available.
- Popularity: Popular by default, as it used to hold a monopoly in its niche.
- Future: While I have a biased opinion against Java, I believe that the JVM (Java Virtual Machine) is a valuable innovation. Although the Java language may eventually fade away, the JVM will continue to be relevant. Companies like IBM are consistently updating their JVMs, and there is a trend of allowing other programming languages to run on the JVM, such as Groovy and Scala.
Python
- Niche: Python is a versatile scripting language that works on any platform and has access to a wide range of modules. It has earned the reputation of being a Swiss army knife in the programming world over the last 20 years. Its popularity has grown in fields such as data analysis, research, business, and server-side scripting. Python stands out for its ability to handle multiple tasks, making it a jack-of-all-trades language.
- Relevance: It has been open-source and community-driven since its inception.
- Available: free to download install and run.
- Popularity: Continuous community involvement has played a big role in keeping the programming language relevant, resulting in its increasing popularity, particularly in the early 2010s. Although Python may not perform as well as Java or C++ due to being an interpreted language, its shallow learning curve, adaptability, and popularity compensate for this. In fact, for most projects, Python’s performance is sufficient.
- Future: With the increasing speed of computer hardware, the argument against using Python solely based on performance is becoming less valid. In my opinion, as long as there is a demand for a reliable scripting language and the Python community continues to provide strong support, the language will remain relevant for years to come. However, it is important to note that Python does have a drawback in the form of the vast number of available modules. It’s important to consider the idea of dependency rot. Which is when outdated dependencies can expose programs to security risks and bugs.
Final thought
Fundamentally, questioning how much life a programming language has left in it is a primary concern of not only software developers but also businesses. That is, there is a need to ensure the technologies used today remain relevant for tomorrow within their respective niche. And if we can foresee the potential decline of a particular piece of technology, this provides us with foresight, allowing us to maintain a competitive advantage.
Revised: 2nd May 2023