Book Image

Hands-On Application Development with PyCharm - Second Edition

By : Bruce M. Van Horn II, Quan Nguyen
5 (1)
Book Image

Hands-On Application Development with PyCharm - Second Edition

5 (1)
By: Bruce M. Van Horn II, Quan Nguyen

Overview of this book

In the quest to develop robust, professional-grade software with Python and meet tight deadlines, it’s crucial to have the best tools at your disposal. In this second edition of Hands-on Application Development with PyCharm, you’ll learn tips and tricks to work at a speed and proficiency previously reserved only for elite developers. To achieve that, you’ll be introduced to PyCharm, the premiere professional integrated development environment for Python programmers among the myriad of IDEs available. Regardless of how Python is utilized, whether for general automation scripting, utility creation, web applications, data analytics, machine learning, or business applications, PyCharm offers tooling that simplifies complex tasks and streamlines common ones. In this book, you'll find everything you need to harness PyCharm's full potential and make the most of Pycharm's productivity shortcuts. The book comprehensively covers topics ranging from installation and customization to web development, database management, and data analysis pipeline development helping you become proficient in Python application development in diverse domains. By the end of this book, you’ll have discovered the remarkable capabilities of PyCharm and how you can achieve a new level of capability and productivity.
Table of Contents (24 chapters)
1
Part 1: The Basics of PyCharm
4
Part 2: Improving Your Productivity
9
Part 3: Web Development in PyCharm
15
Part 4: Data Science with PyCharm
19
Part 5: Plugins and Conclusion

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

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.