The continued success of Python
In the first edition of this book, the author titled this section The recent rise of Python. Time has passed and I’m picking up where he left off. I think it’s important to point out that the recent rise has more or less continued since the first edition of this book was published. Python has continued to be one of the most popular and widely adopted languages for some very good reasons. One of those reasons is that Python stresses readability and uses a simple syntax. This allows newcomers to the language, and indeed to the field of software development, a quick path to success. Contrast that with the previously normal experience of forcing college and university students to learn C or C++ as their first language. These languages are terse and complicated and generally have a poor track record when it comes to developer productivity. Sure, C and C++ are powerful languages and can produce the most performant software available. However, in my experience, a language that can take you from “Hello World” to being able to produce useful software in a short period trumps the performance gains in all but the most extreme cases. Guido van Rossum, the creator of Python, compares the quickness of Python to other languages in his paper OMG-DARPA-MCC Workshop on Compositional Software Architecture. In the paper, van Rossum states that development in Python is estimated to be 3-5 times faster than that in Java, and 5-10 times faster than that in C/C++. Keeping this difference in mind, we can easily understand why Python is being so widely adopted. After all, time is money. You can find Guido van Rossum’s complete essay here: http://www.python.org/doc/essays/omg-darpa-mcc-position/.
The comparison between Python and Java or C/C++ is a weak one since these languages are designed and used for different applications. C and C++ are used when very high performance is required. Most OSs are written in C++, as are real-time systems such as those you’d find in a Tesla automobile or modern spacecraft. It isn’t necessarily fair to compare specific productivity between Python and C++ because they aren’t used to make the same types of applications.
Java, on the other hand, is used to develop the same types of applications for which you might use Python: enterprise and web applications. Java, though, requires a lot of boilerplate. This means a developer has to create a lot of code and structures just to support the application’s existence before they can even think about writing code for the application itself. This boilerplate is largely absent from Python. Furthermore, Java relies on a very rigid, static object-oriented paradigm. Python, in contrast, is far more flexible, offering a dynamic programming model. Even though the two languages are used to make the same type of application, Python gives you some serious shortcuts, owing to its more flexible paradigm.
These factors that comprise Python’s strengths, along with many others, have coalesced to form a very accessible development language supported by a community of raving fans. That community is still growing by introducing coding to a gamut of fields and professions distinct from those of us who historically focus solely on traditional application development. At the time of writing, the TIOBE Index, a ranking system for the popularity of programming languages, ranks Python as the number one language, as seen in Figure 1.2:
Figure 1.2: TIOBE rankings show Python to be the most popular language
Python has a huge standard library that provides anything you might need to build any kind of software you can imagine. If that statement proves false for your specific project, there is a vast third-party and largely open source ecosystem consisting of hundreds of thousands of libraries upon which you can build. You can find a catalog of these libraries at https://pypi.org. Taking all this together, a new software developer can go from idea and zero Python experience to a production application very quickly. This process can be greatly accelerated by a good IDE.