Why has Python become so popular in academia superseding other languages like C, C++, Java, and C#?
[Update: This answer is considering “Why has Python become so popular in academia”. Not the similar one: “Why has Python become so popular”.]
I believe that you have in your mind the following visual:
And the following statement:
where Python code is typically 3-5 times shorter than equivalent Java code, it is often 5-10 times shorter than equivalent C++ code!
Your first thought may be: “That’s incredible. The Python Language MUST be the most popular language in academia!”
By the way, I just created that graph with the Nature.com search results (Nature is one of the world's most cited scientific journals) . Let’s suppose that we are right and talk a little bit more about Python (just keep in mind that blue graph and it’s slope, because we are going to need it later).
Did you ever try to code using Java or C? I think that the first time you try it, you will understand why those languages were superseded by Python (seriously, go right now and type “abstract class Java tutorial” on YouTube, just to have a glimpse).
They were too complex for simple things that most of us mortals need to get done. Okay, C is actually simple, but it’s a pain in the ass (it’s very common to learn C/C++ as part of an engineering curriculum). Some people will say that the problem with C is that it isn't an Object Oriented Programing Language. Some maniacs will disagree: write object-oriented code in C
I think that Python is clean, elegant, general and is more suitable to data science/machine learning (my area) than C++ or C#. Even for researchers of other areas, there are lots of packages/libraries that will make your life easier (20 Python libraries you can’t live without). I also love the support that we have from the online community. (Thanks Stackoverflow, Github so on)
Don't forget that Python can rely on C/C++ for heavy computational tasks (check Google Tensorflow, for example). No need to make enemies.
Do you remember the first graph? Finally and surprisingly, let’s introduce Matlab, a big rival of Python!
The graph below is from a random Quora answer. I wasn’t sure about the data, but it was an opportunity to talk about this programming rivality.
After the massive interest for this answer, I created a new one, also based on Nature.
Now it’s time for my graph. We need to put things in perspective!
The last graph ended on 2012 (was my first doubt) and I didn't know details about how the search was made. For this one, I took into account some restrictions. **
The next question is: Why has Matlab become so popular in academia, superseding other languages like Python, C, C++, Java and C#? (This question sounds familiar, humm?)
Think about the Mathworks “lobbying”. Almost all students/professors had some sort of contact with Matlab .
Their educational licensing policy is amazing
I saw some Quora writers justifying the popularity of Python due to be an “easier language”. I guess that they don’t know R nor Matlab.
Others (people can leave a comment and help)
In my opinion, what are the problems of using Matlab for research?
You are fooling yourself. The Matlab Environment/IDE doesn't let you understand the real problems of a programming language. In Python, you will have to struggle in between 2.7 and 3.5 versions. Understand a little bit of Unix/Linux. Create your own virtual environment. Use a package management system (like pip install). and so on…
They are hiding the truth. My friend had an enormous effort to create a Neural Network that predicts algae blooms on lakes. He used the “free” MatLab educational version for the development of his research. When he tried to patent the process….Guess what? He discovered that he would have to pay tons of royalties to Mathworks. This does not happen with Python. Python is free even for commercial use.
Frank Gleeson did some nice additions on his comment.
Always upvote answers that you find useful. Everyone can be wrong so be respectful and polite.
** Not considering the keyword “snake”. Considering articles publisehd after 1996 (Python 1.4 release). Removed “Python Islands” expression