Stack Overflow recently published a blog post where they ran analytics on data they have collected. They ran calculations that showed which programming languages are the least popular with their user base.
The analysis isn't on the technical merits of each language, but rather how programmers feel about the languages. That being said the results revealed something interesting. Languages that have a specific purpose, but are used for other general-purpose programming projects are unpopular.
If you look at the four most disliked programming languages, there is a common theme. All of them were created to be good at a specific task and are powerful enough to be used for more general-purpose programming.
Rapid Application Development
Custom Functionality in Office Applications
Perl is at its best when you are using it to manipulate text. VBA is at its best when it is used to do simple things in Office documents. Their problem is that developers have used them to create entire enterprise critical systems. Delphi is the most general-purpose language of the bunch, but it definitely has its niche in developing GUI apps that manipulate database data.
I'll admit that I've had some unpleasant experiences with VBA. But they largely stem from the fact that I was working on a system that should have been implemented with a general-purpose language. Blaming the language for these shortcomings is like blaming a tack hammer for not being a standard claw hammer.
It is often the case that a project is started with whichever language the developer happens to know at the time. Or maybe the developers selected the language because it worked well in the past on some simpler project.
But as the Stack Overflow data shows, this leads to painful projects. It is critical for projects to select the right language, platform, and tools if they are going to provide maximum value.
But for this to happen, the developers and/or architects need to have a broad understanding of what tools they have available. It is important for software developers to continue to learn about new tools are available so that they can leverage the best tool for the job. This isn't because there is a value in using the newest, shiniest language or library. It is because using the best tool helps projects maximize the available schedule and budget.
The other key piece in using the right tools is to have the correct understanding of the scope of the project when software development begins. If the developers underestimate the size of the project, they might legitimately think that VBA can handle the requirements. If they think that the project is little more than transforming textual data, Perl might look like the right tool for the job. So it is vital that stakeholders and the development team have a correct common understanding of the goals of the project.
Using the right toolset is beneficial to the initial development. It is even more important for the operational phase. If the project is going to have a long useful lifecycle. It will need to continue to grow and change. This will amplify the benefit or detriment of the tool.
Eric is a Microsoft MVP and Software Architect for Aptera Software in Fort Wayne Indiana, working primarily in the .Net platform. He has been developing high quality custom software solutions since 2001. He is also an adjunct professor of computer science at Indiana Tech. He loves to dabble in new and exciting technologies.