Some programming languages take a long time to die. Companies and institutions are often unwilling to devote the time and resources necessary to rewrite mission-critical software in a newer language, which is why you sometimes see important systems running decades-old code. For example, there’s Ada, an object-oriented high-level language developed forty years ago that’s still used for safety-critical systems such as air-traffic control and rail transport.

Nonetheless, given enough time, most languages will fade away, replaced by something more efficient (or at least more heavily promoted). Here are five that seem to be on the downslope:

Objective-C

Apple would really like it if you stopped using Objective-C, its aging language for iOS and macOS. In June 2014, the tech giant rolled out Swift, a substitute language for building apps for those platforms, and began prodding developers to move to it.

Although many of those developers embraced Swift in short order, Objective-C has a massive legacy thanks to all the iPhone, iPad, and Mac apps out there. And because of that, it’s unlikely the language will die anytime soon, no matter how much Apple prods its creators to move on. That being said, Objective-C has tumbled like a stone in the TIOBE rankings over the past year—a trend that will certainly continue.

Perl

First developed in the late 1980s as a supple tool for Unix scripting, Perl saw its stature rise over the next 20 years, used in everything from CGI scripting to network programming. By the turn of the century, though, development had stalled. Some sixteen years after it was first announced, Perl 6 is still under development, although Perl 5 continues to receive updates.

The absence of Perl 6 aside (It’ll arrive someday! Maybe!), developers continue to use Perl, claiming that it’s efficient and portable despite some annoyances. But other programming languages have seized the spotlight in the interim, and it’s an open question whether Perl will see some sort of renaissance.

Visual Basic.NET

Visual Basic.NET (not to be confused with Visual Basic, its predecessor) is a key language for building Windows apps, although Microsoft has evolved the accompanying Visual Studio into a cross-platform IDE that also supports iOS and Android apps.

Visual Basic.NET has some fierce competition for developer attention in the form of C#, a language very similar to Java that was developed by Anders Hejlsberg, who also created Borland Delphi. For years, developers have loved using C# for building Windows apps, which is why the language sits unmoving near the top of the TIOBE rankings.

If that competition from C# wasn’t enough pressure, Visual Basic.NET also sits on the wrong side of a massive paradigm shift. Whereas the PC dominated the tech industry for many decades, smartphones and tablets have become the center of many folks’ digital lives—which means that Android and iOS are dominant platforms in developers’ minds (and workflows).

If Windows loses too much market-share to these alternative platforms, you could see usage of Visual Basic.NET erode—especially if C# remains strong.

LISP

Back in 1987, Lisp held second place in TIOBE’s rankings. Thirty years later, it sits in thirtieth place. Although it has produced a number of well-known dialects, most notably Clojure, Lisp’s current usage is largely restricted to artificial-intelligence researchers.

While Lisp’s usefulness to the A.I. community guarantees that the language will hang around a little longer, it’s thoroughly niche at this point—and at risk of fading even more if A.I. researchers decide to rely on something else. But even if that happens, Lisp has enjoyed a great run for a language first created in 1958.

COBOL

COBOL is the very definition of a legacy language. Although once widespread within the enterprise, its usage has declined as corporations have gradually migrated to newer languages and platforms. These days, COBOL usage is largely tied to the maintenance of legacy systems.