Tom Radcliffe has over 20 years experience in software development and management in both academia and industry. He is a professional engineer (PEO and APEGBC) and holds a PhD in physics from Queen's University at Kingston. Tom brings a passion for quantitative, data-driven processes to ActiveState. He is deeply committed to the ideas of Bayesian probability theory, and assigns a high Bayesian plausibility to the idea that putting the best software tools in the hands of the most creative and capable people will make the world a better place.
The most recent TIOBE Community Index puts Java in the number one slot, and growing. Worries about problems in the Java developer community, corporate stewardship, and other signs of its proclaimed pending death have been greatly exaggerated.
Python is no slouch, either. It is listed as number five on the same Index, up from spot eight a year ago. If I’m a developer making a choice between Java and Python, should I depend on these kinds of usage numbers?
The power of Python lies in what it may become. Philip Guo wrote an article in Communications of the ACM showing that “Eight of the top 10 CS departments (80 percent), and 27 of the top 39 (69 percent), teach Python in introductory CS0 or CS1 courses.” In addition, International Business Times recently noted that Python has overtaken French as the most taught “language” in primary schools.
Why teach Python instead of Java, which was the dominant teaching language for the past decade? What are the implications for the future?
Most people think that Python is just easier for introductory courses. Young programmers enter the workforce and graduate to Java. Despite the “first love” of Python, usage statistics seem to indicate that this might be case. But is there more to it?
Remember that for the past decade both high school AP courses and CS introductory courses at universities were based on Java, not Python. The move to Python is recent. Truth is, we don’t yet know how this will impact the workforce.
The Power of Tabs
Although the forced use of tabs is often annoying to people new to Python, it helps make Python one of the most human-readable programming languages in wide use. I would argue that it is the most readable. This means it easier to collaborate on code and perform code reviews.
True: tabs and indentation are a subtle difference. I also acknowledge that Python has features, such as dynamically-typed variables, that make it difficult to read in some cases.
However, Python’s overall syntax makes it a better fit for a GitHub-loving world where code is meant to be read by groups of people, not just the programmer who wrote it.
While Python isn’t as popular as Java, it is in wide use. This is going to be important for programmers that learned Python in introductory college CS classes and stuck with it. Companies using Python include YouTube, Google, Pinterest, Reddit, Quora, Bank of America, Diebold, Lockheed Martin, NASA, Boeing, US Army and many more.
Here’s some statistics on Python showing the strength of the community:
- GitHub: Over 33 million code results and 675,355 repository results (Number four in programming languages on the site) with 849,141 issues.
- Stack Overflow: 481,655 tags for Python; 38,475 tabs for Python 2.7; 24,833 tags for Python 3.x; and many more specific Python tags.
- PyPI: the Python Package Index, a repository consisting of Python libraries, has 67,530 total packages and 3.4 million downloads/week, which equals at least 175 million downloads per year.
- PyPI Ranking, All-time: For the Top 10 downloads is over 449 million downloads.
- PyPI Ranking, This Week: For the Top 10 downloads is almost 80 million downloads.
According to PayScale, the average salary for a person with Python skills is $103,422. On LinkedIn, the Python Professionals forums has 35,734 members. There’s no indication that Python salaries are higher than Java salaries. The point I want to make is that the salaries are good enough to make a decent living. It’s not just a language used in education. Python makes an appearance in a number of industries, including IT, DevOps, system administration, software development (web), scientific computing, gaming, financial services, legal, healthcare and more.
The Stats Are with Python
Data scientists and data analysts are hailed as hot job titles for the past few years. Most data scientists are using R or Python, not Java. As this role becomes more important, and big data continues its upward trend, it will help Python more than Java. Whether Python will dominate over R is open to debate, which I would love to discuss in the future.
The problem with looking at the current big data, Android, and SDN development trends is that the trends are already established. You’re looking at a snapshot of today.
Although we don’t know what development languages will gain strength, we do know that a vast pool of people will be armed with Python programming skills.
The Python community benefits from a combination of a large base of people with Python skills and easy code readability for efficient peer review — the ease by which ideas can be turned into functional apps, therefore outshining Java as a rapid prototyping tool — just to name a few strengths.
My bet is that the future development trends are going to be set by Python developers.
ActiveState is a sponsor of The New Stack.