top of page
  • khangaonkar

New Startup/ New product: How to pick the right programming language for your app?

Updated: Sep 6, 2023

Picking the right programming language for your application is one of the most important choices an engineering team makes. Choosing the wrong language can substantially increase the development costs and affect maintainability. Often the discussion on which language to use turns into an unnecessary debate more often ideological than technical. In many organizations programmers are dug in camps that favor one language over another. I have seen multiple engineering teams double or triple their development costs by choosing the wrong language. In this blog I list out some simple guidelines to follow when picking a programming language.


Some factors that should influence the choice of programming language are:

  • What type of application ? Web , mobile, backend server, tool

  • What operating system ? IOS, windows, linux , cross platform

  • Performance ? Closeness to OS and hardware ?

  • Maintainability ? Skill set of the programmer ?

The table below list the languages suitable for a particular task.

Task

Suitable languages

Web UI

HTML/CSS and Javascript

Android mobile apps

Kotlin

Ios mobile apps

Swift

Microservices

Java, Go, Javascript/Typescript

General purpose programming

Java, Go

Low level system programming

C/C++, Rust

Machine learning / AI

Python

tools

Python, bash, Go

The table below list the tasks a language may be suitable for.

Programming Language

What it is useful for ?

Javascript/Typescript

Primary use is for making UI that is shown in browsers dynamic. With Node.js it can be use for backend programming. But Web UI remains the primary use case. Typescript is a super set of Javascript that is compiled to Javascript.

​Java

Best general purpose programming language. It is a workhorse that can be used for a variety of problems from simple business application to systems programming stuff like network programming, multi threading etc. These days it is most popular for developing backend micro services

C/C++

Used for lower level services like operating systems, compilers, databases and high performance services. Has a steeper learning curve. Gives the developer more control and access to OS level services. But downside is that things that are simple is a language like Java are much harder to code to in C++.

Rust

In the same space as C++. It is being promoted as competition to C++. A key benefit over C++ is memory safety.

Python

Python has been around a long time and used by the scientific community for a long time. That is because there are lot of available libraries developed by the academic community. For the same reason, it has become the go to language for machine learning.

​Go

It was developed and made popular at Google. Its syntax is C like and it is cross platform like Java. Generally used for cloud native services and tools

In the tables above, I have listed only the most widely used languages. There are other languages such Scala, Haskell, Erlang and so on that have some following but not widespread.


Choose the programming language wisely. Choosing the wrong language can lead to increased development cost, more bugs and poor quality software.


As a software engineer what languages should you learn ? Generally you should know multiple languages, so that you can work on a variety of problems. Knowing a language does not mean memorizing the syntax or knowing every feature. It is, as Bjarn Stroustup the founder of C++ says -- "getting the spirit of the language".


The table below is the popularity of programming language in 2023 based on a survey conducted by StackOverflow


Language

% respondents using the language

Javascript

63%

Python

49%

Java

30%

C++

22%

c#

27%


An interesting trend is that Javascript and Python seem to be increasing in popularity. Use of Java seems to have slowed down.


If you are still not sure, a safe bet is to choose the language used by most people for your problem domain. That way help is available when needed.



Recent Posts

See All

Go Tutorial: Receivers

When I was new to the Go programming language and saw this syntax func (m *Service) addNumbers(a int32, b int32) int32 I was confused. I had not seen syntax like (m *Service) between func and the func

JDK22: New features in Java 22

JDK 22 was released on March 19, 2024. As always, a new suite of goodies is made available for the benefit of the Java programmer. Many of them are in preview. This is a very brief listing of the new

Go review: Should I use the Go programming language ?

Overview Go was developed by engineers at Google. Their primary motivation was dislike for C++. Goal was to create a language for systems programming. Its popularity has been slowly but steadily incre

Comments


Commenting has been turned off.
bottom of page