Minimal IT logo and link to home page
Research, training, consultancy and software to reduce IT costs
Home | About | Newsletter | Contact
Previous | Next Printer friendly
19 April 2011

Why are there so many programming languages?

By Andrew Clifford

Programming languages will continue to evolve, challenging projects and providing interesting opportunities for software developers.

Back in the late 1990s, I spent some time evaluating development tools. It was the heyday of fourth genreation languages (4GLs) and client/server computing, with PC-based applications accessing server-based data. There were many tools to choose from.

Because there were so many tools, there was a lot of competition. Some tools failed completely. Some were left as niche tools, with expensive support and little or no further development.

In our evaluation, we concluded that the most viable options for application development were general-purpose third generation languages (3GLs) with a large installed base and good vendor support, in particular C/C++, Visual Basic, and the then-new Java. More advanced 4GLs, such as FOCUS and PROIV, were more risky because skills were less available, there was vendor lock-in, and there was a higher risk of the tools failing. The long-term risks outweighed the efficiency advantages.

Since then, the market has developed much as we imagined. Fourth generation languages (4GLs) have not become dominant. Java has become a dominant language and technology. For Microsoft platforms, the .NET platform, with C# as well as Visual Basic, is now dominant. C/C++ remains the language of choice for a lot of technical development.

Although there has been some consolidation around Java and .NET, there has also been a great proliferation of languages, especially for web development. Java Server Pages (JSP) and ASP .NET are understandable as extensions to the Java and .NET architectures. Other web languages, such as PHP and Ruby, have grown too. There continues to be an expansion of interest in all types of programming languages and environments, such as creating an improved language that runs in a Java environment or running Tcl in Google Chrome, to pick a couple I have come across recently. Even the 4GLs of the 1990s continue to hang on.

Some of the proliferation is rational competitive evolution, with better tools overtaking the less able. However, there are other forces at work.

There is a fundamental characteristic with tools that are specialised for a particular purpose, such as client/server tools in the 1990s, or today's web development tools. They provide value because they meet the requirement well, but their specialised nature makes it harder for them to evolve. Change in underlying technical requirements therefore drives new tools, though the old ones linger on.

The evolution of open source drives proliferation by allowing old tools to survive. Tools which could not survive as commercial offerings can be developed and kept going by a few dedicated individuals or desperate organisations.

And of course personal preference, stubbornness and gratuitous reinvention all drive people to use different tools.

Whatever the reasons, programming tools are continuing to proliferate. If you need to choose a language for a new project, you need to think carefully about long-term viability. This year's hot technology may be next year's legacy.

But on a personal level, this continued diversification can be a good thing. As well as continually generating new opportunities, it is one of the things that makes the job fascinating. Although it may be irresponsible to say to, I hope this trend continues.

Next: The third shall be first


To subscribe to the newlsetter, simply send an email to
Privacy policy

Subscribe to RSS feed

Latest newsletter:
Magical metadata

We use the term "metadata-driven" to describe IT solutions in which functionality is defined in data. Taking this to the extreme can provide unparalleled levels of speed, simplicity and versatility.
Read full newsletter

System governance

System governance helps you implement high-quality systems, manage existing systems proactively, and improve failing systems.

Try it for free!

Find out more