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.
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.
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
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.
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.
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.
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