Well, that’s exactly the question that Philip Guo, an assistant professor of computer science at the University of Rochester, tried to find out. After looking at the top 39 computer science departments among U.S. universities (as ranked by U.S. News & World Reports), Guo crunched the numbers and found that Python is the most frequently taught programming language.
Three years ago, Mark Guzdial blogged about the rise of Python as a teaching language and predictions for future teaching languages. His insights proved to be prescient. Top-ranked CS departments at MIT and UC Berkeley recently switched their introductory courses to Python. And the top three MOOC providers (edX, Coursera, and Udacity) all offer introductory programming courses in Python.
So let’s talk briefly about “why” Python has emerged as one of the most popular programming languages on the market.
Quick to setup: Python is easy to download, even for the newbie; careful documentation takes you through the download and setup steps in either Windows, Mac, or Linux environments. Tons of support and documentation make Python learning fairly manageable. If you want to jump right into Python without any need for download on your machine, just go to one of many online tutorials like Codecademy.
Python is fast: Python has developed a reputation as a solid, high-performance language. Lots has been done in recent years to get to this point. The PyPy project aims to speed up Python as a whole (and is doing a great job of it). And Numba is another tool that can offer amazing speedups by implementing high performance functions written directly in Python.
Python has broad support: The applications for Python are broad and varied; it’s used by individuals and big industry players alike in everything from systems automation, testing, and ETL to gaming, CGI and web development. Disney uses Python to help power their creative process. And Mozilla releases tons of open source packages built in Python. Bank of America uses Python to build new products and interfaces within the bank’s technology infrastructure.
Ease of use: Python gets a lot of accolades for being easy to learn, and rightfully so. The learning curve is very gradual. Other languages can be quite steep. Python places a heavy emphasis on readability, as shown by its comparison with other object-oriented languages. The first code example below is written in C++:
Python is much more intuitive looking and in fact appears like everyday English. As one writer has well said, “With Python and the proper combination of ambition and attention, you could whip together a game in a day knowing nothing before you started.”
Big Data: Python’s growing ecosystem and support network has been significantly enhanced by the popularization of Big Data in recent years. Based on a 2013 poll, Python is the second most popular language in data science, used by 39% of respondents (after R’s 61%). Python offers a very mature numeric and scientific computing ecosystem (NumPy & SciPy) and in the trade-off between scale and sophistication, Python is seen as a nice compromise. The advantage of a rich data community with large amounts of toolkits and features makes Python a powerful tool for medium-scale data processing.