Python is soaring in popularity and is one of the best and easiest languages to learn. Once you’ve decided to learn Python, or are an experienced user looking for the best environment for coding, you want to look into IDEs, or integrated development environments.
In software development it is common practice to utilize the comfort and ease of use of an IDE. IDEs contain your projects, offer a place to build and test them (independent of your underlying system) and come with endless amounts of plugins for specific use cases within development patterns. As an added bonus, many IDEs across different languages and publishers will typically offer project-specific boilerplate code, which is abundantly helpful not only for beginners but also for experienced developers.
We recently took a close look at five online IDEs. Here we’ll look at the market for Python IDEs and examine how they compare to better illustrate what a new user may want from their IDE.
Jump ahead to:
First we’ll take a look into the bare-bones package of IDEs available to us, Thonny. Thonny is available for download on Windows, Mac, and Linux distros, and offers a solid experience across all three OSes. As for the experience itself, Thonny is basic, but that’s not a reason to discount it. If a beginner is fresh into the IDE scene, Thonny is a definite stop on the exploration of options. With its basic UI, it allows the user to find features and common task-based options easily without learning nearly as much of the details as some others that will be included in this analysis. Of course, in true IDE style it comes with an independent shell, a debugger tool, a text editor, and even an auto-complete feature, and a variable window to keep track of used variables throughout your source files. As anyone who has used vim or notepad to develop code, auto-complete is certainly not a small feature. We need it. An added point for Thonny is that it ships as a default package on the Raspian OS for Raspberry Pis, which makes the editing of code on a Pi project that much easier. It’s available at thonny.org.
Microsoft’s Visual Studio is a night and day difference compared to Thonny, and not just because it now has dark mode. VS, as it’s commonly called, is a full-fledged IDE that is often used across tech stacks. For those that may be looking for a single solution for multiple languages and types of development, VS is a viable solution. Although the typical solution for C#/.NET application development, Pythonistas have also been using VS for some time, as it has growing support that has manifested in the availability of plugin options for expanded functionality. Again, it carries far more functionality than Thonny, so you will have the ability to view projects in the file viewer, set breakpoints, automate your project linting, and integrate your version control all in the same platform, among many other features. Visual Studio is available on Mac and Windows (sorry Linux) and offers a free Community Edition as well as two other options of paid support for Business and Enterprise users. Available at visualstudio.com/vs/.
PyDev is a popular plugin for Eclipse that turns the primarily Java IDE into a hard-hitting Python building machine. Eclipse is available across Windows, Mac, and Linux and offers OSS (Open Source Software) offerings in other runtime IDEs. Much like VS is typically for C#/.NET, Eclipse is for Java, so for those coming from that experience or those that expect to use both, this may be the option for you. Offering a nice mix of simplicity like Thonny, but with robust features like VS, it will certainly carry the load for most developers. With project viewer, auto-complete, and reference highlighting features in default, it will certainly not disappoint. One particular feature that is highly useful for the Java development community is the GUI editor, which although not directly compatible with Python, does allow a developer to prototype a UI layout that can be implemented easily enough with Python libraries like PyQT, Kivy, or PyGUI. Although VS offers a GUI builder for C#/.NET apps as well, it differs greatly in the aesthetic that is typically produced by that of Python GUI libraries. Available at eclipse.org
Where are all my data science fiends at? Spyder might be just the solution for you. Heavily regarded as the Data Science IDE of choice in the Python community, it’s hard to top for data needs. A solution developed to handle NumPy and SciKit is certainly a way to gain the interest of the DS community at large. It also includes Anaconda package management. With a simple interface, Spyder is available on Windows, Mac, and Linux. Offering an interface more similar to Thonny, even though Spyder is more widely considered an option for those utilizing Python for its uses in Data Science primarily, other sects of software development may find further use in the other options listed here. Available at github.com/spyder-ide/spyder
PyCharm is very much the People’s Choice of Python IDE options. With a robust feature set comparable to VS and an ever-growing population of Python plugins available, it is a one-stop shop. PyCharm, a JetBrains product, is available on Windows, Mac and Linux, and comes in a free download as well as paid support editions. With ample support for cutting edge developments in python programming, PyCharm gives the user necessary boilerplate for several frameworks like Django, Flask, and even Pyramid. Like VS, it also gives you version control integration for easy housekeeping against your repositories. With cloud plugins, PyCharm provides a great solution for DevOps and Ops engineers, and with data science plugins and support, data scientists and engineers still use it too. Great support for web frameworks and testing frameworks make it appealing to web developers and QA testers as well. For support and availability, sticking with the crowd certainly opens up the door to options with PyCharm. Available at jetbrains.com/pycharm/
Although not an IDE in the pure sense, Atom is worth mentioning here as it is widely used with not only Python but many other languages. In the sense of an IDE, Atom does not come default with a shell or debugging tools, but it does come with auto-completes and reference highlighting. The point that makes Atom worth mentioning here is that through the support for the text editor, there are enough plugins available to add many of the features that IDEs offer today. So with the help of terminal or other shell emulators for Mac and Linux, or command prompt (or the like) for WIndows, you can achieve similar results in workflows with Atom. Available at atom.io/
With all the different options, we hope that you find a Python IDE that suits you. Each of these IDEs offers its own flavor and value to the user, so you should be able to find one that is most conducive for our own productivity. Learning to wield an IDE for its full potential is a commonly undervalued skill among developers, especially at senior levels of expertise. Some common features to be looking for might include the following:
- Lint tools (both local and inherited from remote projects through repository)
- Cloud plugins (support for AWS, Azure, GCP, DigitalOcean, Heroku)
- Auto-completion, keyword highlighting, go-to referencing
- Project explorer menu
- Version control support
- Common default file types (.py, .json, .yml, etc.)
- Debugging tools (Breakpoints, output logging, etc.)