your123 - stock.adobe.com
10 dying or 'dead' programming languages
In a rapidly evolving landscape, these 10 programming languages are becoming increasingly obscure. Learn how programming languages die despite their former prominence.
Just as some spoken languages have faded into history, programming languages also face the risk of obsolescence and extinction.
But what is a dead programming language, and how does it die? Is it worthwhile to sharpen skills in a dead or dying language to potentially carve out a unique brand of expertise? As tech demands evolve and new languages emerge, consider 10 once-prominent programming languages and decide if their uncertain future is enough of a reason to abandon interest in them.
What is a 'dead' programming language?
In the context of this article, "dead" programming languages are those that are no longer in widespread use -- even if they remain important to some developers.
Take Latin, a natural language often described as dead. Plenty of people still speak, read and write Latin. It's not strictly dead, but it's much less important than it was in ancient Rome, where it was the everyday language of the people.
A programming language could count as dead even if it's actively maintained and there are millions of lines of the language's code out in the wild. There will be plenty of legacy codebases written in these dead programming languages and a need for developers to understand and maintain them. For example, Common Business-Oriented Language, or COBOL, sits at the heart of many enterprise software systems, including 90% of Fortune 500 companies. "Dead" does not mean that these languages will disappear entirely, but that they've experienced or are currently undergoing a decline in adoption and acclaim relative to the prominence they once enjoyed.
How does a programming language die?
Programming languages might trend toward comparative obsolescence for myriad reasons. Common causes for a programming language to "die" include the following:
- Abandonment of the language by the project that developed and maintained it. In this case, languages become risky to use because they might face performance or security bugs that no one will fix as there are no maintainers left.
- Discontinuation of tools associated with the language, such as compilers or testing software, even if the language itself remains actively maintained. If it becomes harder to work with a language, developers are likely to stop using it.
- The sense that a language is just harder to use than it needs to be, or more developer-friendly languages have become available.
- The impossibility or difficulty of using a programming language to develop code for a certain type of platform or environment. For instance, while being able to write apps for mobile devices was not very important before the smartphone age, it is today, and languages that lack good mobile support or frameworks are likely to wane in popularity.
10 dying or dead programming languages
To illustrate what a dead language looks like, here is an assessment of 10 once-popular languages that are arguably on their way out.
These selections are listed alphabetically and draw on data from sources that track the popularity of various programming languages, including the TIOBE Index and Stack Overflow developer survey. Changing software development trends and business priorities -- such as the need to support new types of platforms or novel priorities -- impact and inform the long-term outlook for these languages.
Again, the languages are not dead in the sense that no one is using them or that no one should learn them, but their most popular days are in the past. Without a specific reason to code in these languages, mastering them might not be the best use of time.
Assembly language
Assembly language isn't a specific language; it's any type of low-level programming language, like x86 or ARM, designed to communicate directly with computer hardware -- a feature that distinguishes assembly code from high-level languages. High-level language code is usually easier to write and must be compiled before it can run.
Historically, assembly language was valuable because it provided more control over how a computer operated. This capability could lead to better performance as developers can optimize assembly code in ways that are not always possible when using high-level code. Because high-level code needs to be translated by compilers, behavior at runtime can be harder to manage.
There remain use cases for assembly, such as writing software for IoT devices where performance optimization is a priority due to minimal hardware resources. But in general, assembly is no longer useful for modern software development needs.
Erlang
Erlang first gained notoriety in the mid-to-late 1980s and was released to the open source community in 1998. It's a well-respected and battle-tested programming language known for its resiliency, reliability and concurrency. Erlang gained considerable favor among developers for its ability to field enormous numbers of simultaneous requests, support parallel processing and perform comprehensive garbage collection. As such, it became a basis for many online messaging apps and financial systems that process thousands of transactions per day.
Despite its long history, Erlang never gained a large following of users -- it isn't even featured on the TIOBE Index of the top 50 languages. Unfortunately, the language shows its age when it comes to tasks like debugging and code maintenance, especially for novice developers. Newer concurrent languages, such as Elixir, make a point to simplify these tasks through static typing and data immutability. Because of that, there are a lot of developers who might wince at the complexity of its syntax and the conspicuous absence of accessible feature libraries.
Although Erlang will certainly remain in use by dedicated devotees long into the future -- particularly for large, highly transactional systems -- its colloquial heyday might have passed.
Haskell
Haskell is a legacy language that never seemed to attain the strong user community needed to ensure long-term adoption and success. Like Erlang, its main detractor is its complexity. While its refined, expressive syntax and rich collection of data types certainly make it a powerful language for functional programming, these qualities also make coding (and learning to code) in Haskell a somewhat formidable endeavor.
Despite its impressive technical capacities, a tough learning curve might be enough to ward off newer developers. There is a dedicated, small community surrounding Haskell today, keeping it from becoming a truly dead programming language. While it won't disappear for a while, don't bank on it ever gaining the influence its designers envisioned when they introduced it in the early '90s.
Objective-C
A decade ago, it would have been surprising to suggest that Objective-C was marching toward oblivion. Taking an object-oriented approach to C-based programming was an essential part of the Apple ecosystem (and, eventually, the company NeXT), where it served as a backbone of macOS and iOS programming.
However, this dynamic changed when Apple introduced Swift in 2014 in order to feed market demand for server-side and cross-platform app development. As of summer 2024, Objective-C ranks 33rd on the TIOBE Index, and Swift ranks 16th. What's more: Stack Overflow's "2024 Developer Survey" found that only 1.2% of respondents had used Objective-C in the past year.
The good news for fans of this language -- which is still perfectly usable for modern development -- is that it's unlikely to disappear anytime soon. Large numbers of macOS and iOS applications are written in Objective-C and converting them to Swift is not necessarily easy because conversion tools designed for this process don't always generate perfect results. Still, Objective-C is unlikely to be the go-to language for burgeoning macOS and iOS developers in the coming years.
Pascal
The Pascal language, released in 1970, emphasizes concise, well-structured code -- qualities that helped make it a massively popular language for microcomputers in the '70s and '80s.
Since then, however, the language's popularity has waned substantially. Delphi, a Pascal implementation, currently ranks just outside the top 10 on the TIOBE Index. Still, it would be a stretch to say that Pascal is an essential language for today's desktop computers.
The major reason for Pascal's demise was the rise of interest in Unix-like operating systems starting in the '90s. Although Pascal can certainly work on Unix-like systems, it wasn't a native part of that Unix ecosystem, which led to it being pushed out by other languages like C and C++, which were more popular in the Unix world from the start.
Perl
Perl was conceived in the '80s as a scripting language designed for Unix system administration tasks and subsequently gained popularity as a general-purpose programming language. It remains important in areas like data science and analytics but isn't widely used overall. The language hovers outside the top 20 on the TIOBE Index and commands much less mindshare now than it did a decade ago.
The release of Raku in 2019 -- a Perl spinoff designed by the language's creator, Larry Wall -- profoundly undercut community enthusiasm for Perl. Plans for future version releases counter the argument that Perl is already an outdated programming language, but it's quickly turning into one that might find itself confined to legacy codebases.
PHP
When it appeared in 1995, PHP was a huge deal because it helped programmers create interactive webpages. PHP does this by allowing developers to write scripts that dynamically alter the appearance of HTML content, making it possible to create things like forms and buttons.
PHP remains important today, and there are still plenty of big-name platforms that are written primarily in PHP, like MediaWiki, the software that powers Wikipedia, and WordPress. However, PHP suffers from issues like verbose code, relatively slow performance and a lack of effective security features.
'Pure' JavaScript
It might seem strange to call JavaScript, the client-side scripting language that you can find on virtually every webpage you open today, a dead language.
But if you're talking about "pure" JavaScript -- meaning JavaScript in its raw form, as opposed to a JavaScript-based framework like React or AngularJS -- a case could be made that JavaScript is at least dying, albeit not dead. That's because a lot of JavaScript programming today involves using a specific JavaScript framework tailored to a particular use case.
JavaScript itself might not be going anywhere anytime soon, but "pure" JavaScript programmers might find themselves obsolete compared to coders who specialize in a specific JavaScript framework.
Ruby
Ruby is known for its clean syntax and simple, readable structure. You might think these qualities would make Ruby very popular among today's programmers. Although Ruby remains widely used, its following has grown smaller since it peaked in the late-2000s. Arguably, the main factor in Ruby's decline was the surging popularity of Python. Python is like Ruby in many ways -- they're both interpreted and offer clean, easy-to-learn syntax -- but it steadily gained popularity over time, to the point that it began to crowd out Ruby starting in the mid-2010s.
Ruby remains important in commercial development, and one 2023 study found that Ruby developers rank 6th on the list of highest-paid programmers. The TIOBE Index places it in the top 20, which hardly means it has dropped off the map. Still, there is little reason to expect that Ruby will ever regain the popularity it once experienced.
Visual Basic
If you learned to code in the '90s, there's a good chance that Visual Basic (VB) was the first language you tinkered with. Developed to be an easy-to-learn and easy-to-use language, VB has been a longstanding, bread-and-butter language for Windows-based development.
It's fair to say VB, whose code tends to be verbose and haphazardly structured, isn't the most elegant of languages. Nor is it a suitable language for complex, enterprise-scale coding projects. However, when you need a simple way to build a program, VB gets the job done. Despite the enthusiasm of VB's fans, Microsoft has been trying to kill the language for years, presumably in order to push developers toward the more web-centric .NET framework. Microsoft declared VB a legacy language more than a decade ago.
Despite this, the .NET-oriented version of VB currently ranks 8th on the TIOBE Index. TIOBE separately ranks other variants of VB, all of which appear considerably lower on the list. A combination of Microsoft's waning support and limited exposure to up-and-coming programming students doesn't bode well for the language. Despite its strong community and a curious spike in popularity at the moment, VB makes the list of languages that might gradually sink into history.
Editor's note: This article was originally published in 2021 and was updated in 2024 to reflect updates from data sources, expand the list of languages and improve reader experience.
Chris Tozzi is a freelance writer, research adviser, and professor of IT and society who has previously worked as a journalist and Linux systems administrator.