The world of software development has a strange irony to it. On the one hand, technology is changing so quickly that developers are forced to constantly learn new tricks to stay current. On the other hand, existing projects and code are so hard to replace, systems can stay in maintenance mode for decades, slowly being significantly rewritten but never actually replaced. These 10 technologies are ones that software developers will be using for a long, long time, even if some are past their heyday.
COBOL is all over the place and probably always will be. There are millions of lines of COBOL code out there powering banks and insurance companies and other mission-critical systems that handle massive amounts of data. Many of these systems will be in services for decades if not centuries without replacement.
A lot of systems that use VBA, VBScript, or VB6 (all related technologies) are outdated. But VBA is still the macro language for Microsoft Office, and plenty of people depend upon it to do their jobs. As miserable as it is to work in VBA (it has collections but does not allow you to check if a value exists in them?), it will be around for quite a while unless Microsoft somehow comes up with a suitable alternative.
3: .NET WinForms
When Microsoft came out with .NET, developers used WinForms to make Windows applications with it. WinForms was a thin veneer on top of the Win32 API, and for VB6 and MFC developers, it felt very comfortable. For better or worse, Microsoft is replacing WinForms with XAML; first in Silverlight and WPF, and now with Metro. All the same, the fast rise of .NET meant that tons of WinForms applications were built — and they will be maintained for a long time, just like the VB6 applications out there.
A few short years ago, it was impossible to even imagine a Web without Flash. It was everywhere. While Flash still is everywhere, HTML5 threatens to push it out of its spot for rich Web development. Even so, there will be existing Flash work out there for ages, and it will be maintained and extended. HTML5 still can't replace Flash for some things, either.
Until fairly recently, C was enjoying a graceful, slow drift away from actual application development and being relegated to the roles of hardware driver and operating system development. And then the iPhone (and later, iPad) were released, causing a massive surge in use of Objective-C, which is a superset of C. Now, thousands upon thousands of developers have learned C in the last few years and used it to write hundreds of thousands of cutting-edge applications. Talk about a comeback! The popularity of iOS will ensure that C will be used for application development for some time to come.
If languages were people, FORTRAN would be regarded as COBOL's fuddy-duddy spinster aunt. But like COBOL, FORTRAN was the language of choice for certain industries and sectors, a pile of code got written in it, and replacing that code is basically impossible. Where COBOL runs the banks, FORTRAN runs things like weather prediction.
SQL is a strange case. On the one hand, databases that use SQL are still all over the place, and SQL is often the only way to work with them. So it is no surprise that the SQL language itself is out there in spades. What is a surprise is how many developers are still writing a lot of SQL code. With all the various database abstraction systems out there, such as the ORMs (Hibernate, Entity Framework, etc.) and other systems (Active Records, LINQ), why in the world does anyone actually write SQL into their applications? It should be the (very rare) exception, not the norm, yet many developers find a need to write SQL. Even if everyone stopped writing SQL by hand tomorrow, though, systems would be automatically generating it anyway.
8: ASP.NET WebForms
When ASP.NET was first released, WebForms had the unenviable task of trying to make Web development feel as familiar as possible to traditional desktop application developers. To make it even more of a challenge, it carried over and extended many of the technologies from Classic ASP, while completely changing the overall model. WebForms clearly suffered from serving too many masters, and less than 10 years later, Microsoft was pushing ASP.NET MVC's streamlined model in its place. Like WinForms, the WebForms' similarities to previous systems led to rapid adoption, so WebForms Web applications will be around for quite some time.
Java is nowhere near being close to a decline. It is still a strong, vibrant ecosystem. But if and when the day comes that people start referring to it as "legacy," it still will have many, many years left. It is no surprise that Java is often called "the modern day COBOL" by industry observers. It has a combination of traits (like running on *Nix servers and mainframes) that makes it attractive to the same industries that COBOL appeals to. Java has made impressive inroads into those areas, and even if the flashier uses of Java (like Web development) go away, it will still hold a prime spot in the world of Big Iron.
It is hard to believe, but at one point, the Web was little more than a way of posting documents online so that you could easily access one document from another. About 20 years later, and HTML is now a wildly popular development system that has enabled an unimaginable revolution in how computers are used. And the funny thing is, up until HTML5, it was never deliberately designed to fulfill the role it was filling. It is hard to imagine a computing world without HTML (or one of its descendants) in the future.
Other persistent technologies?
What languages and systems do you think will be hanging around for the foreseeable future? Share your predictions with fellow TechRepublic members.
Justin James is the Lead Architect for Conigent.