Programming Language Selection for Application Development
- 1. Factors in choosing a programming language
- 2. Programming languages for developing web applications
- 3. Programming languages for developing mobile applications
- 4. Programming languages for developing desktop applications
Factors in choosing a programming language
- Speed to Market / Productivity
- Popularity: Technology ecology
- Usability: Readable code, less effort
- Learning Curve / Simplicity
- Performance / Speed
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|
- Website may be difficult for modify if you don’t have a good architecture at the beginning.
- 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
The majority of Android apps are written in Java and Kotlin. In some cases, programming languages like C, C++, and Basic are also used.
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.
Lua (Corona, Solar2D)
Python (convert Python apps into Android Packages)
Programming languages for developing desktop applications
Mac OS X