Top programming languages – what’s your selection criteria?

31 August 2021 by Catalyst

It’s no exaggeration when we say there are more than 700 in-use programming languages.  Some are designed for very specific purposes, while others, such as industry stalwarts C++ and Java, have broad application and support across a wide range of diverse platforms. 

With all this choice in application development languages, how do businesses make sure they are making the best selection for their needs? Let’s take a look at some tips to help with your organisation’s selection criteria.    

Top 10 programming languages developers use

According to RedMonk, in its latest programming language ratings (from June 2021), JavaScript holds the number one position for language popularity, followed by Python and Java. 

In the top ten, you’ll also find C# and C++, as well as PHP and CSS.  These languages are the foundation of web and enterprise application development. Beyond the top ten, Apple specific languages such as Objective-C and Swift, R and PowerShell have also seen massive adoption across the development community, along with less well-known but equally as powerful languages such as Dart, Kotlin and Rust. 

 

Delivering sustainability and innovation 

Programming tool set selection is a crucial decision IT leaders make when embarking on a fresh development project. Language choice underpins many future decisions, be it related to hiring or appointing resources, team coding practices, security practices, application testing, hosting architecture and deployment mechanisms.

Get your team’s view not their vote

There is no doubt that you need the right tools for the job in hand.  You  need to keep up with latest innovations and determine if they would help your business. However, it’s important that you remain cognisant of the the fact that developers love to explore new technologies. They enjoy experimenting with new languages and new approaches to solving old problems. Their views may be based on the excitement of what the new shiny kid on the block does, rather than considering the sustainable operational benefits of less exciting, established languages that offers long-term support and viability: the bigger picture.  

Common language support 

Keep your business goals forefront of mind when choosing your application development project’s language. Gather feedback from a number of technology stakeholders, who will almost definitely have varying opinions.

Access to experienced developers

Using an innovative new programming language can be amazing, but for those of us who have responsibility for delivering sustainable business results, we  know that the availability of experienced developers is a prerequisite for success.  They need to have a track record in delivery using that language, along with the maturity and support available for the language standard. 

It pays dividends to understand the level of community support a programming language has, such that the talent pool of available developers isn’t limited to a handful in your local area. You want to be sure the pipeline of bug fixes, tools and uplifts to core capabilities are well planned and supported into the distant future. 

Open source community

Adopting well known open source programming languages, such as Java and Python, offer the widest possible talent pool, so no matter your organisation’s location you will find experienced and junior programmers seeking new opportunities. If you decide to adopt less well-known languages, even if they are tailored for your specific needs, the talent pool becomes considerably smaller and introduces ongoing business risks such as maintenance costs, future language support and integration challenges.

Information security

It is critical that you evaluate the track record and practices of any technology as it pertains to security. This means establishing how security issues are submitted and reported. All technologies have a history of some security issues; understanding the cadence and resolution history of Common Vulnerabilities and Exposures (CVE) is a fundamental element of any technology assessment.

This is especially true for proprietary languages that are attached to a single vendor that has a shared responsibility for generating revenue as well as being transparent with any security issues in a timely and professional manner.

Catalyst believes that open source development languages, and their associated communities, have very mature security processes and practices due to their widespread use.  This is a real plus.

Early adoption

While it’s prudent to use widely adopted programming languages, there are obvious exceptions. In some cases, languages originating for a specific purpose, in a burgeoning market, can be the right choice, especially if you get in early in the development cycle and build your internal capability based on influencing the language’s development standards and roadmap.

There can be huge competitive advantages to being an early adopter of a particular technology. However it’s also possible that, with the passing of time, you are working with technical instruments that are blunt and out of fashion. And with a growing “technical debt” footprint (i.e. you will need to re-implement a lot of your application in a better technology at some point).

Application development choices that support your business

red clip board with checklist

The choices you make will have a long-lasting impact on your development team, its productivity and your ability to deliver on your business objectives. You need to maximise your chances of success.

Risk appetite

Every organisation has a unique risk appetite and an appropriate budget to support it. More established programming languages are the safe choice, since many of those with longevity, such as C, C++, C#, and Java, have foundational capabilities that make them a sound option, such as their ability to build foundational hardware support, or their portability across execution platforms. 

Programming experience

The established languages do demand a level of programming experience, rigour and discipline.  They can also, with less experience, introduce more complex and esoteric bugs that could see our products published with major security failures or performance problems. 

If you want to standardise on these sorts of languages, you will need some experienced developers in the team who understand the nuances of working with languages with this level of control and power over the systems they run on, and these resources don’t come cheap. However, building a developer practice around these languages and with this kind of talent will pay dividends in the long run, but may take longer that your organisation wishes to wait for revenue earning results. 

Must-have functionality

Other languages, for very specific needs, such as iOS development, or building IoT devices, can be the right  and only choice at a given point in time.  This is particularly relevant if you need to accelerate your product’s time to market.  

Sourcing expert help when you need it  

Leveraging the knowledge and experience of technical experts, when you need it, will deliver robust outcomes for your business.  This is particularly true if  software development is not your core business. You could spend weeks, months and years making poor technical decisions that deliver sub-optimal results. 

Application development services

Catalyst has been delivering enterprise-level application development projects for over twenty years. Our custom software development work supports a variety of enterprise open source languages, all integrated into our core development workflows. 

Explore the latest software development case study

We also get involved in strategic consulting work with our clients, helping them to assess their options in technology tool selection. This supports them in making  informed decisions quickly, reducing costs and mitigating the risks associated with unforeseen issues.

If you feel your organisation would benefit from expert assistance or guidance with selecting the languages that best suit your project’s requirements, please get in touch.

Contact the Catalyst Development Team today