Friday, April 24, 2020

Choosing Programming Languages (Java Vs Python)

Some of us may be thinking about which language(s) to learn. A lot of options are available: C, C++, Java, Kotlin, Python, Go, Dart, Swift etc. One of the popular questions is how to choose between Java and Python.

Should we be choosing a programming language based on
  • which one is easier to learn?
  • which one is easier to program in? 

Rather, the factors we might wish to consider are:
  • Academic rigor
  • Global trends for businesses/job market
  • Global trends for learners
  • Local trends for businesses/job market
  • Local trends for learners
  • Which language is better for long term software project maintainability

Please refer to the following comparison of Java and Python

Worldwide
Bangladesh
Reference
Business
/Market
Java 1st,
Python 3rd
TIOBE, both current month and Very Long Term History
Learners
Java 2nd,
Python 1st
Mixed
Java 2nd,
Python 3rd
Google
Trends
Java < Python
14 < 19
Java > Python
12 > 4
Linkedin
Jobs
Java > Python
304,153 > 230,553
Java > Python
16 > 9
Worldwide: 
Bangladesh:
  JavaPython
BdJobs
Java > Python
6 > 4

Github ranks Python as 2nd and Java as 3rd at
https://madnight.github.io/githut/#/pull_requests/2020/1

Java has 8 "yes" and Python has 5 "yes" at
https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites

"I’d also rather maintain someone else’s Java code"
https://hilton.org.uk/blog/maintenance-expressive-languages

More reading:
https://en.wikipedia.org/wiki/Comparison_of_programming_languages


Conclusion:

Java has the advantage of having some similarity with C, C++, C#. Learning java may provide easy access to learning C - family of languages and their markets. Overall, Java has been prevalent and still is strong at the time of writing this article.

On the other hand, Python is growing fast.

Application area for both Java and Python largely overlaps. Both are useful for the web. While it is not impossible to create desktop and mobile app in python, Java programmers have the advantage of access to desktop (j2SE), embedded systems, and the global apps (Android) market.

Based on these factors, learners may choose to learn both (1) Java and (2) Python. Even if these two cross each other in rank, they are expected to be two of top several languages for some time to come.

After those two, 3rd / 4th and other languages may depend on task at hand or other job requirements. It may be a good practice to have several languages up ones' sleeve. Learning too many languages might seem lucrative. Unfortunately, it may have detrimental effects as each language may get less attention.

Your feedback and any insight is appreciated.

No comments: