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)