Programming Language Selection for Application Development

Factors in choosing a programming language

  • Purpose
  • Speed to Market / Productivity
  • Popularity: Technology ecology
  • Usability: Readable code, less effort
  • Learning Curve / Simplicity
  • Performance / Speed
  • Security

Programming languages for developing web applications

When you’re talking about web applications at large scale, you have to consider things like security, performance, concurrency, developer productivity, scalability as a language, interoperability

Server-side programming languages for web application development

  • Small scale project: PHP, Python, Ruby
  • Large scale project: Java, Go, C# (.NET)
  • Others: Node.js

Comparison table of web application server-side programming languages

Language Purpose Speed to Market Popularity Usability Performance Security Learning Curve
PHP Produce dynamic web pages 1 2 3 2 3 2
Python High productivity and readable code 1 1 2 3 2 1
Ruby simply and with less effort 1 3 1 1 1 3

PHP disadvantages

  • Website may be difficult for modify if you don’t have a good architecture at the beginning.

Ruby disadvantages

  • There is so many magic here makes you feeling very well at the beginning. But when you need to go deeper into the framework. There would be a lot of pain.

Programming languages for developing mobile applications

Android

The majority of Android apps are written in Java and Kotlin. In some cases, programming languages like C, C++, and Basic are also used.

Java

Kotlin

C/C++ (Android Native Development Kit (NDK))

  • C++ can be used in Android app development in rare cases, especially when you plan to build native-activity Android applications. It is because C++ is less flexible and very difficult to set up, and as a result, it can lead to more bugs. Usually, Java is preferred more over C++.
  • Google offers the native development kit (NDK) that uses native languages like C and C++ for Android development. But you can’t build an entire Android app with C or C++. You need to learn Java.

iOS

Swift

Objective C

Cross-Platform Mobile

C# (Xamarin)

Dart (Flutter)

Lua (Corona, Solar2D)

JavaScript (React Native)

Python (convert Python apps into Android Packages)

Programming languages for developing desktop applications

Windows

C, C++

C#(.Net)

Linux

C/C++

Mac OS X

Swift

Objective C

Cross-Platform Desktop

Java

Python

JavaScript (Electron)