Coding Life

How to Choose A Programming Language for a Project

Questions to ask when you’re choosing which language to use for your project

Jun Wu
Jun Wu
Aug 29, 2019 · 4 min read
Image for post
Image for post
Photo by Thanos Pal on Unsplash

Choosing a programming language for a project is different than choosing one to learn. Often, people will tell you that there’s no choice. Certain languages are chosen as the industry standard, and you just have to adapt. With as little freedom as you have, there are still some considerations to be made when choosing a programming language. After all, it will impact the main constraints on your project, such as time, budget, resources, and maintainability, and etc.

Image for post
Image for post
Image from https://insights.stackoverflow.com/survey/2019#technology

In Corporate IT departments, this is often one of the issues technology managers struggle with at the beginning of many in-house software projects. Sometimes, the decision will stare you in the face when you’re trying to scale up legacy systems and bring them up-to-date.

When I was working in Corporate IT, our developers had to maintain high-performance applications that were time-critical. These applications were mostly written in Java and C++. However, as projects progressed, the need to scale up for performance was increasingly apparent.

Java’s handling of concurrency became such a problem that the team ultimately decided to try a different programming language, even when no one on the development team knew how to program in that language. The investment in time and budget ultimately meant the team had to take a huge risk. But, in the end, just rewriting one component allowed huge improvements in performance. It also allowed for more stability within a critical part of the application.

The lesson here is that often, the problems that we encounter in our IT projects will propel us to re-examine our programming language choices. This is an accepted part of the evolution of any IT project.

As a product manager, program manager, and technical manager, knowing all the moving pieces in a project is important. This is why it’s important to know how all the components of your project might lead you to choose specific programming languages. Knowing this will allow for a better view of the future of the project.

Any time you choose a new language, it’s a game-changing amount of overhead (resources, time, and effort) added onto your project. Having a good view at the beginning of the project and making a sensible programming language choice will lead to less time spent in maintaining the project, scaling up the project, and securing the project later on.

Ultimately, you want your software project to stay for the long haul, serving the business needs of your customers even through the business changes that may occur.

What Are the Questions to Ask When Choosing a Programming Language?

This is by no means a comprehensive list of questions. But it’s a list that can serve as a starting point to choose the programming language that you’ll need.

  1. Does the language have proper ecosystem support? Will the language survive for the long haul? Is there vendor support provided for the language?
  2. What’s the environment that the project will run on — web, mobile, etc.?
  3. Are there infrastructure considerations to using the programming language, such as new hardware required? What are the deployment considerations?
  4. Does the client prefer a certain programming language to be used?
  5. Are there specific libraries, features, and tools for a programming language that are the industry standard for this type of project?
  6. Can our developer program in this language? Do we need to hire new developers? Can our developers learn the new programming language quickly?
  7. What are the constraints of your project that are non-negotiable — time, budget, resources?
  8. What are the performance considerations of the project? Will the language accommodate the benchmarks and the performance?
  9. Are there any legacy codebase considerations for the project?
  10. Are there any interface issues with upstream and downstream systems or external systems?
  11. Does it need to integrate with third-party tools?
  12. Are there any security considerations?

How Are Programming Languages Being Used Today?

  1. Web Applications : JavaScript, PHP, Ruby, HTML/CSS, TypeScript
  2. Mobile Applications: Swift, Java, JavaScript, Object-C
  3. Operating Systems: C, C++
  4. Distributed Systems: Go
  5. Enterprise Applications: Java, C#, C++, ErLang
  6. Analytics & Machine Learning: Python, R, Clojure, Julia
  7. Math & Scientific Computing: Matlab, FORTRAN, ALGOL, APL, Julia, R, C++
  8. Data Visualization: Python, R, Java, C#
  9. Big Data: Java, Python, R, Scala, Clojure
  10. Data Storage: SQL, C#, Java, Python

Final Thoughts

With a list of questions to ask and a list of programming language conventions, no matter what type of project you’re working on, you can make a sensible decision regarding the language that you use.

Asking the right questions will allow you to back up the usage with evidence supported by industry standards and conventions. In the end, making the right programming language choice will enable you to develop systems that will weather the changes in business needs.

What are you waiting for?

Advice for programmers.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store