5 Programming Languages Marked for Death

Update: So how did we do with these predictions? Check out our March 2016 article that breaks down which of the following languages continue to retain market-share… and which are, indeed, imploding.

As developers embrace new programming languages, older languages can go one of two ways: stay in use, despite fading popularity, or die out completely. We predict the following languages will likely die:


There was a time when everyone seemingly programmed in Perl. But for those of us who used the language regularly, there was something about it that didn’t seem right. One programmer I knew called it a “piecemeal” language, because it seemed as if the creators had just piled features on top of features without giving much thought as to how everything fit together.

Click here to find programming jobs.

Indeed, even its creators seemed to (implicitly) acknowledge that something was wrong, kicking off work on Perl6, currently under development as a complete revamp of the language. Work on Perl6 started in… the year 2000. Where is it? Who cares? Perl is dead. Don’t bother learning it. Incidentally, here’s a “Goodbye World!” written in Perl:


print “Content-type: text/html\n\n”;

print “Goodbye, world!\n”;

This example (derived from http://www.lies.com/begperl/hello_cgi.html) produces a Web page. Perl, which works as a CGI scripting language, found its most popular use in generating Web pages. The language had its day—but now is as good a time as any to ditch Perl and embrace the 21st century.

Upload Your ResumeEmployers want candidates like you. Upload your resume. Show them you’re awesome.


Just ten years ago, Ruby was all the rage. Invented in 1995, the unique language hit its stride by the mid-aughts. People who use Ruby on a regular basis absolutely love it. But those of us who grew up with C-style languages tend to have a little trouble learning its ropes.

Here’s a simple “Goodbye World!” in Ruby:

puts ‘Bye bye, Miss American Ruby! Drove my Chevy to the Levie…’

puts ‘2011 was the day that Ruby died, yeah…’

And here’s a more complex example that calculates a factorial, found here:

def fact(n)

  if n == 0



    n * fact(n-1)



puts fact(ARGV[0].to_i)

I tested this out to find the factorial of 1000. Here’s part of the response; I deleted the middle of the 2569 digits to save space:

ruby fact.rb 1000


By all accounts, it’s a cool language and everybody has good things to say about it… except Twitter. In April 2011, Twitter announced that they had rewritten much of their code in order to move away from Ruby and its popular Web framework, Ruby on Rails, claiming the platforms were inefficient. That, I would argue, was the day Ruby started to die; over the past three and a half years, interest has begun to wane. If you love Ruby, you can thank Twitter for its demise.

Visual Basic.NET

Ten years ago, I landed a job rewriting massive amounts of code for a company that shall go nameless, converting from VB6 to Visual basic.NET. I only lasted a couple months before I bailed: It was an excruciating task.

Microsoft’s long love of the BASIC programming language extends all the way back to 1991, when the company purchased a pretty awesome (for its time) visual programming designer from Alan Cooper. He originally used a different language, but Bill Gates told him to replace the language with BASIC, which he felt was the easiest language in use at the time. For most of the 1990s, we got to see this new breed of BASIC, dubbed Visual Basic, grow to include objects and other newer programming techniques.

Then something interesting happened. The guy who headed up the creation of Borland Delphi, Anders Hejlsberg, moved over to Microsoft and headed up the creation of a new language called C#. This language was very similar to Java. It took a while for people to start using it, but once they did, they loved it. C# soon became Microsoft’s flagship programming language. To this day, there are many, many C# jobs, and C# programmers command high salaries.

While Microsoft created C# to target its own CLR runtime, its engineers also created a version of Gates’ beloved BASIC language, named it Visual Basic.NET. The language still bore the syntax of BASIC, but the coding approach was similar to that of C#. Both languages moved forward, but it was inevitable that the world would embrace one (C#) at the expense of the other. That’s why Visual Basic.NET has been reduced to C#’s little stepbrother in hospice care.

Here’s a Visual Basic.NET program from Microsoft’s website:

‘ Allow easy reference to the System namespace classes.

Imports System

‘ This module houses the application’s entry point.

Public Module modmain

   ‘ Main is the application’s entry point.

   Sub Main()

     ‘ Write text to the console.

     Console.WriteLine (“Hello World using Visual Basic!”)

   End Sub

End Module

(Feel free, of course, to sub out “Hello World” for “Goodbye World.”)

Adobe Flash and AIR

Technically these are platforms, not languages. I’m including them because, in order to use them, you need Adobe’s own version of EcmaScript, called ActionScript. ActionScript is a close cousin to JavaScript, which (love it or hate it) is one of the most popular languages today due to its implementation in all browsers. ActionScript adds a few details to EcmaScript (which is the official name of the standard, of which JavaScript is an implementation); you won’t really find ActionScript anywhere except for Adobe Flash.

Do you use Flash? Steve Jobs hated how it hogged his devices’ processors, and refused to allow it onto the iPhone. As the iPhone (and subsequently the iPad) grew in popularity, Web developers found themselves forced to create websites that didn’t rely on Flash. Developers who made a living coding up ActionScript for Flash-powered sites screamed bloody murder. (I personally saw a Flash developer tell off a room of JavaScript developers for destroying his career.)

Adobe tried to keep its programming platform alive via AIR, paired with a tool for building AIR apps called Flex. AIR was, in the estimation of many, a disaster. It wasn’t clear what Adobe wanted out of the whole process; did they want people to ditch Flash and use AIR instead? Or were they expecting AIR and Flash to live on together?

For a short time it looked as if AIR would take off, thanks to its use in a popular Twitter platform called TweetDeck, which required users to install the AIR runtime on their computers. That might have opened up millions of PCs for AIR apps, except Twitter bought TweetDeck in 2011 and rewrote it using native code instead of AIR. So much for AIR.

And between the deaths of both Flash and AIR, Adobe’s ActionScript can kiss the world goodbye as well. Here’s some sample ActionScript code. (If you use the Flex command-line tools you can compile this into a Flash thingamajob that you can embed in an HTML page):

package {

import flash.display.*;

import flash.text.*;

public class HelloWorld extends Sprite {

   private var greeting:TextField = new TextField();

public function HelloWorld() {

     greeting.text = “Hello World!”;

     greeting.x = 100;

     greeting.y = 100;





(Those with programming knowledge might notice how the above looks very similar to JavaScript, both using var, function, and new, and accessing member variables with a dot.)

Delphi’s Object Pascal

With sincere apologies to my fallen Delphi comrades, I must announce the death of Object Pascal. Okay, Delphi (the tool for developing Object Pascal) actually lives on, having moved between companies (it originated with Borland, and now sits with Embarcadero).

The original Delphi and its Object Pascal language actually presented a great working environment; the language was a bit wordy, but the compiler was fast and it was much easier to create Windows programs in compared to Visual Basic (I’m talking pre-Visual Basic.NET here, around 1995).

The momentum didn’t continue. It’s hard to say just why, since the platform was really quite good. Meanwhile, Borland began supporting C# and C++ in its Delphi line of products. Long story short, Delphi was eventually sold off to Embarcadero, which continues to produce it. It’s big, and it’s sophisticated, and continues to do reasonably well—but its focus is not Pascal. Yes, you can still do Pascal programming in it, but few people do; in fact, you can use Delphi to build for many different platforms including iOS, Android, and, soon, Linux.

But if you go to the Embarcadero website, you’ll see that they mainly promote Delphi’s C++ support. So, Object Pascal is dead. I say this with sadness, as I’ve spent quite a bit of time programming in Pascal and especially Delphi’s Object Pascal. But that’s life.

Here’s some Object Pascal code:

program HelloWorld;


    writeln(‘You say goodbye.’)

Related Articles

Image: matthi/Shutterstock.com

250 Responses to “5 Programming Languages Marked for Death”

  1. I think you forgot a few:

    COBOL…or maybe that died after the Y2K fiasco wrapped up
    C++…yes, you can see the numbers dwindle and it is dying a slow, long death.
    Swift…the poor still-born child of Apple never even got out of the gate and is already losing steam–unexpected for a product coming out of Apple.

    BTW, as the old saying goes, “Reports of my death are greatly exaggerated.”
    the main one I agree with is Flash, which had become so bloated that it was a nightmare, and it seemed that most programmers of Flash had poor programming skills and didn’t understand the concept of memory management and cleaning up resources (and without a garbage-collection system in Flash, every app seemed to suck up more and more memory as it sat around…case in point, I used to play some of the Zynga games and when I’d start a game it would take up 200MB of RAM…if I went to dinner and came back it would be sucking up well over 700MB and sometimes 1GB of RAM without any interaction, and it only got worse until I had to kill the browser…I saw the same thing with so many other Flash products. Bon Voyage Flash.

    • Scott C

      COBOL won’t die. It won’t be allowed to die. It’s still used in large financial institutions. You know, the ones that are “too big to fail.”

      I agree that C++ is slowly dying. Most of the C++ jobs are being replaced with C# jobs now.

      • megalope

        I don’t agree. C++ is absolutely not dying. We get it though you two just don’t like C++ for whatever reason and just want to say it’s dying to set some kind of high school [expletive] trend. It’s awesome and allows very complex and intricate things to be called upon in few keystrokes depending on how you use it.

        • /some people just don’t understand sarcasm…did you read the comment below it?/
          Anyway, I don’t necessarily believe that any of these languages are “marked for death” although some of them are certainly losing popularity. VB will live on in VBA/macros maybe forever, although MS has been trying to figure out how to get Office to use .NET, and VB.Net is the natural choice. If they succeed, it will see a revival probably bigger than anything else in the history of programming as millions of developers migrate to it from the old VB6 language.

          • Matt, as I heard it, the problem is not with VB.Net working with Office but rather Microsoft finding a migration path for all of the existing VBA since the two languages are really quite different in how they handle things. At some point MS should just cut the cord and say they no longer support VBA from within Office and they should use .NET for all development, but then they’d have to include .NET as part of the Office suite for any macro developers. It may happen but apparently MS continues to hold off and hope the VBA dies (which looks like it won’t happen any time soon–in spite of the author’s thoughts on the subject.) VBA has been embedded in Office since at least Office 97 and really hasn’t changed much and yet still goes stronger than probably any of the other languages mentioned here (including VB.Net) since the user base is not just programmers but possibly millions of casual users who make macros in Office.

          • Rob, There is absolutely no reason for MS to pull the plug on office VBA. And I use .NET C# programs to access Excel, Word, and Outlook emails all the time. Those objects are fully open and accessible from within C# programs (and I assume VB.NET too). You can have the best of both worlds.

      • You are a genius! the main reason C++ won’t ever die is the pulse of unix and science that are based on C and C++. C# would be good for Windows apps, but will never ever replace C++.

        • One of the nice things about C++ is that it is portable – OK there are implementations of C# that work on Unix, but they will always lag the language.

          COBOL will not die anytime soon – there were comments like that when I started programming professionally 29 years ago and it has still not happened. There are just too many systems that rely on it for this to happen quickly.

          • Joseph Mitzen

            How can you say it hasn’t already happened? Languages don’t die; they become irrelevant. When’s the last time anything cool was written in COBOL? When’s the last time a startup chose COBOL for its software stack? COBOL is as irrelevant to software development today as VHS is to film distribution.There will never be more COBOL programmers than there are today; there will only be equal or less (generally less). And that’s what irrelevance and being marked for death means.

            If the only people installing/buying version Y of a language are a percentage of those who bought version X, a language is going to lapse into irrelevance. I’m 42 and (embarassingly) learned COBOL in college, primarily because the head of the computer department was an old mainframe guy with very little knowledge of PCs – and we had a VAX in the basement. Even then we made jokes about the relevance of COBOL to our future careers. Not many people my own age, much less younger, have ever seen a line of COBOL. And if they did see something like “MULTIPLY COST BY QUANTITY GIVING PRICE” they’d probably laugh. 🙂 And that’s why COBOL is marked for death; beyond the minimum absolutely necessary to maintain existing legacy code (which will also realistically shrink with time), no new COBOL programmers are going to come into existence.

          • Cobol is the life blood of millions upon millions of CICS programs in large corporate systems. NCR uses it in their inventory systems that are practically EVERYWHERE. That green CICS screen at the Costco product lookup desk…backed by COBOL. Guitar Center, COBOL.

            Being naive and unaware of something doesn’t make it EOL.

        • Joseph Mitzen

          C++ is literally designed by committee and added every feature in existence with no overall design in mind. As such, enterprises tend to agree to only use a certain percentage of its features – and no enterprises agree on which features. Consequently development time and the effort required for maintenance have risen to very high levels. Java set out to be simplified C++ but it too kept getting so bloated that frameworks arose to deal with the complexity and now there are talks to create frameworks to simplify some of those other frameworks!

          C# has had a good designer at the helm and its has managed to add a lot of smart features while not becoming unbearably complex or verbose. There is very little reason today (outside of cross-platform compatibility) to develop standard applications with C++.

          A long time ago people mocked compiled languages, saying that a computer couldn’t produce better assembly than they could and thus a compiled language was just too slow. However, computers got faster and compilers got better and now it would be considered crazy to write a whole program in assembly language; people write in higher-level languages and only step down to assembly when absolutely necesssary for small sections of code. The cycle is repeating itself and people have been mocking managed languages for the same reasons. However, they too are becoming much more advanced and we’re going to be seeing the same thing soon: people will write in very high-level languages and step down to C++ in small bits only when necessary. I’ve already seen one major article claiming that if you’re not already doing this than you’re developing software wrong. 🙂 Just like the original compiled languages vs. assembly, the development time increases are very significant.

          • Ralf Quint

            The main problem with C# is that it has a huge prerequisite and that is .NET, sending you right to dependency hell and back. Maybe good intention, but poor execution…

      • I have worked in some of the largest international financial institutions. I have never seen anyone use COBOL. Companies want to decommission such systems because of the very high financial risk.

        C++, C#, Perl, and Java and far more common. Banks like C++ for front-office trading because the code can be very tight and very fast. Java dominates the rest of the front-office (client facing apps). And perl is used everywhere for simple data transfers and filtering.

    • I agree and disagree both when it comes to Flash. Flash is a pain in the rear, very buggy and crash happy, but still tremendously way more suitable for high quality web applications than anything else. If the choice is between Flash with ActionScript and the HTML/CSS/JavaScript/server side code kludge attempting to compete with Flash…my choice is Flash hands down. Just alone because it looks and works very much the same in any Flash capable browser on any OS…can’t say that for the other stack that produces wildly different results from great to not working at all on current browsers on the same OS.

      I don’t think that VB.NET will die soon…after all, it is called BASIC for a reason and it is tremendously easier to master than C# or Java (which is the combination of all bad things from all programming languages).

      I do agree on Delphi…sad to see it go because there isn’t any other RAD out there that gives me one compact executable file with everything in it. No runtimes, no frameworks, no gazillion dlls.

      I am not a professional developer, but I spent my far share with VB6, VB.NET, C#, PHP, Java, Delphi and ObjectPAL…in the end the difference is the syntax and code words, not so much the approach. If you mastered one programming language it shouldn’t be too difficult to get going with a different one. So why the fear mongering that this or that programming language might die?

      • I used to code flash (serious applications, heavy animations), now I do modern javascript with all the polyfill and SASS in either Angular, Ember or Backbone. Works wonderfully in every browser. I’m talking data-driven, graphics intensive apps with animations and complex models.

        Don’t know what “other stack” you’re talking about.

    • C++? You serious?
      Can’t you see that almost all applications are built with C++?

      If you are not good in C++, or the job you applied for doesn’t require C++ as a prerequisite, that doesn’t mean that C++ is dead. C++ is alive and is under evolution by the new standards.

      “C++ is dead” is never going to be true. A programmer that doesn’t know C++ has something missing in his/her knowledge.

    • Marcel Kincaid

      There are more lines of COBOL in use than any other single language.

      C++ is “dying a slow, long death” in the same way the sun is … what a stupid statement.

      And Swift is one of the most rapidly growing languages.

          • Joseph Mitzen

            They say in biology “That which is not growing is dying”. As its share of total lines of code shrinks, it becomes more and more irrelevant. Think of it this way: there will never be more COBOL coders then there are today, only less. That’s what we mean by “dead”. Programming languages don’t die; they just become irrelevant. Some people still keep and maintain their Atari STs, Commodore Amigas, Apple II PCs and their requisite languages – that doesn’t mean those products and tools aren’t dead.

          • Interesting, I can’t comment to Joseph Mitzen directly. So, in biology, most of mankind is dying by age 18? Since we are trying to reduce the population explosion, the entire human race is dying? Most of which is produced by people older than 18.

            OK, I get your point, programming languages that aren’t spawning new languages or increasing their programmers are dying.

    • Andrew Tempel

      What about ADA? The military wanted everything new done in ADA for years. Our 200 person staff at Boeing all took a month of training on it (at the government’s expense, of course).

    • The only and only reason I would think why people wouldn’t want to use C++ is because there aren’t as powerful IDEs for C++ as they are for C# or Java. For example, if I want to find class hierarchy for a class in C++, Visual Studio 2013 takes forever (sometimes I think they are doing this deliberately because they want to promote C#). But this is personal stake. I love to code in C++ but I have to agree that love is dwindling mainly because of reason I mentioned.. I know go on.. curse me!

  2. Are yes the old “dead” argument. http://cathcam.wordpress.com/2009/01/11/is-soa-dead/

    In response to ROB S COBOL is sadly far from dead. While there are some great language migration products, the language and program written in it are so pervasive in large Fortune 500 companies that it’s unlikely to go away anytime soon.

    The only y you can really say anything is dead in programming terms is by defining dead as the kool kids on’t us it… The problem with Software Engineering is that we keep inventing the same [expletive] over and over again, along with many pat mistakes, which really means it in’t by traditional definition engineering.

  3. I think including Ruby in this list is naive in the extreme, given that you took the time to differentiate clearly between seeing a large drop in usage and language death. I’m not a user or defender of Ruby or Rails, but they’re clearly not going away any time soon. There’s a ton of energy and activity in the Ruby communities.

    What’s much more likely is that Rails might fail to compete well enough with Node, Go, etc. and see a big drop, and Ruby at the same time, but there’s way too much momentum there for it to die completely. There’s a perception that Rails has become big and bloated like the J2EE that it was seen as a replacement for, but that’s manageable, and smaller Ruby frameworks like Sinatra and Padrino are lighter-weight alternatives, and I’m sure there will be more.

    Using Twitter’s decision to move to Java and Scala on the JVM from Rails and Ruby as an indicator that in general Ruby and Rails are now, and should continue to be, considered insufficient is laughable. When something fails at Twitter scale, it’s not information that 99% of developers can use to guide their design decisions, because they’ll never see scale close to Twitter’s. It’s just a cool story, and if you’re anti Ruby already, you get to feel a bit of schadenfreude. But I hope that most developers know this, and I’m surprised that you don’t.

      • Louisiana

        Don’t publish the “death of Ruby” to the huge community of Rubyists in Boston! The bleeding edge tech teams at start-ups and beyond are not only using Ruby and Rails but are actively evangelizing to spread Ruby far and wide. Programming doesn’t have to be hard – i.e. filled with all sorts of strange noise like “public void something something…” just to print “Hello, Word.”

    • Rails is a mature, complete web-framework with wrinkles worked out of it.

      Node is a IO-server-platform, with bunch of fledgeling web-frameworks that have all the bugs ahead of them.

      I hope this helps you understand the ecosystem.

      My opinion is that Ruby stands above the crowd on its technical, computer-language-merits alone — and this will keep it strong and competetive way past 2020.

      • While I agree Ruby isn’t dying, I’d argue its days *might* be numbered. The reason I say this is because of the impact of mobile. While Ruby makes for an excellent server language, the performance characteristics will always be a problem. The expressiveness of the language will never allow it to be as fast as other similar languages.

        Python is in a similar boat with the big difference being there is a lot of work being done to make it extremely fast. Pypy is a great example along side tools such as cython. Not to mention NumPy and Scipy, which go to great lengths to match the performance of native machine code.

        With that said, I can’t imagine seeing the “death” of these languages in the near future. The speed is good enough for the vast majority of systems and the expressiveness is certainly a valuable feature.

    • I agree. I am learning RoR. Its very powerful and expressive (can get a lot done in little time). It is not a compiled language like Java (kinda*) is, so it does run less efficiently. That said, I’ve heard of many startups using it due to the fast production time. I’m sure some lost excitement when Twitter decided to replace RoR with J2EE, but I still think it is a valid choice for many applications. Its a different tool – some times you only need a screwdriver… sure, you could get the drill, but it may take longer.. Different tool for a different job IMO.

      Riffing on that – I think its a similar story with C++ and C#. C# is powerful and “fast” compared to other higher level languages, but some times you need to be more efficient, which C++ gives you. That is a trade off though, because the .Net libraries make programming much faster – so picking C++ over C# is choosing processing efficiency over efficiency of your development team.

      I Use C# for my day job, but setting up an ASP MVC app for my personal projects seems like overkill. Its like taking a commercial flight to go 100mi… you’d get there faster by driving (no security, boarding, taxing, deplaning…).

      I’d say C# and Java are for the most part interchangeable for most of what I do. Java does run on the JVM which is open source, so it can run on potentially any device, which does make it suited for more than C#.

      Back to Ruby – Ruby is its own language. I know most of its popularity has been brought in by Rails, but it does stand alone. As others have mentioned, there are other lighter weight web frameworks (Sinatra) that can sit on Ruby. Ruby can also be used for processing like Perl, as I understand it, or writing standalone console apps.
      I dont see Ruby being used to write guidance systems, World of Warcraft type games, or large enterprise software, but for a small startup, applications that are not terribly processing intensive, I think RoR is a good fit. Its all about the right tool for the job.

      *Java code is compiled to JVM intermediate code – bytecode – then the JVM runs it as inturpreted – atleast as I recall. In contrast C++ is a compiled language, it compiles to to code that is native to the processor (assembly).

  4. MacCruiskeen

    “Microsoft’s long love of the BASIC programming language extends all the way back to 1991”

    This seems an odd statement since I am sure I am not alone in being able to say I cut my virtual teeth learning to program with Microsoft Basic interpreters back in the 1970s.

    Are there any languages that are truly dead in the sense of no one at all using them? Cobol, Fortran, and Lisp continue, for various reasons, well beyond the time when they were the hot new thing. Even Forth still has a few diehards. But these are mainly for legacy reasons, I suppose, probably not a lot of new projects being started with them.

  5. Microsoft+BASIC goes back before the 90’s. I worked with Microsoft BASIC circa 1977 on the Altair 8800, an Intel 8080-based machine. Back then they had 4-K BASIC and if you had more memory, 8-K BASIC. It arrived on paper tape suitable for a teletype ASR-33.

    The good old days…

  6. Please crawl back under your stone and get in touch with reality

    Though the languages you mention might not be as popular as they were in the beginning, they are still heavily used.

    Some well-known projects depend on them (Redmine). Some companies depend on those languages.

    I know perl5 is actively developed and improved. The fact that your comment shows that *you* do not like the language does not imply that the language should die. If dislike were reason to kill off languages, we would probably all be jobless.

    Perl6 indeed took a long journey to get into the “I could use it” phase. Maybe too long, but it is getting in shape to make a whole lot of young programmers very happy. It addresses all the dislikes people find in other – now popular – languages.

    Every language will have some problems along the line of their development. Why did GNU make it so hard to build gcc? It now depends on prohjects that depend on gcc. Wow, that is a way to kill yourself.

    Why do python scripts that want to serve both the python-2 *and* the python-3 world start with 60 lines of try/expect import maze code? Because they have created a backward incompatable environment that NOBODY wants.

    Why does java have 6 different types off loggers, all alike, but killing eachother when loaded? Hard to mix .jar’s from different sources.

    IMHO, perl5 is the clear winner. You may discard my opinion, but your article sucks.

  7. “Adobe tried to keep its programming platform alive via AIR, paired with a tool for building AIR apps called Flex.”

    That’s not what (Apache) Flex is. Flex is an SDK for building both Flash and AIR applications. It’s primary differentiating characteristic vs Flash was its UI framework. AIR applications were and still are predominantly built with other tools, including Flash Professional and a number of third party IDE’s. AIR is still used by a growing community of developers mostly for game development on iOS and Android.

    ActionScript is also used outside of Flash for the popular game UI development framework Scaleform. Incidentally, the ActionScript (3) language is much closer to Java and C# than it is to JavaScript.

  8. meustrus

    This article does not touch on any of the reasons that programming languages stick around. It just reads like a list of programming languages the author does not like. Let me go language by language:

    Perl: Will not die before its users die. All of them. Keep in mind that Perl was the go-to language for most web programming in the 90s, and is also still commonly used for simple automation scripts and interface translations. These are things that programmers do, however, so while Perl usage is probably never going to grow or be visible again, it will still be used until all of its users retire.

    Ruby: Same as Perl, but it’s a much nicer language to work in. And the author clearly doesn’t have any fingers in the job market, because many tech organizations large and small use Ruby for the sort of things others use Perl (as above). These are the things where efficiency does not matter. Ruby has also been getting more efficient in recent years. Lastly, do not mistake Twitter’s abandonment of Rails as a vindication of the language. Ruby on Rails is wildly inefficient, uses magic as its primary design principle, and probably is about as dead as claimed. But to claim Ruby is as dead as Rails is as ludicrous as claiming that C is as dead as Carbon (Mac).

    VisualBasic.NET: Isn’t it still used for things like programming macros? I’ve seen VisualBasic taught as the only programming language in some engineering programs as recently as 2011. This one isn’t going to be dead until Microsoft kills it. Given their strange over 20 year obsession with BASIC, this isn’t happening anytime soon.

    Adobe Flash and Air: We can all only hope that Flash is dead, but sadly no. The internet is still full of Flash advertisements, which were always the #1 use of Flash on the web. And even if Flash disappears from the internet completely, it is showing no signs of decay in its other major purpose: animation. Flash is one of the most popular tools for animating professional (and less than professional) cartoons. It may not mean a lot of programmers writing interesting code, but ActionScript will live on for the foreseeable future with cartoon animators.

    Object Pascal: Actually, I’ve never heard much about this and assumed it was obsolete six years ago. The fact that it’s even being discussed in this article suggests there are some people out there still using it when the author thinks they shouldn’t.

  9. Hi, I don’t think you did very good research on Perl. In fact your remarks are derivate and ad hoc:

    “One programmer I knew…”

    So this is the ‘I heard it from a guy at the pub” school of research? People have all sorts of feelings about programming languages. Unless your source is the the best programmer int he world, its just an opinion. Personally I don’t like VBA but I know lots of people that make good money using it, so ultimately its opinion.

    Although you are technically correct in stating that Perl6 has been in development for a long time, its not correct to say this means development on Perl is stalled. Although Perl6 was originally intended to be a replacement for Perl5, that’s no longer the case, and hasn’t been for at least 10 years. The Perl community now considers Perl5 and Perl6 to be two separate and incompatible languages, with very different goals. Perl6 is more of a hobby and a lab for experimenting on language design, while Perl5 continues to be the language you use on the job. The group responsible for maintaining Perl5 has just released version 20 of the language and there is strong work on version 22 (Perl5 follows a even = stable / odd = development release cycle).

    If you need help in the future in researching Perl, feel free to reach out to me, or to anyone at the Perl Foundation (http://www.perlfoundation.org).

    • This article is written in ignorance and without any sort of research. I would be surprised If you work in the tech sector and put out an article this bad and not be surprised when potential employers pull this up.

      Perl – not to mention _numerous_ tools that are used to interacts with MySQL (monitoring, benchmarking, etc) are written in Perl.

      Perl was always far more than a CGI language and the author didn’t do any research to discover that CGI hadn’t been used since around 1998 when mod_perl, an Apache module and replacement for CGI, came into being. Slashdot was and still is run using mod_perl.

      The guys at Booking.com would also find this article amusing being that their company uses Perl. Also a number of huge Japanese sites.

      For Ruby, I’m not crazy about it, but entire infrastructures of HUGE companies (HP, Rackspace, etc) use Ruby both in the form of Chef and Puppet to automate their infrastructures. Also, don’t leave out Vagrant, which is a standard tool for launching virtual resources, written in Ruby.

  10. Author fails when he claims “Microsoft’s long love of the BASIC programming language extends all the way back to 1991,”

    I guess he forgot about Altair BASIC, which was implemented in 1975 by Bill Gates and Paul Allen and was the product that Microsoft was founded on. Then there was BASICA and GWBASIC (Gee Whiz BASIC) that came with every PC in the 1980s, also implemented by Microsoft.

    • Applesoft BASIC (for the Apple II series) was also written by Microsoft, that’s what I learned to program with, back in about 1981. It essentially replaced Integer BASIC, written by Steve Wozniak, which was fast and efficient, but didn’t support floating point and some other features.

      I was a bit surprised to learn, as a lifelong Apple fan (but not fanatic), that I got into programming because of a Microsoft product.

  11. Did you actually visit the site?

    But if you go to the Embarcadero website, you’ll see that they mainly promote Delphi’s C++ support.

    1.) What is Delphi C++? Is that even a thing?
    2.) Application development will quickly show 3 development products (Delphi, C++ and AppMethod)

    However, Object Pascal is more than Embarcadero

    RemObjects Oxygen http://www.remobjects.com/elements/oxygene/
    Smart Mobile Studio http://smartmobilestudio.com/
    Free Pascal http://www.lazarus.freepascal.org/

    Object Pascal continues to grow, continues to add new features.

    Delphi XE6 is a fantastic product, 3 apps in Google Play and Apple Store’s, everything from front end to back end is all Delphi powered.


      Agreed 100%. Since FPC/Lazarus have reached a point where they are useful and in many cases even desirable — I’d say that it’s more likely that Delphi as a product may eventually be in trouble (given that it costs more than the $99, which is just too much).

    • I agree as well! I still use Free Pascal, and it’s being actively developed (as well as Lazarus). Delphi deprecated it’s “Objects”, but Free Pascal will continue to use them and support them. Delphi is still going strong with it’s Pascal language otherwise, and so is Free Pascal.

    • Ralf Quint

      Yeah, at the latest with the “Delphi is dead”, the author of this article showed that he doesn’t have a clue.
      There is no “Delphi C++”‘, it’s either Delphi or C++, which are (always have been) two separate products from Borland/Imprise/Codegear/Embarcadero.
      And Object Pascal is more than Delphi, as evident in the continued existence and development of FreePascal (and Lazarus).
      FreePascal is a great cross-platform tool that I use to create software for Windows, OS X and Linux, all on the same code base and without all the fluff and dependency/upgrade hell that comes with C# and the .NET nonsense.

  12. Joonipper

    VB.NET can do everything C# can do. Literally. CLR compliant is CLR compliant. The two languages can be converted from one to the other and back with literally two mouse clicks in Visual Studio 2013. You might not like VB.NET, but it’s far from being dead or even in danger.

  13. Gene Gajewski

    Just about spot on!

    It might be hard for some to admit it, but there are fads and phases in software development. How many of you can have to to duck when someone points out former fanboy’s of, say com/dcom, silverlight, java, etc. and so-on.

    Languages like C/C++ endure because the fill a need for a tool that supplies a reasonable accommodation between native performance and ease of programming. Languages that cater to a platform’s particular peccadillo’s live and die with that platform. Web tools/languages will always be an unholy mess until someone come’s up with a to make the REST nature of http and the web appear as an imperative system.

  14. William Meyer

    So apparently, Jeff, you don’t get out much? Delphi continues to find wide use in many product areas, including process control, database tools, broadcast (including its current existence, streaming), sales, marketing, medical practice management, and on and on.

    That you are oblivious to these products doesn’t make them imaginary.

    • Sigh. Delphi does *not* continue to find “wide use” and was never the dominant tool in any product area. The last commercially published Delphi book was in 2005. For 9 years it hasn’t been profitable enough to publish a Delphi book. How is that possible if it has “wide use”? How is it that there aren’t enough developers to have a live conference in the United States? It disappeared from schools in the West many years ago; the last time Pascal was used for AP Computer Science in America was ’98 or ’99. It was ranked in the 40s for new projects on Github last year. How does that demonstrate wide use? Redmonk’s language ranking, based on Stack Overflow and Github activity, didn’t put Delphi in the top 20.

      There is legacy code out there that people maintain with Delphi – same for every language. There are products written in the 90s that are still in active use/actively sold and it doesn’t make sense to rewrite them – same with VB 6 and many other languages. And there are some shops that are already heavily invested in Delphi and filled with Delphi developers where it may not make sense to start a new project in another language. But new companies and new software in general are not being done with Delphi. No startup looks at the lack of books, magazines, online courses, 3rd party support, libraries, conferences, developers, etc. and says – no ecosystem, perfect! In that sense it has become irrelevant – which is what we really mean by “Marked For Death”. Just because some diehards still use it or a new version is released doesn’t mean the language has any traction. Heck, new versions of PowerBuilder continue to be released every 18 months too, but no one’s going to start new projects with it for the same reasons.

      >That you are oblivious to these products doesn’t make them imaginary.

      That there are a handful of companies in the world who still have Delphi products doesn’t make them relevant. There’s one broadcast company on Earth using Delphi for its code. It’s the biggest one. That doesn’t mean Delphi is still viable. It means one private company has an investment in old Delphi code and employs the last Delphi developers in America and its CIO is eccentric so it makes no sense to move to a viable platform – until the cost and bugs and lack of 3rd party support become unbearable.

      Most Delphi users were solo, self-taught developers. It never got major traction in industry. Microsoft’s introducing a free version of Visual Studio for small companies and single developers is the final nail in the coffin for Delphi – along with ZXamarin emerging as the dominant player in the cross-platform mobile development tool market. No one’s going to pay $1000+ a pop for Delphi when they can get C++, C#, Javascript, F# and Python support in Visual Studio for free. Worse, you have to pay at least $500 more in Delphi just to be able to access a server!!! You also have an 8 month support window! These things simply make it untenable for the enterprise. It’s over. It’s sad that some people seem willing to go down with the ship; I wish EMBT cared about them the way these people care about Delphi.

  15. Delphi XE7 can build applications for Windows 32-bit, Windows 64-bit, OSX 32-bit, OSX 64-bit, iOS, Android from the same project, sharing source code across platforms. You can use Object Pascal and/or C++, and it supports Generics and Attributes. Object Pascal dead? I guess it is undead. Oh, and you left out Cobol, which has been undead for years.

    • >Delphi XE7 can build applications for Windows 32-bit, Windows 64-bit, OSX 32-bit, OSX 64-bit,
      >iOS, Android from the same project, sharing source code across platforms.

      But this is 2014 and “it’s cross-platform” is expected, not a feature. C# and Java can make the same claim, as can others. Worse, Linux is left out of that list, which makes it a no-go for many enterprises right there. I remember an exchange with Delphi product manager Marco Cantu about the very small addition in regards to parallel programming in the last Delphi release after parallel features were promised for *eight years*. His response was “But it’s cross-platform!” 🙁 Why wouldn’t it be cross-platform?

      > You can use Object Pascal and/or C++, and it supports Generics and Attributes.

      Again Lars – what doesn’t? What does Delphi offer in 2014 that C++, Java, C#, etc. don’t? As far back as 2005 I failed – for the first time – to get Delphi into a company and that’s become the question I no longer have an answer to, and which the people who make it can’t/won’t answer either: what’s the elevator pitch for Delphi? What can Delphi do that others can’t? Why Delphi over industry leaders like C#, C++ or Java? Why $1000+ Delphi vs. free open source?

      Meanwhile you don’t mention that Delphi was almost the last language to get around to generics, and even there the implementation is half-baked; e.g. Delphi has first-class functions but they can’t be generic, only class methods. It also has refused to support any version control other than subversion; it finally added *partial* git support in the latter half of 2014. Even Microsoft, which makes its own VCS, added full Git support this year ahead of Delphi. 🙁

      The IDE doesn’t even let users redefine all the keys, for crying out loud. There’s an 8 month support window, there’s a EULA which says you can’t use it to write any software which competes with anything Embarcadero sells, etc. There is a long list of items that simply make it unpalatable for enterprise use, and there’s no point in paying $1000+ for personal use.

      >Object Pascal dead? I guess it is undead.

      Where is Delphi enjoying a revival? Name one major company that has adopted it from 2010 on. Name one Fortune 500 company that uses it, period, other than to maintain legacy software. I live close to Wall Street and have watched the job ads for years… the only Delphi developers being hired were to help port Delphi or Delphi/Java systems to C#. Delphi’s simply being phased out everywhere. The only people EMBT are selling it to are those who have been using it for 15+ years. The Delphi “world tour” events seldom have any attendees under 40 or draw more than a handful of people.

      I’ve been a Delphi user as long as anyone, but most of us can admit the time to move on has come (quite some time ago, actually). When other people openly start calling your language dead is a really strong sign in and of itself.
      Oh, and you left out Cobol, which has been undead for years.

  16. Just a couple of corrections:

    1) Delphi == the language Object Pascal, as well as the name for the environment/IDE. (Well until recently anyway, where the owners seem to have changed their minds and again, and have changed the language name back to Object Pascal and kept environment called Delphi.)

    2) The C++ variant of the product is called C++ Builder. Delphi refers to the Object Pascal/Delphi based dev environment product only. There is no association between the name “Delphi” and C++. “Delphi C++” is an oxymoron.

    3) Contrary to your perspective, my experience over the last nearly 20 years of living and working in the Borland/Delphi ecosystems, is that C++ builder, rather than Delphi has for the most part been the stepchild in the story.

    4) RAD Studio is the “all you can eat” offering that including both Delphi and C++ Builder (as well as other tools, depending on the SKU level.)

    Nevertheless, it’s true to say the Delphi (the language and environment) has been mostly stagnant and more or less in decline for the better part of the noughties. Notwithstanding that, Embarcadero however seems to be doing their best recently to move the toolset forward, and the new platform support and features are actually quite good, and there seems to be somewhat of a resurgence of interest in use in the ecosystem of late. I’m therefore not sure I’d say the language is “marked for death” just yet. 🙂 (Aside, did you know that the Skype UI is written in Delphi to this day?)

  17. There is no way to prove the Perl is dead.
    Even if nobody bothers about learning to perfection, there is tons of code that needs to be maintained… interesting, no word about Fortran, but Perl … Practical Extraction and Reporting Language

    • More like tons of Perl that needs to be replaced, not maintained. That’s half of what I do these days. I’m porting more legacy code to Go than anything else. I took our shop to Rails (from Perl) in 2006, but that’s a decision I now regret in many ways. In my experience I see far too many devs who rely on and use gems like they’re Lego bricks to build apps that result in code (callback hell) that’s a nightmare to maintain. (Don’t get me wrong, gems keep us from reinventing the wheel, though often the wheels available are rather shoddy and not everything is a wheel.) For scripting, Perl, Ruby, Python, as long as you don’t need performance (and often you don’t), take your pick. For websites, I’d never use Perl, and Rails only for something simple.

  18. Charles Stack

    Clearly, you don’t have the foggiest about Delphi or Object Pascal. Simply going to the Embarcadero.com website and clicking on their Application Development tab will show you several products which include Delphi XE7, C++Builder XE7 and RadStudio XE7 (which contains both Delphi and C++Builder). AppMethod provides a subscription model to the features of RadStudio. If you saw an ad promoting C++Builder, it might be because the featured product rotates on their website.

    The language and tool lost popularity when Borland screwed the pooch with their whole Borland to Inprise to Borland debacle and then trying to concentrate on Java and application life cycle products instead of their bread and butter, Delphi. This, ultimately, forced the spin-off of CodeGear and the eventual acquisition of CodeGear by Embarcadero where the group now has a new home.

    Both Delphi and C++Builder enable developers to create applications for Windows, OSX, Android and iOS in a way few other products (if any) can. The language itself, Delphi is an Object Pascal derivative. Other vendors, as noted in previous comments, have developed other tools on the language. And, there are even products that convert Object Pascal into JavaScript for use on the web.

    And, I hate to tell you, but C# was developed by the original architect of Delphi before he was coaxed away by Microsoft. The C# language is not as elegant as Object Pascal but did win approval by the Enterprise because it’s from Microsoft. Nobody loses for choosing Microsoft.

    The Delphi/C++Builder/RadStudio line of products, however, can do things that C# can’t and vice versa. They no longer have a large following in the US. But, this is apparently not true overseas.The product did suffer some quality issues for a while as they tried to reinvent themselves and the product and there are complaints about the cost. These are things that Embarcadero appears to be addressing.

    Personally, I prefer developing Delphi – verbose syntax and all – for my own personal work. Not being based on .NET, it probably won’t find a home in the Enterprise anytime soon (if ever). But, for smaller shops and those developing mobile apps and Windows/OSX applications, it’s a pretty amazing product.

  19. john napiorkowski

    I noticed some of the Perl examples started with an out of date shebang:


    Generally its considered modern practice (by modern I mean at least the last 7-10 years I can think of) to use the following:

    #!/usr/bin/env perl

    This will be compatible with Modern Perl tools like local::lib, etc which don’t assume your Perl binary is in a root controller directory. I believe this is so with other dynamic languages such as Ruby, Python, etc.

    Also, I don’t know anyone using 1991 style CGI with Perl. A Modern take on a simple web application would like be written on top of Plack (Perl’s version of Python’s WSGI or Ruby’s Rack).

    #!/usr/bin/env plackup

    my $app = sub {
    [200, [‘Content-Type’ => ‘text/plain’],
    [ ‘The article author seems stuck in 1999… ‘ ]];

    I’m not sure what the point here is though, beyond trolling for hits by smacking easy targets. You got nothing nice to say about the world, Mr. Cogswell?

  20. John Morris

    My, how lacking in understanding…..

    Everyone else has lit the author up for apparently being a kid who doesn’t know Microsoft was FOUNDED on writing a BASIC product so no sense beating that horse again.

    But Perl dying? Not likely. Apparently this kid only knows Windows and thinks the web is everything else. Yes, perl isn’t doing much .cgi work these days but as a Unix/Linux system administration tool it is still just as potent as it was when it first gained popularity. And someday they might even get Perl5 up to a 1.0 release and I guess the idea is when that happens it owns the world or something? Stranger things have happened…. Duke Nukem Forever did ship.

  21. some people think there is one language (fill in the blank) that can do it all and the truth is that many languages can do it all but not do it all well. for example Perl may be very good at string/file/data manipulation but not so good at big math calculations. you can do a lot of the same things (on Linux) using bash but that does not mean it is the best choice either.

    and sometimes old languages never die – they just haunt people (I saw a job posting for a CMS-2 programmer a few years ago over 20 years after I last used the language myself).

    programming languages are tools to solve a problem but one tool may not solve every problem. a hammer or saw or drill cannot do everything. those infomercials will try to convince you that their tool or kitchen gadget or whatever is all you need. that is what many of these languages are trying to claim – they can do it all and that is all you need.

    you decide….

    • I Agree!

      Rails and J2EE (as an example) have different strengths and weaknesses. Sure they are both web frameworks, but that’s like saying a hammer is a hammer. I’m not using a 4lb mallet to hang pictures on my wall any more than I’m using a 1/2lb hammer to drive fence posts into the ground. Either could be done, but hard to argue against there being a better tool for the job.

      Even C# and Java have their separate strengths and weaknesses. Java runs everywhere, but I prefer the .Net framework and find C# (and its frameworks) more of a joy to work with.

      • begin of a bit of a ramble….

        I have done very little with Java but recall many years ago (pre 2000 I think) that Java was supposed to be a “safe” web language for all platforms because you could not do anything bad (Java would not let you). but since that time I keep hearing about problems with Java (and probably many other web based things) because they started as safe or simple or limited in some way then they expanded it to do things that were never intended to be done. maybe it is like someone converting a small hammer into a big hammer and the new big hammer works fine until the original hammer breaks. maybe these languages are (supposedly) “dying” because they started as very good languages to do something then they grew into not so great general purpose languages which people no longer like to use because they are not so great and the things they were never meant to do and everybody forgets what the language was originally intended to do (which it is still very good at doing).

        end of ramble.

  22. Bill. Yeah Delphi 4 was its peak before Borland lost its plot and turned into a weird “middleware” company that made obscure enterprise products nobody cared about.

    That said, check out Lazarus (Its back from the dead!). Its pretty much D4, but open source. Its taken a LONG time for Lazarus to get mature, but its actually pretty dang good these days. And it compiles to just about everything. Macs, Lunix, Windows, Droid, IOS, even obscure platforms like old OS2 machines and the like. Usually with native widget sets too. Its great.

  23. Delphi/OP is not dead or dying. It has been through some bad times but that is changing. I have a number of commercial packages developed using it and over the past few years there has been a lot of new features added. For a smaller development house that cannot afford a team of developers there is still nothing that can touch it. Can now develop for Win32, Win64, Mac, Android and IOS

  24. Fabrizio

    Never heard of Puppet or Chef?
    Puppet and Chef are still popular and based on Ruby.
    I don’t see Ruby on the way to extintion, unless those tools evolve their codebase and DSL to something else.

  25. Perl has a flourishing community with hundreds of local groups (Perl Mongers, see http://www.pm.org ) that regularly meet for dinner and/or drinks and/or technical presentations and/or question-and-answer-and-hack-sessions. I could mention the many Perl Workshops in many countries, plus hackathons (hacking-marathons) and many open source conferences with a strong Perl presence.

    Perl 5 has a yearly release cycle and still introduces new features that are afterwards copied by other programming languages. Perl 5 is used for much more than just for small scripts, text manipulation or as a glue language. Lots of companies and institutes build and maintain extensive and complex programs, like Booking.com, biochemistry companies, airplane industry, telecom-companies etc. With hundreds of thousands of active Perl users, Perl is far from dying.

    Perl 6 is much more than a hobby and lab thing. Perl 5 and Perl 6 and not different languages, Perl 6 is still quite alike Perl 5. Both are Perl-ish. Perl 6 is ready to use. Not as extensive as Perl 5, not as many modules as Perl 5, not as fast as Perl 5. Not yet, for each of these. Indeed, there is no Perl 6.0 yet, but still quite some things from Perl 6 are copied in Perl 5, and some things work faster in Perl 6 than in Perl 5. With new features like ‘Inline::Perl5’ and ‘use v5’ more and more code of Perl 5 can be executed in Perl 6. Perl 6 has a monthly release cycle and is developed by a serious and friendly community, that attracts more and more Perl 5 developers.

    • How does that translate into jobs? I see very few Perl jobs, most (all?) don’t pay that well, and mos job posting for Perl I see list Perl as a secondary skill. (that is, Perl would only be a part of the job, most likely a very small part of the job.)

      I used Perl full time from 1999-2006. There’s no way I’d could make a living from using Perl exclusively now. I went to Ruby like a lot of people, and now I’m using Go instead of Perl (though I’m primarily doing iOS and Android development now). Five years from now I’ll probably be using something else.That’s the way it goes.

  26. Charles Stepp

    Perl is like English…it’s a mess, but it’s what I speak. Hashes and the persistence available them in multiple DBI methodologies, strong regular expressions, and the () thing make my 5 minute crufties easy. But who likes the weird binding syntax of “=~”?

  27. Scott Marshall

    Whilst many have reminded the author of Microsoft’s “BASIC” credentials going back to the Altair, and the various BASIC interpreters they wrote (including Applesoft BASIC); let’s not forget that Microsoft also had a very good BASIC compiler in the 80s – Microsoft Business BASIC Compiler (aka “BASCOM” and “BASCOMB”).

    This compiler supported a rich BASIC dialect, with full support for structured, block programming as opposed to the numbered-line style required by the various interpreters.

    I wrote many business applications in BASCOM/BASCOMB for the IBM/MS-DOS PCs of the day. The great thing is that if I want, I can still use it in a virtual DOS-box on my Linux machines today.

  28. I’m not a Pascal programmer, but I’m quite sure that even if Delphi doesn’t support Pascal anymore, there’s this thing called Lazarus and the Free Pascal Compiler, which has got a ton of great support on one of the Stack Exchange networks. I’m quite sure it ain’t going down.

  29. Mark Senn

    I use Perl (Perl 5 and Perl 6) more than any other programming language. As far as I know offhand it is the only language that has a users group named after it at my employer (a Big Ten university).

  30. The claim that Ruby (the language) is somehow dying because Twitter stopped using Ruby on Rails in 2011 doesn’t work.

    Why did Twitter switch off of Rails?

    Rails is a web framework. Twitter is an asynchronous messaging platform.

    They used the wrong platform for the job.

  31. Spencer F.

    Wow, I thought Delphi’s Object Pascal had died a long time ago. Writing Object Pascal code was my first job in the industry, more than 15 years ago now. I actually kind of miss using it – I never thought Delphi got the props it deserved.

    • Yes you are right. The one in the list which does not deserve to die is DELPHI (actually I also thought it already was dead – hadn’t heard of anyone using it for a while !)

      I too am biased because I learnt on Pascal, but Delphi was a godsend if you needed to distribute an windows exe. You could compile everything into one exe file, and completely avoid the DLL hell that came with distributing applications written in MS C++.

  32. Perl is not dead — not by a long shot. Perl has the richest library of user contributed API’s (CPAN) of any language. New releases of Perl 5 come out on a regular, active basis. Other than Java, Perl is the only language that supports full internationalization, so if you are building an application for a world audience, you will want to use Perl.

    As a separate issue, Perl 6 is not “Perl” — it is a totally new language. You won’t be able to run existing Perl programs in native Perl 6 because it has a different language syntax. They should have given Perl 6 another name as it has led to an amazing amount of confusion over whether Perl is maintained or not. Where I work, we have over a half-million lines of modern Perl code, and we actively develop new code in Perl every day.

    • Yesterday at the Austrian Perl Workshop, we got a presentation of Inline::Perl5, a module for Perl 6, with which Catalyst was used. More and more of Perl 5 can be used from Perl 6 (not even mentioning the ‘use v5’ statement). So your statement “You won’t be able ro run existing Perl programs in native Perl 6…” is less and less valid.

      • His statement is still true with regards to “native”. You can run C and Ruby and Python and Lua “inlined” in Perl5, that doesn’t mean you’re running them natively, it just means there’s a nice glue layer acting as a transport between the two.

        That is because, Inline::Perl5 embeds a Perl5 interpreter in Perl6.

        Which is why you need a Perl5 interpreter in addition to your Perl6 install:


        So while you are “running existing Perl Programs in Perl 6” you are not doing so “natively”.

        Its a nit pick I guess.

        But it just reaffirms the argument that Perl5 is so not dead, that even Perl6 requires it at present in order to be useful. ( If that sounds silly, try rephrasing it as “python3 requires a python2 interpreter embedded in it to be useful” and suddenly the claim A replaces B becomes less solid 😉 )

    • Marcel Kincaid

      ” Perl 6 is not “Perl” — it is a totally new language. You won’t be able to run existing Perl programs in native Perl 6 because it has a different language syntax.”

      Um, you really have no idea what you’re talking about. While Perl 6 has different syntax, Perl 5 compatibility is a basic requirement of the language.

      • It is only compatible with Perl 5 when you load a Perl 5 interpreter into the language. That is not “compatibility” in my book — that is bridge to another language. This is what is required to run Perl 5 programs in perl 6:

        use Inline::Perl5;

        And the reason for that is because Perl 6 has a completely different syntax. Without inlining a Perl 5 interpreter into the program, Perl 5 programs will not run. It is not an evolutionary upgrade — it is a new language. And the only way it maintains compatibility with the previous language is to load the interpreter for that language. I stand by my statement: Perl 5 != Perl 6

  33. Lynn Johnson

    You missed on two fronts at least:

    1. Microsoft’s affinity to BASIC was due to the fact that Bill Gates founded the company on a version he and Paul Allen developed. Visual Basic.Net is fully compliant with everything that C# offers (both have parity with the CLR) and will continue indefinitely.
    2. C++ will not die soon for a number of reasons, but the most important is the fact that its’ basic foundation is the Windows Foundation Classes (WFC) which are available to C++ developers but are not part of C#. There are many things you can do writing drivers using WFC that are not available in the .Net Framework.
    3. Delphi came from Borland which is where Mr. Anders Hejlsberg came from and C# contains many of the same concepts/ideas. It is fairly widely used and continues to have many features added including .Net compliance.

        • TJ – how can anyone “hate” a programming language? Maybe there are some programming languages that we’ve never used, used but didn’t enjoy the experience, hope you never need to use it and other feelings/statements.

          I, for one, really like most programming languages from machine coding to assembler to higher level languages. I can usually find interesting types and statements in them all. I do have my own favorite programming languages. But, there are really none that I “hate”.

  34. Perl was the first language I learned to assist me with building web sites. Previously, I had 25+ years with COBOL. Talk about a change! Yep, Perl was a little difficult to grasp for me, but I did it and still love it. I continue to fall back on it for any kind of heavy-duty text manipulation. Perl has done some wonderful things for me and continues to do so. Sorry, but I don’t agree what this article says about Perl. Funny, this is the first time I have read anything like this about Perl…

  35. Sammy Esmail

    It is only all too often that some article comes out and declares Perl to be a dead language. Yet these same articles never bother to state what is wrong with this language or what is accelerating the death of this language. And most of of the authors never state their credentials in using Perl other than the language being “cryptic” or not liking the “sigils” used to declare variables!

    As a user of Perl for some 16 years, this language has its domain and niche. Whether writing automation tools or database applications or simple scripts, the language is simply awesome.

    Why do I like Perl? Well I love its Regular Expressions implementation and along with that, it comes with all the features of rich languages like hashes, arrays, references, complex structures, automatic memory memory management, modular support and OO that allows one to write large-scale programs. And yes, other languages have these features too.

    Granted one cannot survive by Perl alone. Many of the factory test applications I write use Labview. Creating GUIs in Labview is just so easy and beautiful. Yet when I need to parse test data, Labview calls my Perl routines which parse and return the data to Labview. The savings in time versus doing regular expressions in Labview are significant.

    In writing database Web Applications, my Javascript and jQuery typically call Perl back-end server which interface to MySQL. I also used PHP for a while but did not see any advantage over Perl.

    In my former career as an FPGA/Chip designer, Perl always came in handy to augment my VHDL and Verilog code. Designing assembly languages to verify chip designs was a piece of cake with Perl. And I thought C++ was a great language to model the datapath using OO.

    Perl may not be the best choice or the only choice for every domain of problems.For optimal real-time performance, you may need to use C or C++. After all, Perl was written using C.
    It seems most bashers of Perl always focus on issues like “Perl code is unreadable” or they despise using “sigils”. As to unreadable, this is all up to the programmer. You can write a long regular expression and put it on one line or neatly place it on 10 lines. That’s the programmer’s choice. And “code readability is not limited to Perl” alone. Personally, I like “sigils” as it helps me identify the type of variable quickly. For example, I do not like white space indenting that Python uses. Does that make Python a terrible language? Absolutely not.

    Do I feel Perl’s syntax is perfect? Absolutely not. For example, it is not designed as an OO language but adds it on. I prefer the notation where one states “string.toLowerCase()” in Javsacript versus “lc($string)” Perl.

    So as not to do a disservice to the community of programmers, we need to be writing about the pros and cons of different languages as a function of the domain of application.

    What aspiring and existing programmers need to know is that they cannot survive in this programming world with expertise in a single language. Guidance to selecting languages that improve their productivity and ensure their employment is what we should be writing about.


  36. Ruby is certainly not dying with many popular widely used projects like Chef using it to script. While I would like to see rails go away it’s also here to stay with Github and the like using is exclusively. I also must know half a dozen programmer buddies that work at successful startups that are almost exclusively rails as well.

  37. What was the last time you used Perl? You seem to have no knowledge about Perl’s development. It’s an awesome language with active development and an amazing helpful community. Not to mention the CPAN!!!

    Do some research before writing an article.

  38. Fernando

    I love it when non COBOL programmers put down COBOL. Like as if they were tarnished by Ebola or something worse!
    COBOL is not going to go away, and believe it or not – it works and works well.

  39. PoweBuilder – I mourn its demise to this day. Object-Oriented client/server for windows in the 90’s which VisualBasic never achieved. It missed the the Web boat

    AWK – greatest and fastest scripting language for text processing

    And my real oldies:
    PROLOG – AI non-procedural language which surpassed LISP
    NEAT – my first machine code language for NCR – 1970!!


    I must say, this article exhibits many elements of ignorance. When is a language dead? When nobody is using the language anymore – and nobody is learning the language. Examples of such languages are PL/1 and DIBOL. The languages in the list are nowhere near that stage.
    * Perl
    – has a very large user community in linguistics, is one of the strongest languages available in list processing. Huge user base in system administration. Is not going anywhere.
    * Ruby
    – has a very large user base in web development. Usage may be waning at the moment, but there is no saying if it will gain traction or not – definitely not dead yet.
    * Visual Basic.NET
    – has been around since the early 90’s in _this_ configuration, since the early 70’s as just Microsoft BASIC and has been part of the Office bundle since way back when. Dropping Visual Basic.NET means dropping the Microsoft Office primary programming language. Trust me when I say – they’d drop you in the middle of the ocean first.
    * Flash
    – Should be going to hell and beyond – but unfortunately, it isn’t. Mostly because of ignorant self-educated web developers that do not understand any of the security implications of using Flash or the inherent performance problems it poses to many (most) users.
    * Delphi
    – isn’t going anywhere. Granted, it’s not Borland’s brainchild anymore. But it _has_ been reincarnated as FreePascal (TurboPascal/Delphi compatible) along with an extensive collection of units (libraries) and Lazarus (a Delphi-like GUI editor using GTK). Unlike Delphi, FreePascal/Lazarus are truly cross-platform. There used to by Kylix (Delphi rebranded for Linux) but that was removed from market too soon and didn’t gain any traction.

  41. Neither Perl 5 nor Perl 6 is anywhere close to death.

    Perl 5 is better than ever, receiving regular releases and continuing to boast the amazing and ever-growing treasure trove of libraries on CPAN. And an awesome community to boot.

    Perl 6 has indeed been in development since 2000. This is called *getting it right*. Ever wished the authors of the language you were working in had spent more time and energy on its design? Thought so.

  42. No language ever really dies completely. Cobol, fortran, Ada, C, csh, sh, (even Matlab which isn’t really a language) they all still exist in old systems and until those systems are retired, the language and need for those programmers will exist.The support for the language may be gone, but the language still exists. Perl, python, many others fall into this group as well. What about Pascal, Lisp, Smalltalk, (I’m showing my age here! 😉 )? Somewhere these still exist. Nice article though, and it certainly stimulates discussion, but I don’t think any language ever really dies.

  43. Alas I went to Ruby’s funeral last year, sad affair, not many turned up just old friends from the late 90’s. Although some younger folk did attend, like the sharp suited c plus older brother. Perl would have like to have been there, but was just too old and slow to make it.

    Thought it was nice that Fortran and Cobol turned up to pay their respects, but couldn’t stay for long, pressing corporate work that couldn’t be allowed to fail.

    The coffin was laid to rest with some moving words from JavaScript, though to be fair the more mature attendees found it confusing and too basic in nature and didn’t like the idea of closure.

    RIP Ruby you may have gone off the rails, but you will be missed!

  44. Russ Reese

    The Delphi (object pascal) that is going away is the Delphi that was used to create Win32 exe’s. It was and still is the best tool for creating a Win32 exe. The reason it’s going away is because Win32 is going away. I think the reason that Embarcardero is emphasizing the c++ side of the newest version of the IDE is because there are way more old c++ people out there looking for a way to create iOS apps then there are pascal people but I suspect that it will support c++ and pascal – it’s just a marketing decision to emphasize c++ in the ad copy.

  45. Jeff:

    Delphi (Object Pascal) is alive and well and along with its partner, C++Builder (both included in RAD Studio) are the only native optimized code multi-device development environments and languages that allow you to build Windows, OSX, iOS and Android applications using the same project, framework and source code.

    Not sure what you are reading today or how you confused Delphi and our C++Builder – but I will be happy to bring you up to date on what we are doing with our development products.


    David Intersimone “David I”
    Vice President of Developer Relations and Chief Evangelist
    Embarcadero Technologies

  46. Hello,

    about Delphi you might be wrong on some quite fundamental point: even if you think Embarcadero does more marketing for C++ on their website you didn’t look behind the curtain:
    Their whole C++ IDE and all the GUI libraries as much of the RTL rely on Delphi. All GUI libraries, no matter if it’s the traditional VCL for Windows or the new cross platform Firemonkey framework are written in Delphi! So if it would be really dead this it would mean:

    a) that it couldn’t form the basis for all those GUI frameworks as it wouldn’t be capable
    enough to do so

    b) C++ Builder would be mostly useless in no time as the GUI frameworks couldn’t be
    properly enhanced and would need to be recreated from scratch in C++.

  47. Not to get too personal but you really do not know what you are talking about. While Delphi is not as strong as it was back in the 90s, Embarcadero fully supports it as well as tons of developers using the product or the free pascal compiler Lazarus.

    VB.NET going, are you serious ? One of the simplest languages to learn or teach ?

    If you want to inform people tell them to learn Java since it is being used on the Android platform but who knows what will happen in 10 years from now, certainly not Mr. Gogswell for sure.

  48. There is really not much difference between VB and C#. The calls to .Net assembly methods and properties are identical. What I like about VB is the lack of extraneous characters required in C, C++ and C#, such as the braces and semi-colons. IF, THEN, ELSE, END IF, instead of IF () { }; ELSE { };

    Just compare any identical code in VB and C# and it is easy to see which one is the most readable and easy to understand. I don’t understand why so many developers think EASY means deficient. Making code easier to read and understand is a GOOD thing, not something to be despised. There are very few things that can be done with C# and cannot be done with VB. I have written over 200 applications in VB and never needed those few things it cannot do.

    If anything, C# should die and be replaced by VB as the standard .Net language. And then leave C++ for those who need lower level capabilities for system programming.

    • I don’t do a lot of .net programming, but I wasn’t aware there was anything you could do in C# that you can’t do in vb.net.
      As you say, the calls to the .net assembly are all the same.

      • VB.NET and C# each have a couple subtle features the other doesn’t have (for example, as of .NET 4.5, C# has true Variants, whereas VB.NET has more flexible LINQ query statements). However, their feature lists are otherwise almost identical, and in the long run the popular features always get ported to the other side.

  49. Ferhat Ayaz

    This article is definitely too subjective. Can’t agree with it. No legit arguments. No explanations at all. Just because old-fashioned programmers don’t get functional programming and closures doesn’t mean programming languages like Ruby is dead.

  50. I think “death” is too strong of a word. While many of us would consider COBOL, PL/1, ADA and FORTRAN dead or dying, they actually live on as existing code bases are maintained or even enhanced. The article is really about the arc of popularity or adoption. For example, Delphi enthusiasts exist, but the rate at which new programmers adopt it is lower than it was in the 1990s and is much lower than, say, JavaScript or Java.

  51. Perhaps I am terribly obtuse but I don’t see how “those of us who grew up with C-style languages tend to have a little trouble learning its ropes.” where Ruby is concerned. Based on your examples, Ruby seems not so challenging, especially if you grew up with C-style languages.

  52. Brian Dear

    Using that tired “Rails doesn’t scale” argument is getting old. Judging Ruby and the Rails framework based on one use case 3 years ago is like judging smartphone viability by using a Palm Treo as a benchmark. I can’t comment on the other languages mentioned but I do remember the other linkbait article about the 5 hottest languages was equally absurd. Ruby is still the #2 language in Github after Javascript. Javascript’ lead is also boosted by the fact that nearly every single web app, regardless of language or framework uses a significant amount of Javascript, so much that a basic rails project using Bootstrap or Zurb, github will credit that repo as being “JavaScript” despite the fact that the dev wrote not a single line of JS code. Java is just below Ruby and PHP and Python are just after that, followed by C/C+, ObjC, and finally Perl. So Ruby (and those others) are hardly dying. Of course being that the purpose of this article was to generate clicks, I think the article was a success. In terms of quantifiable facts, not so much. This Ruby is dying meme started about a year ago.. If it’s dying, it’s interesting how I make so much money from this senile old language called Ruby.

  53. I suppose, as in COBOL, it all depends on the current code base in use and how well it meets the needs of the entity using it to determine a language’s actual death. In the case of any .NET language, does it really matter? They are all is compiled to the .NET framework.

  54. I doubt anyone will read this far in the comments, but everyone is arguing that this language or that language is not dead. It sounds like everyone missed the point. The article is about languages marked for death. The author thinks these languages will be dead someday and he’s basing that on decreasing popularity. Although it’s true the decreased popularity does not guarantee death in the next few years, it does mean that their wont be many jobs asking for knowledge of that language which in turn means there’s not much incentive to learn the language if you don’t already know it. Some of these language might survive in some form for another 30 years but that doesn’t mean that you’d want to spend your time learning them.

    • To the voices that have indicated that people missed the point I know that the these languages are in demanding need but really what is? A recent survey had Javascript (a scripting language nothing more) as the top programming language, how can you trust a survey like that ?

      Colleges at the moment are pushing Java since it is free and simple to learn where Pascal was their choice back in the 90s.

      What Cogswell did with this article was to make it seem like he knows what he is speaking about when he is nothing but a headhunter for an employment firm. The last two commentators think that the Delphi or VB.NET communities are telling newbies what to do but that is false. What I as well as David I. indicated that the Rad Studio XE7 comes with Delphi and C++ which are still superior languages allowing a developer to create a Android / iOS / Windows application from a central point.

      You have a major group of Pascal programmers in Europe that are pushing Lazarus which is a clone of Delphi 7.

      VB.NET is still used for web sites as well as Windows applications, do I say that Visual Studio is a waste of time to learn, NO.

      I can go on and on but nobody is telling someone to learn a particular language unless it is beneficial to the person especially a college student. The current job market is Java and the students coming out from school will be looking to work in that field with that language.

      A developer like myself, have to learn multiple different languages so that I can market myself anywhere. Even if it is VBA, yes that little visual basic component that is part of the office package and Microsoft Access. So if you get the message there is no such thing as a dead language and there is no professional software group claiming it. This article is as useful as T*Ts on a bull.

      • I agree. Java and C# seem to be the dominant enterprise languages.
        Of course Javascript is a must for any web developer, as well as a good web framework. When I got out of school 5 or so years ago I chose C# because jobs seemed to pay more, and I preferred working with the .Net framework.

        in response to the original comment: “Marked for Death,” we dont know what the future will hold. Who knows if any language we are using these days will be in use in 30 years, or if they are what they will look like. Surely C/C++ has a leg up as it is the foundation many operating systems are written on, as well as compilers for other languages. Ruby on the other hand has no such foundation, or Delphi/Perl for that matter (to my knowledge).
        That said, the languages on this list may not be on the job hunters watch list at the moment, but like everything there is Ebb & Flow.
        Any good developer will have a few languages in their arsenal, and the more different kinds languages you know, the easier it is to pick up new languages.

  55. I sense a lot of pain and denial in these comments. The author’s recall of angry an outburst by a programmer who (wrongly) sees there career slipping awake is very relevant here. A language is not gone just because it is dead. The operative word here would be viable (able to live, be alive, survive, not going to die). These languages are either viable or not viable. The definitions of alive, dead or dying will always be arguable.

    Cobol is dead like Sumerian. It doesn’t mean it isn’t spoken in the dusty halls of academia, somewhere. The same is probably true of fortran which was my first language. The question is whether ther are new speakers most of all, not the existence of artifacts.

    My take is there are far too many languages being used and new ones in the wings with dubious reasons for being. Being academically or conceptually interesting is important to computer science research but irrelevant to whether it should be used to implement a production system.

    I strongly feel that python was never needed. I offered nothing new of significance. It is loosely typed by design so that the programmer doesn’t have to pay close attention and debugging time to it. That makes it ideal for casual programming by individuals who divide their time among many aspects of their field, only part of which may be programming. The time spent adding functions for specific application domains might have been better spent adding the same functions to a pre-existing equally powerful and broader based language. Now, if this tirade doesn’t at least bring the python defenders out of the woodwork I’ll eat my Grateful Dead T-shirt!

    But you know as pasionate as such defenses are, they don’t justify why others should be learning python now, only why the defenders should be using it now.

    Many of the languages discussed and not discussed are have been dead a while. It’s time to “bring out the dead”. And it would behoove us not to encourage newbies to live with our dead.

      • Not quite what I meant. Good Lord that would mean I think the software houses with the big projects choosing the languages and the programmers should be the deciders! Talk about the cart leading the ass. Do I wish it were that simple?

        • DY (original comment):”Being academically or conceptually interesting is important to computer science research but irrelevant to whether it should be used to implement a production system.”

          Which lead me to: “Viable speaks to the language being widely chosen for new projects.”

          I’m not sure how that infers who picks the language.

          Following that though, the programmers usually do choose the language in my experience… maybe not directly, but I doubt a C#.Net shop is going to decide to pop up a Java or RoR app even if it is a better language for the product, unless C#.Net simply cannot do what they need it to. Of course any good developer can pick up a new language, but there is often a large rampup time in learning new frameworks which usually makes development teams stick with the drill instead of buying, installing and learning a drill press, unless future gains out weight the cost (money and time) of the new tool.
          I did work at one place for a while that had a VB6 app, but the development team was largely C#.Net devs. There was one guy maintaining vb6 while most where working to replace and update its functionality in a new system.
          Currently I’m working at a shop that moved from ASP Web Forms to ASP MVC, which did have some rampup time, but not nearly that of switching languages and frameworks.
          That’s my point of view from my limited experience anyway 🙂

  56. Leroy L.

    Nice call Peter. The fact that there are pages and pages of comments refuting everything in this
    article shows how passionate programmers are about their languages of choice. Sad that I read through all of them because the comments were all pretty interesting and I had assumed that a lot of these languages were marked for death a long time ago.

  57. Ruby’s on the way out? Somebody should tell that to the hundreds of NYC startups building their platforms on Rails and the thousands of students going through WDI classes in anticipation of joining or creating the next wave of startups.

    Top-notch FUD you’ve got going there, but I suspect Ruby’s best days are still ahead of it.

  58. This article has got to be a troll. It is unlikely that any of the languages mentioned are truly ‘dying’ as in no one speaks them anymore. In particular, the author singles out Perl and Ruby for a punch in the eye.

    Perl – admittedly it is a last-generation scripting language still missing usable OO and reflection features. But it is easy to learn and use — and surprisingly powerful and expressive. There is a gigantic enormous body of existing code out there written in it. I assure you most sys admins would sword-fight you out of the building if you tried to uninstall it from their linux boxes.

    If a language was so bad that it deserved to die, then Sed and Awk would no longer be used. But unfortunately such code is still alive and still part of projects new and old, living fossils in a world where anything is OK as long as it compiles, runs, and passes its unit tests.

    Ruby – was Ruby targeted for tarring and feathering because it borrowed heavily from Perl? It is truly a great scripting language, just as powerful and full-featured as Python. It has a few warts here and there, but nothing terrible. Even if you don’t like rails, ruby Rake still makes a powerful build system. I think it has a long life ahead of it.

    If you want to pick on a language, how about Python? In the world of Python, one wrong space and your code compilation fails. Ever try to diff a program where only the spacing is different? Tabs use in a mixed developer environment? Forgettaboutit. They are like kryptonite to Python. Python is a great language but suffers from the eccentricities of its original author Guido. Sooner or later someone is going to come up with a scripting language better than Python and we will all breathe a sigh of relief when we can stop “spacing out” while writing it.

    • “still missing usable OO and reflection features”

      Actually, that’s not really true. While its sort-of-true “out of the box”, we now have Moose and Moo, both of which provide “usable OO”, OO so usable in fact I go to other languages and go “How do I ….” and the response is usually “we don’t/can’t do that”.

      Moo and Moose provide a similar usable OO toolkit. Moose gives relatively comprehensive reflection, and Moo is slightly less comprehensive in exchange for being much faster.

  59. Red Five

    Perl should definitely die. People refer to Python as “executable pseudocode”, and to Perl as “executable line noise”. There’s a reason why they used to have an Obfuscated Perl Contest, and probably another reason why that contest no longer exists.

    • And people who refer to Perl as executable line noise mark themselves as being ignorant, because that statement clearly explains they don’t understand Perl even sufficiently enough to give it a fair criticism.

      “I don’t understand Perl”, Ok, just say that then.

      Because I could easily be just as ignorant and slander Assembly for being similarly obtuse.

      One of the other gems people who don’t understand Perl trot out, is how its a “Write only language”, which I can tell you from personal experience is not true unless you didn’t learn Perl in the first place.

      Because I routinely defer to reading the source instead of the documentation, because the source gives a *clearer* picture of what the code does than the documentation, as the documentation only expresses how the developer intends it to work, not how it does work.

      People also like to refer to the examples of “Acme::Eyedrops”, as if it was some example of real world Perl, where in reality, people who know Perl know “Acme::” is the namespace for joke modules, and that you would rightly be shot if you attempted to employ that sort of shenanigans in production code, or even code intended for other people to use.

      And python is no exception to being writeable in a way that is obtuse.


      So please, you don’t have to like Perl, and I’m not going to lower myself by bashing other languages which are just fine and dandy. Just please, stop spreading the DailyMail-esque opinion of languages using things that are plain fallacies spread by cultural myths.

  60. COBOL will never die. I have heard many references over the years that there are nn’s of Billions of lines of COBOL code still running – and most of it is on bank and financial institution systems. If it aint broke, well… And those bean counters see no ROI for converting that code, but only risk, so it will never die.

    Besides, I wrote COBOL code for the Army in the 70’s, and still write code today, but primarily in C# on .NET platforms, and I have NEVER seen a memory leak or pointer get stepped on in a COBOL program. Heck, the data typing is so strict that it is hard to shoot yourself in the foot with it. Something that C never learned (and did you know it was called ‘C’ because A and B were design failures).

    Just my $0.02…

  61. As a tester, I would test your perl routine with fact(-1) and write up a bug on the infinite loop. Don’t know perl, but C# would copy the routine with each call and run out of memory in short order. Easily fixed by changing == to <=. Five factorial (5!) is 5 + 4 + 3 + 2 + 1 the approximate value of n! is always n*n/2. (Exactly or off by 1) So 1000 should come out with 6 digits if you calculated the factorial value.
    So, you also have a mathematical bug or a descriptive bug in your routine. I don't even know what to call the mathematical process you are running.
    It is impressive that it doesn't have specific numeric types and that number won't overflow and maintain that much precision.

    • Ken, what you’re describing is not factorial, but T(n), the n’th triangular number, T(n) = 1+2+3+4+…+n. Factorial is, in fact, as described in the article. And the reason that C# would run into problems isn’t that it would “copy the routine” (not sure what you mean by that?), but because it wouldn’t normally/by default use an arbitrary precision math library as does Ruby (and for that matter Python) and so wouldn’t by default be able to represent numbers that large. I might add that since .Net 4.0 there’s the System.Numerics.BigInteger structure which would allow C# to cope with this calculation just the same as the Ruby example above.

      • You are right, the web is full of references to n! being a product of a descending series of numbers. Some time after I was taught about factorial some 50 years ago, the universe has shifted and it is now no longer a sum but a product of descending numbers.
        I’m apparently not the only one who believes it is a sum of descending numbers. I’ve read an article about sorting where it talked about sorting routines and the poor ones used an n^2 process, that is the square of the number of items to be sorted. Some processes could improve it to n!, but that didn’t compare to their process, which was n logn. There is no way in heck the new definition of factorial would be an improvement on n^2. But in my definition it’s half of n^2, which is a slight improvement (Almost completely sucked up in added complexity of a single loop’s logic, maybe 10% faster.). The basic bubble sort is n^2, but I could easily modify so it would take half the number of steps by making it what I called n!. However, the complexity increase meant there was only a slight increase in performance instead of being twice as fast.
        I have never in my life encountered a process that executes the new (to me) definition of the factorial process.

        • The universe shifted? Seriously? You’re kidding … right?

          (In case you’re not kidding: The factorial function/idea/concept dates back as early as the 12th century, while the notation as we know it today, e.g. n! was introduced by Christian Kamp in 1808. Anyone with the idea that it refers to a sum rather than a product is simply mistaken. No offence intended.)

          • I’m not kidding, I was taught one thing long ago and far away. It apparently is very wrong.
            But a web site says that sorting may use an n! process. That author is therefore very wrong too, because I’ve never seen a sorting routine that that takes over 3 million times as many operations to sort ten items as it takes to sort one. You couldn’t sort 20 items in a lifetime if used n!. Unless the author was taught n! the same way I was taught and n! is a series of sums. Can you name any useful thing you can get from using n!? I mean, other than getting a basically meaningless number.

          • n! is commonly used in combination processing, what I heard referred to as “choose processing”
            i.e. I have 10 items, so there are 10! combinations (think of 3 items that have 6 combinations: ABC, ACB, BAC, BCA, CAB, CBA) then I want to be able to pick any 6 out of those 10 combinations, as I recall, the number if 10! / 6! (although it’s been a while so I’m not sure that’s exactly right.)

            Anyway, this can be very useful in determining the odds in a lottery. There are 50 balls and you can pick any 6…furthermore, those numbers can be picked in any order for you to be a winner (imagine how much harder it would be to win if you had to pick the numbers in the correct order, too.)

          • It sounds to me that the website that claims that some sorting algorithm (which exactly?) uses O(n!) operations is also confused between factorial and triangular numbers I think. Why? Because this sounds suspiciously like some confused Bubble sort analysis to me where +’s and *’s got mixed up.

            To wit: A typical bubble sort algorithm does indeed take T(n) = 1+2+3+4+5+…+n = n(n+1)/2 steps. So then, if the page is referring to this value as being “factorial(n) or n!” then it’s clearly also confused about the term “factorial” an what it means, and/or mixed up about the true time complexity of Bubble sort.

            (Of course I’m going out on a limb guessing here. If instead, the the page you’re thinking of is really discussing some other sorting algorithm that actually requires n! operations (e.g. 1*2*3*4*5*6*…*n) to sort its input, then that algorithm is, to put it mildly, asinine in the extreme and not worth looking at of course.)

            As for their uses: Factorials are used in combinatorics, for example, there are n! different ways (permutations) of arranging n items in a sequence, and the number of ways you can pick m items from a set of n can be expressed as n!/(m!(n-m)!) They’re also used in calculus and probability theory.

          • Actually, I have used combinatory calculations and a lot of time to figure out how to not use every combination possible and still have the full coverage of possibilities. Sometimes it’s not possible, but other times it is very possible.
            In class we were presented with a puzzle problem. A fellow student calculated with the present computers it would take 6 months to calculate a solution. The puzzle numbers presented really should be calculated in 8 minutes because similar numbers are calculated in 2 minutes on my present device. I’ve found numbers that would take over 2 hours to solve on our class computers. It’s all about taking advantages of the constraints in the puzzle to limit what combinations are looked at.

  62. OK, not exactly half the square. 4! is (4+1) + (3+2) = 10 instead of 8, 5! is 15, not 12.5, 6! is 21 not 18. Hopefully, you can see the correlation doesn’t get worse as the numbers rise.

  63. Bob Johnson

    A professor I had senior year of college, 1982!, boldly stood in front of 100 eager-to-graduate CIS majors and boldly proclaimed that COBOL would be a dead language by the end of the 80s. Well, it’s 2014, and although not in as great use as it was 32 years ago, it’s still going strong at large financial institutions, airline reservation systems, etc. Anyone who knows how to program in it can go to one of these companies and most likely retire from there before the company abandons COBOL.

    “The reports of my death have been greatly exaggerated.” ~ Mark Twain

  64. I’ve never used perl as CGI indeed, and it’s not a language born for it. Perl (before Perl6) is still a cumbersome, but useful, language. Though replaceable, it lives in our *nix machines to do a lot of more or less system tasks. Perl6 is very cool for anyone interested in language parsing.

  65. Tim Niles

    C++ is a horrible implementation of object orientation, truly dismal. In 1984, when I first became aware of this technique (at National Semi in Santa Clara) I felt that the technique would be a major advantage in developing software and also in modifying code. C++ is not the language for this; it is too clumsy. My first encounter with C code in 1981 (I started writing software as a EE student in 1969) was instant love; at that time I had written a LOT of code using assembler languages, and FORTRAN, university COBOL (Yechhh!), BASIC, and had sampled just about every language known to McCracken. C made coding fun! When Java popped up in the 1996 era, it seemed the best implementation of OO techniques without the make work struggles to force C to OO. At NS in 1985, EVERY university grad in CS was totally fixated on the use of Pascal… they had all learned EVERYTHING about software in that language AND had established their personal standing in the software firmament using Pascal… they dismissed everything else as crap and unworthy of their time or consideration. I wonder if ANY of them were using Pascal by the end of the 80s? Maybe at Borland until they bet the farm on whatever that DB was. The funniest front cover (for a tech magazine/journal) was one in 1995/6 “Object COBOL” I just about passed out from laughing.

    The Visual languages were very helpful for allowing the quick development of UIs in coding. Some implementations were good others garbage, but all offered that quick UI advantage.

    I’ve seen almost every language used with some effect for specific apps, so almost any language can be used when appropriate. Perl was fun for quick and dirty development. I believe I saw AWK used to great benefit in 1993 for recording work times in a contract environment with minimal effort and maximal accuracy; good work by the programmer who did it on his own time as a gift (this, unfortunately, developing code on your own time, often angers ‘management’ to the point of insanity… in the early days – the major historical reason WHY we all wanted our own minis (or later, PCs) – was their nearly insane focus on depreciating computers like their were typewriters or some other machine that slowly became worn out… when I heard this kind of thing expressed in businesses in the early 70s, I almost suggested to them that they should ALSO consider depreciating PROGRAMMERS by a total count of keystrokes… but I didn’t because as sometimes sane as these people seemed… they could have believed in it! Funny but not a joke. Well, back to sleep. O and O.

  66. Tim Niles

    Just a short memory of this date in 1989: it was yet another beautiful day in Sunnyvale (the Silicon Valley era has always been best expressed to me as ‘eternal autumn’ where the human body ramps up for a winter than never truly arrives) and the Giants and As were about to play the third game of the Bay Series. At five I decided to walk up to a video store (then, still ramping up in number and videos on the shelves) to drop off a tape. I was in the middle of the Mathilda overpass of Central Expressway when the quake hit; it almost threw me over the handrail – which would have meant a 40 foot fall onto a median barrier with survival unlikely – but while my head was a couple of feet on the other side of the handrail, my body mass was below the rail and kept me on the walkway. The quake itself seemed to be moving SE to NW and there was almost no vertical movement to the thrusts, BUT each one was about 12 to 15 inches in length. After about four jolts while still holding onto the rail, I decided to try to walk off the bridge, every third step was extended by that foot or so, making my steps awkward and long, cartoonlike. Two guys in a car stopped on the south facing my direction saw my cartoon strides and started to laugh and point.

    I’d been in a quake in LA three years before at force 6 and that one had horizontal displacement of about four inches. It took about a mile of walking before I could estimate the rating of the 1989 quake as 7, which was a big quake.

    Fifteen years later, after spending most of that time in the Midwest, I had just moved back to Sunnyvale and was walking around the area… and as October 2004 moved on, I kept wondering about a nagging sense that something was about to merit an anniversary but WHAT. Then, ten years ago, while sitting in a Office Depot, checking out desks and chairs, I started chatting with another customer who started talking about some event on that date fifteen years before… and I STILL didn’t make the connection. THEN I realized WHY and WHAT had happened.

    Big Quakes are Big Events, but they don’t have the same long term cache as say, first sex or a near miss auto accident or lower back surgery. Just easier to describe maybe.

  67. It was fun reading the angry comments.

    The general consensus seems to be that these so-called “marked for death” languages (and platforms) still have lively communities. True as that may be, those communities only exist because of businesses extending the dismal life on what results in code semantics and practices strongly deviated from that of C. Trouble with that is, young developers typically learn C-derivative implementations.

    C-style semantics and practices won, people, despite your best efforts to get mad about it. All of the languages on this list look strange to young developers. The only reason people still use these languages, with exception to Ruby, is because they’re employees supporting applications that should have been rewritten ten years ago. Another reason employees (typically employees closing in on retirement) like these languages, is job security. They will purposefully write code that is so unreadable, compounded with the alien nature of their obscure language, that they are the only ones who might maintain a given application.

    Any young developer forced to reawaken one of these beasts, generally through an internship, is immediately put off by its foreign style and limited, macho, unhelpful community. Said young developer never works for that company again, and will tend to call out the older developers for selfish stagnation. I have witnessed this numerous times.

    These languages are certainly marked for death because people, en masse, don’t want to use them. Are these languages going to die? Not any time soon, but it sure would be nice if they did.

    • “They will purposefully write code that is so unreadable, compounded with the alien nature of their obscure language, that they are the only ones who might maintain a given application.”

      If somebody purposefully does this, I consider them entirely unwelcome in professional I.T.

      This is an unacceptable practice in open-source, and an unacceptable practice in closed source.

      And more, this sort of rubbish won’t float past a code review.

      Its only application is for amusement and learning how your syntax works, because doing horrible things requires you do know the ins and outs of your syntax on a very deep level.

      “by its foreign style and limited, macho, unhelpful community”

      Please be clearer about which communities you’re referring to, and explain how they pass as “macho” in any way, and what they did that was unhelpful. Because that statement verges on unqualified rhetoric. ( Its an extraordinary claim IMO, and that means extraordinary evidence )

      If your experience is only relevant to one language above’s communities, then your statement tars them all as being equally bad, and I really doubt that is the case. ( = my personal anecdotal evidence conflicts with yours, so I want your reference frame )

      I have seen more sadness from companies who establish a system of “maintain the status quo”, companies who don’t have much interest in slowly improving their code-base and are unwilling to pay off technical debt, and _that_ leads to monoliths of code and a system of telling people they have to make it better, but they’re not allowed to change most of the things that matter, because “We’ve got too much relying on this doing it in the broken way now, too big to fail, have to keep it broken”.

      Sometimes that’s understandable and pragmatic, other times it can be simply eye-rollingly painful ( For instance, companies who do Perl code but have a mandate that using CPAN modules is forbidden is a sure fire way to make a horrible job. I can’t give specific examples of this, but we’re forever helping people who are in such a circumstance, and its really, really hard work coping with somebody who has a limited toolset of “what existed in the stone age” )

    • Reese, I’m sure you’ll get some interesting responses to your comment.
      First, I agree that many of the generally-accepted high-level computer languages have C-like language, but I’m not quite sure about this line: “Trouble with that is, young developers typically learn C-derivative implementations.”
      If they get a formal education, then any school offering only C-derivative languages is not giving a proper education to its students. So I suspect those who are Computer science-related majors probably get to see many languages. As for the rest, few of them are likely to be true professionals.
      As a correlation, carpenters can either go through proper training and learn about all of the current tools available and how to implement them according to correct housing codes, or non-professional carpenters can pick up a saw and hammer and learn how to build things without proper training. When it comes time to build a house, it will probably not be up to code, not have the best organization, and in general, have many things wrong with it (although maybe not if the person is truly trying to be a professional, which I expect to be rare for the self-learned person.)
      What this means is the many self-learned software developers do not really understand the profession and, for example (to your second point “They will purposefully write code that is so unreadable”), write bad and obfuscated code that may appear to be done on purpose for job security…I suspect most of this is because it was done by someone who doesn’t REALLY know what he’s doing but learned a thing or two along the way.

      Following up on that, most of the code written more than 30 years ago was probably created by developers who did not have much, if any, formal training on developing software (since there wasn’t much training available). Much of this is still around because companies think it’s mission critical and they won’t allow the true professionals fix it (partly because they don’t trust them, partly because they can’t identify true professionals, and partly because they don’t want to spend the money.)

      So ignoring all the legacy stuff, what’s left? I think the answer to this original message should be: any language that has large amounts of new code being written on a regular basis is not dying (although it might be aging like I suspect we see with VB.Net and Perl) Every few years we’ll see new languages come and go and few that will stick around (like Java and JavaScript.) If they do not evolve, they will fade away into maintenance mode, like we tend to see with languages like COBOL and Flash that are certainly not dead but have seen better days and will likely never recover to that level.
      What’s next? Who knows. I expect to see JavaScript go through a major change in the next few years and eventually have a new set of tools for using the language that will look nothing like what we saw a few years ago. We saw that with Java and it matured into a solid language and I expect to see more web-based languages do the same.

      • I dont think you have to be tool agnostic to properly learn a software engineering.
        I graduated from an accelerated program that taught to the language… C# and Java. They used the language to teach Software Engineering fundamentals, and our algorithms class was taught using C++. We implemented several solutions that come “built into” higher level languages like C#/Java. We learned the tool, then built sample projects to demonstrate our knowledge of the tool. I dont think learning with a language is a bad thing, though I agree, just knowing the language is not enough to be successful in this profession. Learning more languages makes you a better software engineer as you see different approaches to solving a given problem. That said, I dont think the .Net/Java stacks have hindered my ability as a software Engineer. The approach they took teaches students to learn for them selves so as things evolve in our industry we are able to evolve with them. I’ve picked up RoR for a home project, and though it took a bit of effort to retrain my fingers and mind to hammer out code in the given syntax, after a few weeks I am able to flop between RoR and ASPMVC C# (my day job) with little effort. I messup as much as I do with JS or SQL… calling the wrong method or using a ton of _’s in my variable naming, but code reviews and the compiler solve those inconsistencies 🙂

        As far as what we will see from JS over the next several years, I dont think we’ll be getting away from JS. Maybe we wont be writing raw JS, and instead we’ll be using some advanced form of JQuery or CoffeeScript that makes the code more elegant and the development easier. I hope it will be like assembly code. A small percentage of the developers employed today actually write raw assembly, but everything compiles down to it in one form or another. It’s been tough getting all of the major browsers to embrace the CSS3/HTML5 standards… so I imagine asking them to move to a new scripting engine would be even longer of a wait.

  68. It has been truly interesting to read people’s takes on this (certain-troll) piece of “journalism”.

    I think we have to come back to the purpose of a computer language. It is a tool to instruct the computer to do useful work for us. In the beginning, the tools were few, and most were quite straightforward to learn. In the 1970s, a couple decades or so after the “Big Bang” in the world of computers, we had Assembly and C for OS work. Cobol or PL/I for business. Fortran for science and engineering. The other “exotic” languages were mostly for research.

    But 40+ years of furious computer and software development has followed. The computer science universe has expanded many-fold orders of magnitude, and it is not surprising that so-called specialist niche languages are developing large markets onto themselves. Problem solving complexity has increased along with the power of computers and we rely on sophisticated languages and frameworks to wrap this complexity into usable tools to build useful things.

    Still, there are many problems that occur on a regular basis that require only simple tools such as bash, perl, or C to solve. All these languages are just tools. As long as a tool is useful in solving problems, it is unlikely to die, especially generalist tools like the ones I just mentioned. Specialist tools may have a shorter shelf life simply because the world keeps evolving and the environments they were designed for sometimes become obsolete.

    I think the best advice I can think to give is this: Don’t panic. Learn the foundations of computer science well, and do be good in at least one high-level generalist language (e.g. C, C++, C#, perl, ruby, java, python). Beyond that, if you are specializing in a problem solving domain, you will necessarily need to learn the tools of that domain. No one has the time to learn everything available out there well. Don’t worry about that. Life has always been that way, people specialize in what they are interested in. Software development is no different.

    • I agree most higher level languages have vast similarities. That said I think it is useful to learn a strongly typed compiled language and a dynamic interpreted language. The concepts and theory are similar in both, but in practice they are different beasts. Knowing how to use both makes you a better problem solver I think. Similar to knowing different methodologies and patterns. If all you know how to use is a hammer, everything looks like a nail.
      Learning more languages can only make you more profitable. Obviously anyone without JS knowledge is at a great disadvantage in today’s web centric job market. Smalltalk probably isnt going to make you very profitable either… but that’s not to say there aren’t underlying concepts you can learn from older languages that won’t make you a better developer, but those aren’t really resume worthy. I dont see many (if any) postings for those with Scala knowledge.

  69. I have now programmed in COBOL for 18 years. There are billions upon billions lines of COBOL code out there. Public sector is run on COBOL and major legacy systems will continue to run on COBOL until they fail, which may happen NEVER. And until then they are too expensive to replace.

  70. “Rob S” replied on October 17, 2014, replying directly isn’t possible. He said “n! is commonly used in combination processing, what I heard referred to as “choose processing”… then I want to be able to pick any 6 out of those 10 combinations, as I recall, the number if 10! / 6! (although it’s been a while so I’m not sure that’s exactly right.)… There are 50 balls and you can pick any 6…”

    Actually, for 6 out of 50 balls the probability percentage formula would be 100*6!/(50!/(50-6)!) basically 1 in 10 million. To get the exact order would be 1 in 1.2 billion. For an exact match you have a 1 in fifty chance of picking the first right number, 1 in forty-nine for the second or 100/(50*49*48*47*46*45)=8.74e-9, however you have a 6 out of 50 chance picking a correct ball down to 1 out of 45 chances of picking the sixth ball. IE my corrected formula.

    Calculated exact order percentage: 100/(50*49*48*47*46*45)=8.74e-9 or 0.00000000874%. Multiplying that by 6! or 120: 0.0000010488% chance of picking 6 balls in any order.

  71. This is stupid.

    There is so much Perl and Ruby in system scripts, they will be around forever.

    Rails is but a tiny fraction of the Ruby usage.


    def fact(n)
    n == 0 ? 1 : n * fact(n-1)

    puts fact ARGV[0].to_i

    is more idiomatic.

    At least understand the languages you write about.

  72. are you serious. out of that list I only agree with #5, and it’s just because I haven’t seen it mentioned in the past few months.

    I’m an ABAP dev, and even SAP is getting their hands wet with ruby and .net (and once hana rolls out those languages will be so rooted that it’ll be impossible to kill)

    once it’s structured a language hardly dies and 4 out of those 5 are very structured right now.

  73. Joe Cassara

    What I gather from this comment thread is that almost any programming language you can name is still in use somewhere, but programmer civility when talking to other human beings is dead.

  74. Perhaps the title of this article should have been, “5 languages that won’t help your career much if you start learning them now…”

    Since programming languages are but tools, they comparatively may be better or worse-fitted for various kinds of programming tasks of all sorts. There may be better languages to do a particular kind of programming job now than the 5 mentioned, but all are still all widely in use and all have millions of lines of code out in the wild to maintain and improve for decades to come.


    • Joseph Mitzen

      Some say that “Computer languages never die; they just become irrelevant”. Sure, lots of COBOL code still exists in legacy applications that are too big, expensive and critical to risk rewriting. And a few enterprise companies may have so much COBOL code and a team of advanced COBOL programmers that it might not make sense to write new code in something else (emphasis on “a few”). But in general, new code isn’t going to be written in COBOL. And no start-up is ever going to put COBOL on the table as an option to develop their software in. In essence, there are never going to be *more* COBOL programmers than there are right now. At best, a new one will arise for each one that retires. In all likelihood, the number will continue to decrease until it hits an absolute floor. And as such, people will end up not caring about COBOL anymore. New features won’t be added to a language only used to maintain code – in fact, this has already happened. Object-oriented extensions were added to COBOL (!!!) in 2002. There is talk now that they may be removed from the standard because no one’s used them.

      Think about VCRs. I’m sure there are still millions out there. But there’s not going to be any more of them than there are now; they’ll continue to be replaced in time. And no new movies are going to suddenly see release on VHS. Same with floppy drives (I think the last company to make diskettes stopped production a few years ago). Now, the day the DVD was released was the day VHS became obsolete, regardless of the numbers. And while some of these languages may take quite a long time to fade into obscurity, the march has already begun and there’s no sign of any change that would reverse those fortunes. That’s what “marked for death” means. They’re not dead yet, but they are doomed.

  75. Antonio Stark

    “Microsoft’s long love of the BASIC programming language extends all the way back to 1991”

    Seriously? I was using Microsoft’s MBASIC in 1980. In 1976, Bill Gates sent his famous open letter complaining about hobbyists openly sharing Microsoft’s Altair BASIC w/o paying for it.

  76. Chris Chiesa

    The popularity of C# points up the lack of computer science knowledge on the part of the best “programmers” and “software engineers” (I use quotes for precisely that reason) widely employed today. Among those with deeperknowledge, C# is derided as slow. Certainly it is the wrong choice for any kindof non-Web-front-end code where performance is important. I for one consider C# a toy language.

    • Joseph Mitzen

      >The popularity of C# points up the lack of computer science knowledge on the part of the best
      >“programmers” and “software engineers” (I use quotes for precisely that reason) widely employed

      Computer science and software engineering are two different disciplines.

      >Among those with deeperknowledge, C# is derided as slow.

      What type of “deep knowledge” is needed to conclude that something is slow? All one needs is benchmarks. And deep knowledge would let one know that “slow” is a meaningless term. Slower than what? The only real question to be answered is “is it fast enough”? That’s how software engineers build software. You build and check the results. Good enough? Done, otherwise profile the program, find the bottleneck, optimize that section of code and repeat until the software is fast enough. There’s a saying among software engineers (and others): “Computer time is cheaper than developer time”. It costs a lot more to have a developer spend weeks tweaking a program than it does to add another processor, some more memory, etc. Along similar lines, better to have the computer doing something a few minutes longer than for a developer to spend two weeks to make something two minutes faster. In a famous example on the Joel On Software blog the author demonstrated how it was much cheaper to upgrade his webserver than to pay a developer for weeks of effort to make his website run faster.

      “C#/Java is slow” is often said by people who haven’t looked at C# or Java in 8-10 years. JIT compiling have advanced greatly. In an (in)famous example, both C# and Java beat natively compiled Delphi in the SciMark benchmark, for instance.

      > Certainly it is the wrong choice for any kindof non-Web-front-end code where performance is

      Again, what kind of performance? This statement falls into Carl Sagan’s category of “extraordinary claims”. If C# were so unsuited for non-Web code, why is it used so extensively and sucessfully in the enterrpise? I can personally attest that many Wall Street investment firms have ported their legacy Java and Delphi software to C#. One would think performance is important there, no? In fact, Raymond Hettinger has talked about a Wall Street firm he worked for using *Python*. Why, when it isn’t known for speed, to put it mildly? Because it was the only language available where analysts could go to the programmers and say, “Market conditions have changed; we need to implement this algorithm instead” and have the code running by noon. Again, in many instances speed of development counts for much more than computer runtime performance. You can throw more CPUs and memory at code to speed it up, but you can’t just throw more programmers at code and decrease development time.

      >I for one consider C# a toy language.

      C# implements many of today’s most advanced data structures and constructs developed by the computer scientists you claim to be an advocate for. How is a language with features like LINQ a “toy language” along the lines of LOLCode?

      I’m sorry, but you haven’t given any reasoning to support these extraordinary conclusions.

      • Kent Fredric

        > “C#/Java is slow” is often said by people who haven’t looked at C# or Java in 8-10 years. JIT compiling have advanced greatly. In an (in)famous example, both C# and Java beat natively compiled Delphi in the SciMark benchmark, for instance.

        I agree that theoretically, looking at how it works under the hood, there’s no reason Java *should* be slow.

        But what it is in synthetic benchmarks and reality are two different beasts entirely.

        For instance, I have no memory of a Java program I ever found “performant” or “fast”, and they all use excessive amounts of memory.

        Maybe that’s more to do with the culture and style of java programming which lends itself well to novices making horrendously inefficient code.

        But the point stands.

        Java is _not_ the language of choice of for mainstream game development, and the few games I know of that _are_ written in Java have a substantial reputation for being lethargic and drinking great gobs of memory.

        I’d love to have some good examples of decent Java apps that have C/C++ counterparts where the Java app is just as good as its counterparts, but I don’t really see such a thing in the real world.

        I would be glad to be proven wrong.

  77. Bruce Rhee

    C++ slow death? no way!
    Majority of fast paced games and all those special effects found in games are mostly written in C or C++…and you know to well… gaming industry wont fade away…. will it??

    • Also, please don’t tell me that C# is dying because C++ has won! (And here I thought C# was written to improve on C++. I certainly like how it is written, and object is an object. (Not object, @object, #object, &object, *object. Yes, I exaggerated because I can’t ever remember what the modifiers are or what they mean. And yes I ignored casting in C#)

  78. NUTS!

    Delphi is not marked for death, Delphi XE7 is fully multi-platform, on top of that Delphi serves as basis for most other languages. Since it is “Sugar Coated” Assembler.

    How will you continue to develop those other languages for Windows without Assembler?

    NUTS! Marking Delphi for death only shows you know nothing about programming….

    • Joseph Mitzen

      >Delphi is not marked for death, Delphi XE7 is fully multi-platform

      Everything is multi-platform. Delphi is very, very late to that game. On top of that, it’s not fully multi-platform; it doesn’t run on desktop Linux, BSD, Solaris, etc. unlike most other languages and cross-platform frameworks like Qt.

      > on top of that Delphi serves as basis for most other languages.

      Delphi does NOT serve as a basic for most other languages.

      > Since it is “Sugar Coated” Assembler.

      And again… Delphi is not “sugar-coated assembler”. C is sugar-coated assembler. C is also a lot faster than Delphi (2x-3x on various benchmarks). Delphi’s entire focus is desktop apps. Who in 2015 would want to write a desktop app in sugar-coated assembler, if such a claim were true? You’d be marking the language for death right there. People don’t write applications in assembler anymore.

      Now that Delphi is useless as a Rapid Application Development language (Ruby and Python own that market) the new claim is that Delphi is super-fast low-level. The problem with that is that posts of stack overflow from one of EMBT’s top developers at the time disclosed that Delphi’s compiler was over a million lines of ancient-dialect C WITH NO COMMENTS. As such it is not touched unless necessary (and they fired a lot of their top developers and offshored development to fresh-out-of-school, underpaid Romanians). Benchmarks such as SciMark and Tiger Hash show Java soundly beats Delphi in performance and C++ being twice as fast. As such, Delphi is hardly a C replacement either. Delphi inherits Pascal’s old single-pass compiler architecture which originated as a way to save memory when machines only had kilobytes. It makes the compilation fast, but it also prevents many modern optimizations from being performed, which is a major reason why most compiled (or even JIT compiled) languages test faster on execution.

      >How will you continue to develop those other languages for Windows without Assembler?

      HUH!?!? Discontinuing Delphi somehow makes assembler disappear? And again, people don’t write compilers in assembler; they use C or C++, as Delphi’s compiler itself is written in C. It’s Delphi that would disappear without C, not the other way around.

      >NUTS! Marking Delphi for death only shows you know nothing about programming….

      That’s a very… interesting conclusion considering how off your claims are.

      Delphi fans are so emotional about their product, but they and EMBT marketing seem unable to make a case for where a $1000-$2000 proprietary language without Linux support fits in in the modern, open source dev tool world. It’s far too expensive for hobby programmers and it’s far too little supported and lacking in ecosystem and developers for the enterprise. With Visual Studio’s recent community edition release, that put the final nail in the coffin. Who’s going to pay $1K-$2K for Delphi ($1K doesn’t even let you access a c/s database!) without profiler, coverage, TDD, modern DVCS support, etc. when they can get C++, C#, ASP.NET/Javascript/Typescript, F# and Python in a full-featured, up-to-date IDE with reams of support and an active ecosystem and lots of people who know how to use it for free? Delphi’s last niche of 1-5 dev coding teams just vanished and their mobile experiment has failed – Xamarin has emerged as the market leader in that segment. They’ve got nowhere else to turn except to milk the remaining devs for as long as they can.

  79. No language will ever die. If your goal is to chase the latest language for the sake of a spit polished resume then yeah, don’t learn Object Pascal or Ruby or even Java. I’ve been making a good living writing Object Pascal from my first encounter (TP 5.5). I’m a bit of an odd ball though; I’ve never been interested in corporate culture and am not sufficiently PC to play well with others 😛 Once I understood there was life outside of corporate america my programming life soared.

  80. I have to hand it to the OP – regardless of one’s opinions of _his_ opinions (which are thoughtfully supported at least, as opposed to many other like-minded posts) – the resulting dialog has continued for well over a year, with … lol.. dare-I-say, a _plethora_ of interesting and well-stated variations of “yay” or “nay”. From those that cut their teeth on “pre-PCDos” Basic to others waxing on the inevitable demise of our host-star, Sol, equating to that of C++ … or was it COBOL…? lol – I am thoroughly entertained _and_ enlightened. Love that old-world graveyard image/metaphor too.


    Around the time when I was abandoning COBOL for ‘C’ to write Microsoft OS/2 PM programs (it’s true, I had 5 Microsoft OS/2 technical manuals that I probably still have in storage, lol…)
    around that same time I heard “El Guapo” addressing his minion,Jaime, in an 80’s adventure/chick-flick, and, for me, the word “plethora” changed forever, 😉

    “.. do you even know what a “plethora” IS, Jaime?…”)

    My point is that I have enjoyed, ftmp, reading all the varied responses, which seem quite civil, imho, with far fewer flames than I might have predicted, considering the polarizing nature of a theme which crosses the border of “religious”.

  81. I just need to say that some of you complain about Delphi’s price as a real cross-platform (limited), while high-praising Xamarin. Did you actually access the Xamarin’s website to check it’s price? The comparable versions would be Delphi Professional and Xamarin Business. Xamarin asks for 999$/year for it’s product and Delphi is a little bit more expensive for a FULL LICENCE that you can use until you die. Also all professional IDE’s are expensive. Even Visual Studio is NOT FREE, unless you are a hobbyist or a company of 1 to 5 developers. If not, it starts at 499$ / seat. And if you want to use XAMARIN inside it… just add it’s 999$/year/seat to get the real picture. Don’t take my word for it, check here: https://www.visualstudio.com/products/how-to-buy-vs
    and here:

    Sure the EMBT is making a lot of mistakes, like it’s 30 days trial version, like not making a free limited edition at least, or by not giving it for free to Universities – and to all college students that might end up as programmers, like MS does with it’s Visual Studio.
    At this point in time EMBT should make at least a free Delphi, that does not have multi-platform enabled, just for Win32 apps.
    And Delphi would come back to life in NO TIME.
    I’ve used Delphi for the better part of the last 16-17 years, and meanwhile I tried other tools and languages too, like Visual Studio for some C#, Eclipse for Java (desktop) and Android, PHP and some of it’s flavors (Laravel, Zend), JavaScript, HTML5, Python. They are all nice, and useful for their share of things. If I need a web app, I would use HTML+JavaScript+PHP, or directly Laravel of Zend. But in the end, I found that nothing compares to Delphi when talking about desktop apps(and lately the rest of the platforms that they offer), except maybe C# (and that is mainly because they were created by the same brilliant mind). Building and deploying a desktop app using the unnecessarily heavy Java is a pain by comparison. C# has this painful dependency to .NET. So as far as desktop applications development goes, Delphi still rules. There is no other RAD, that is so stable and powerful and gives you the deploy-able executable file when clicking the run button).
    Sure it had some problems in the past with larger apps (but they seem to have addressed those problems in it’s last version: http://www.embarcadero.com/products/rad-studio#double
    Better yet check the entire product presented here: http://www.embarcadero.com/products/rad-studio

    I keep waiting for the Management of whatever company owns Delphi at one moment (EMBT today), to start promoting it for real. There are so many models of companies around to learn from, that promote products which are babies compared to Delphi, and still manage to grab a share of the market. I cannot understand the minds behind EMBT and the reason why they want to keep Delphi down.

    Sometimes, even though it sounds ludicrous, I wish Microsoft would buy Delphi from EMBT and help it blossom. I would settle for Google, Facebook or Oracle to do it. Just any huge company with enough resources and the fresh minds to give Delphi the boost it deserves.

  82. StLeEpYhEaD

    Sorry but Delphi is not dying its simply dead, its too expensive in this day and age. Where most of the major languages and their platforms are free. As for visual basic, not unless M$ kill it off and tell us about it. Because VB.NET is part of the .NET family, its like saying hmmm lets kill off .NET….. which would actually be a sound argument. 🙂

    I think Python should be up there too but that’s just me nit picking.

    Rust, Go and Clojure is the new age stuff. There is allot of weight on these languages.

  83. Did anyone taking into consideration that when Apple/iOS product markets are eaten by Android quickly, do you think the Swift job market will not die quickly? Whether an mobile OS is dying or not is determined by how fast their product market is vanishing, right?

  84. coder678

    We need to get this post in perspective. Any code is just a tool for allowing a system to do what it it was designed to do. When our great * great ² ancestors started painting glyphs on the walls of their caves, I am sure there were others that said carving on stone would kill this form of expression. Then came a vast array of changes, clay tablets, parchment, quill pens, brushes etc. Every one ot these methods of expression is still used today. Some artistic endeavors leave us scratching our heads, but for some reason we still enjoy looking at it.
    Just after the last ice age I started to program as a young Navy Ensign. We coded on (Punch Cards), every hanging chad would kick out a fatal error. At the end of a run there would be as many error cards as good ones. The methods of coding have changed over time allowing for greater efficency and productivity. The coders have also changed, some better than others. The point is that the device using the code has no favorite, it just plain runs what it is fed. Our favorite acronym was “GIGO” Garbage in Garbage out. Every language, not just coding language has been built from the one before it. There are common identifiable aspects found in every one of them.
    The same can be said of all of the languages mentioned in the blog, as long as it gets the job done the device will not care in the least.

  85. Marcello Dias

    Delphi is not only alive and kicking but with
    UNIGUI you can generate a full flaged EXTJS dll.
    Your application will run on any browser without
    cookies with a desktop look and feel.
    I´ve studied ASP.NET MVC,Dart,Polymer and came back
    to Delphi just because I could not find some as productive as
    Creating your UI with Markup is for those who really don´t know
    what is an enterprise level application.
    IBM is doing something similar to UNIGUI to acess their mainframes from the browser.
    I´ve been hearing about the Death od Delphi for 15 years,the only years that I regret were those that I wasted trying to go to Java,c#,Asp.net and even Dart.Although I really think Dart a good language but without any databasing support.
    Delphi will outlive C#,ASP.NET MVC and many other.
    The only thing I don´t like is it price.

  86. Sauricio Ornitopodo

    Languages go back and forth, take Fortran for instance, somehow it still is alive, as well as COBOL, however, both have been turned into some sort of Frankstein monsters.
    C++ has been also heavily patched (C++ 0X), because, whether you like it or not, it’s a legacy language too, it survives because it has no matching rival in the systems programming arena.
    Java and C# are sinisterly Object Oriented, with no multiple inheritance and very unbendable, otherwise patches such as AspectJ wouldn’t have a reason to be.
    Python, Ruby, Perl and other dialects are extremely permissive, at times promoting bad practices, but at other allowing innovative approaches. Have you ever written programs which write and execute part of their own code at run time? This can be done with SQL procedures too.
    If you think some language is legacy, lousy or needlessly complex, take a look on Intel’s and AMD’s architectures, beasts raised in the name of backwards compatibility and pseudo-improvements.
    In the end -very possibly-, the problem lies beyond languages, we just have gone too far in trying to emulate models and abstract approaches with our exhausted hardware schemes. Whether you like it or not, our fundamental paradigm still is the ‘stored-program computer’, we emulate other realms by means of software; just recall that computer languages are software too.
    For the time being, and regardless of the tools in use, let’s enjoy the practice of computer programming!

  87. Python should be up there, I wonder what computer science studies still use languages stuck in the 90’s oh right statistics. Eventually it will lose glue/paste and just allow sticky notes to define empty spaces. Just pull out a Casio calculator and use that probably easier syntax wise!

  88. Nice Article, Practically makes u to take a decision about your future to be a developer, And the Winner is C#.NET and Java. Open Truths are sometimes hurting, but the fact is what is practical is LIFE? Survival of the fittest Developer who wants to have a peaceful life should be capable of making decisions for the short life, the developer is gonna live, This article gives u the Judgement to make you Survive. That’s nice regardless of personal preferences and crying about it!!

  89. I noticed alot of people are saying that c++ is dying, but colleges everywhere (or at least the ones I’ve heard of) are still teaching it. Heck, even the class I’m in is teaching us c++ 11. Not sure if it is dying and people are making poor decisions to continue teaching it to a generation who will never use it, or people are just exagerating. Although my expirience is limited, from what I know of c++ is that it’s a solid language, easy (to an extent) to learn and use. I don’t think it will die out, I think it will just change into a different form like it did when it shifted from version 98 to 11.

  90. Talking Lobster

    Fortran is dead and good riddance…

    Basic is dead maybe it was just too basic….

    Pascal is dead at least Delphi’s vision….

    C/C++ won’t die, it simply can’t, you would have to kill every modern language that got it’s influence from the grass roots. Worse case scenario C/C++ goes the way of assembly and probably would become irrelevant to companies.

    I can see it being irrelevant to M$ dog forbid some genius creating a Windows clone.

  91. Nah, Perl is still useful, and making new projects with it today (especially web apps) is a good choice, although maybe not all of the frameworks are currently up-to-date with explosive web development frameworks and techniques examples.

    Perl for system administration and heavy text processing and manipulation, and networking? Hell yeah.

  92. Steve

    I thought Delphi died 15 years ago when Borland went mad and committed corporate suicide by not caring about its core product users in favour of a management “middleware” fantasy. End of story?

    Not quite… I moved to a Microsoft stack thinking they would never be stupid enough to abandon their developer community…….

    Then Microsoft missed the mobile revolution and dumped on their core developers big time while vainly trying to catch up (c.f. Silverlight and other abandonware)….. Now I have looked around for a new stable tool stack.

    The fragmentation in the tools market has become much worse than it was and the fashions seem to come and go at ever increasing speed.

    As a quick fix for a small job I tried Lazarus. I am amazed at how good a product this is. It is stable, fast, targets multiple environments and is free”. Because it is open source I am not dependent on the marketing fashions and management whim. ….

    My conclusion….Long Live the Undead!

  93. speaks6languages

    80% of business transactions in the world still run on COBOL. The replacement effort doesn’t seem to be going so well. The death of COBOL has been predicted for over 20 years now. For business applications nothing is better than COBOL, not C++, C#, JAVA or any other OOP language.

  94. I love how this post has lived so long (maybe longer than a few computer languages??). I was thinking of putting “Pascal” on my resume, but I now know better- thanks.

    I want to buy a key punch machine and re-live 8th grade! FORTRAN and LED ZEP!

  95. Mario Ray Mahardhika


    with TSmartObj.Create do
    Add(‘I never said goodbye’);
    Add(‘ you did’);
    // oops, no need to call .Free, thanks to TSmartObj
    System.WriteLn(‘And I”m still standing strong here to slap you in the face!!!’);

  96. Edgar Avila

    I think, that anyone can say anything about programming languages. It depends on the knowledge that each one have about a particular one.
    In my own experience, working a long time ago with Visual basic 6.0 and now with Visual Basic.NET, I feel very comfortable with those. In this very moment, I’m working with Approximation Theory and Numerical Analysis with Multiprecision numbers and the language have proven to be perfect for the proposed purpose. My work goes to approximately 8000 bits of accuracy, including Machine Efficient Polynomial Approximations and it works as expected, with a high degree of efficiency. So, I don’t understand why some people says that my preferred programming language is very close to death…that is very close to say that if someone does not like a programming language, that tends to disappear…

  97. Armada75

    One of the comments said it best…They say in biology “That which is not growing is dying”. As its share of total lines of code shrinks, it becomes more and more irrelevant.

    So you state that Perl is dying, but I have to disagree…Why is it a favorite among programmers and developers? Because it has the ability to work with so many other languages and it is much easier to learn vs. C++, IMO. You don’t provide any reasons as to why Perl is considered “dead” or “irrelevant” and I would recommend an update to this article considering that Perl 6 is now out and a BIG favorite among developers and database engineers. If not, then provide some key reasons as to why it is dead other than the fact it is because it took so long for Perl to come out. IMO, Perl 6 does embrace the 21st Century and based on the level of popularity I have seen and the use of CPAN.org, it is here to stay. In addition, why not add a related article that will emphasize what will be it’s replacement along with some facts and references backing up your opinion. The only thing that I can agree on is the fact that “Flash” is dead, but I wish someone would tell the bigwigs at Microsoft because they seem to cradle it like it’s their baby instead of letting it die peacefully. What would be a good replacement for Flash that could resolve the security risks that have plagued Flash in the past?

  98. Daniel Morrissey

    A good example of someone who doesn’t know enough to realize he shouldn’t be editorializing on subject that he is not very knowledgeable about. His lack of historical knowledge of the language, it’s role in the evolution of technology, and his weak comprehension and appreciation of the multitude of dimensions such as linguistic and economic principles would prevent most educated people from writing such a misinformed article.

  99. Jan van Westland

    Free Pascal is actually vey much alive. It is one off the best languages out there. It certainly is the best multi-purpose language. And it is by far the best language for fast prototyping embedded software, so for programming the internet of things. And by far I really mean light years away from others. Is is easy to learn and progam (compared to Pascal, C and C++ are total hell). Pascal is easy to read and thus to maintain.Is has one off the best (if not the best) rapid development environment (Lazarus). It runs almost as fast as C. It has by far the best hardware support. It is very stable. And above all Free Pascal and Lazarus are both free.
    And if you really wish to use commercial products there still is Delphi.
    Also there are many great libraries out there that are still very actively maintained, like Python4Delphi.

  100. Starry Gordon

    A lot of the discussion here seems to be religious in form and nature. When I was last doing real combat programming, the established religions were Java and XML. However, my work was mainly providing one-off ad-hoc patches on legacy systems (being something of a legacy system myself) and for this sort of thing I found Perl’s variegated syntax and baroque excrescences rather useful, however odd. Hence when something needed to be done fast, the masters of the local universe came to me; I could get the job done in the same amount of time the mainstreamers were just beginning to look up solutions on the Net. However, I’d guess most of them could work better with Java or whatever they were using at the time. Since then, we have gone on to the world of JavaScript and JSON. JSON is all right although rather limited (as with COBOL, Fortran, and C, that’s one of its advantages, actually) but Javascript is, in my opinion, the worst living computer language I have ever encountered. The worst thing about it is not its syntax, however, but the now established tradition of changing its syntax every few years, which goes along with the way it was created in the first place (in ten days, I hear) and the way its was implemented by its major early promoters — all different, and all poorly defined. Naturally, it has become the predominant language and everybody must learn and use it, which is a further element of its badness. In the computer world, though, crappiness is no hindrance to success: hence the (hopefully temporary) triumphs of Microsoft, Intel, BASIC, and so on. Ignorance, I suppose, was the main excuse for their faults; there is no excuse for Javascript.

  101. These “predictions” are mostly wrong, because they are not so much technical, but a reflection of the author’s bias and prejudices. Often C language family users (C, C++, C#, Java, JavaScript) want or wish for non C syntax and languages that don’t compile to C, to be dead. Consequently, languages like BASIC, Pascal, or Perl have nearly always been high on the hit list.

    Looking at these predictions years later, the only thing they got right was Adobe Flash and Air, which is really more an outdated technology that the industry agreed to move away from (and a lot to do with security). ActionScript, the actual programming language part of that technology, is a close cousin of JavaScript, which is doing quite well. Clearly it wasn’t about the language, but the technology and security issues involved.

    Visual Basic.NET syntax is used in a lot of RPA/RDA products, must popular among them is UiPath. Being able to code in the language is an advantage, to include being able to create .NET packages to extend the usability of UiPath. In general, Visual Basic like languages and close cousins are all over the place. FreeBasic, PureBasic, Gambas, B4X, PowerBasic, etc… The options are almost ridiculous in number. BASIC is NOT going to die any time soon, and neither is Visual Basic, which is free and offers an easier path for BASIC family programmers to use .NET.

    The next target is of course Pascal and Object Pascal. By the way, Delphi is a product name, the programming language is Object Pascal. C, C++, and C# zealots (and their commercial masters behind the scenes… like AT&T, Microsoft, Sun/Oracle) have been warring against and wishing for Pascal’s extinction since the late 1970s. People have been trying to claim Pascal/Object Pascal’s death for the last 20 freaking years! Ridiculous! Yet, today there are so many dialects of the language. Delphi, FreePascal/Lazarus, PascalABC, SmartPascal, DWScript, Oxygene, etc… Plain and simple, Object Pascal is a strong viable alternative to C/C++/C#/Java, that will NOT die anytime soon. Furthermore, Object Pascal allows programming close to the metal, while offering great IDEs for building applications on many different OSes. A level of flexibility in which few programming languages can rival.

    Perl and Ruby will still get you a job in 2021. More than enough proof that they are still in use and are not going away so quickly. When these language go, it will be a very slow fade. More like over 20 years, not something instantly.

    Lastly, don’t be such a C-family zealot. Trying to blindly label any contenders or competition as “DEAD”, is less about tech reality and more about personal preference and wishful thinking.

  102. Welp. 2022 and Borland Object Pascal and the Delphi dialect both can now be compiled to target the Java VM, Android, Webassembly, IoT, LVVM, GCC, ……

    Never understood the C VS Pascal debates.

    You got two compiled ancient languages that are very, very similar in execution speed that can readily interface with one anothers object code as of the last _decade_ and people still talk like a language can’t be a means to an end you choose to use by where it fits best and has to instead be a hostile xenophobic religion where you code in the language the lordt truly intended and smugly await the day the lake of fire claims the users of the heretically misguided infidels who’re bartering with their very souls using that _other_ language…
    Y’all know there’s like 9 new languages a year now, right????
    Once a specification is there and proves interesting to anyone at all it isn’t going to just die. People are going to end up homebrewing compilers for their favorite ancient languages in whatever is available until we exhaust the planets resources and have to eat the computers to survive.
    it’s not a question of death when a language stops being advertised. it’s a question of is X language currently trendy enough to have a thousand adherents on every forum smugly proclaiming their victory over all those evil other languages that SATAN HIMSELF HATH MADE TO DRAW AWAY THE TRUE BELIEVAHS. If not, it’s apparently dead. Or at least reported missing. Except for all those brand new compilers people keep making and all those new platforms people keep porting it to. The emperor has really dope clothes, if you can see his junk it’s cuz you’re just like, not a really real programmer and stuff.

  103. TruthTeller

    Here we are, several years later, and Object Pascal/Delphi is ranked #11 on the TIOBE Index. That’s ahead of such darlings as Golang, Swift, Lua, and Rust that are not constantly being declared dead or near death year after year.

    Now, ask yourself, why isn’t certain media not yelling “Golang is marked for death!!!”, or “Rust is dead!!!”, or “Swift is dying!!!!”. Yet, year after year we hear this about Object Pascal/Delphi. Hmmm… Something weird is going on and smells funny.

  104. August 2022 and Delphi is still here.
    and strong.
    With tools like UniGui/ExtJs that connect to Delphi
    It is possible to produce any application of any type, easily, quickly and with good quality.
    It is possible to write software and applications of any kind in any field, from hardware to heavy systems based on a large data base