Report from the Python User Group: Python IDEs
Written by: Justin Burge - Training and Outreach Specialist (2019-2020)
Since summer 2018, 245 Fred Hutch employees have taken Introduction to Python through Fredhutch.io. This introductory course introduces participants to Jupyter Notebooks as an integrated development environment, or IDE.
While Jupyter notebooks are a great tool, there are other options for interfaces to write and run Python code. In the Python User Group, we recently looked at three popular IDEs for Python. Frequent attendees of the group wrote up a few overviews highlighting the more popular Python IDEs nowadays which you can peruse below.
Visual Studio Code (VS Code)
VS Code is a free IDE from Microsoft. The screenshot below previews the demo by Koshlan Mayer-Blackwell; you can read the entire content here.
PyCharm
PyCharm is free with an option to pay for an upgrade with more services. Zach Romer’s demo is screenshot below; view the entire report here.
Jupyter Lab
Jupyter Lab is a free and open source project. A demo by me (Justin Burge) is screenshot below, though the complete report is available here.
Other options and choosing one to use
But these aren’t the only options…
Therefore, with so many free options it really comes down to personal preference. There are some features that you should look for in your IDE of choice such as:
-
Linter - linting highlights syntactical and stylistic problems in your Python code which helps to mitigate potential errors and improves your coding. PEP-8 is the most common style guide for python.
-
Debugger - a debugger allows you to quickly resolve bugs, issues or errors in your code by allowing you to quickly setup breakpoints at a particular line and then step in, out, or thru the code while viewing not only code output and actions but also variable assignment.
-
Version Control Integration - version control facilitates collaboration as it assists in the management of changes to documents or code and constructs some rigor around a development process. A popular version control platform is GitHub but it isn’t the only one. What is important is that your IDE of choice integrates with the version control your team is using.
-
Shell Integration - this isn’t a deal breaker but it makes it nice and most IDEs have this where with a keystroke you can pull up a window that has a shell instance running allowing you to interact with your OS, or ssh into remote computing or cloud resources.
-
Text Editor Integration - again not a deal breaker but most of them have a text editor. What is important is that it can render or preview Markdown files
Word to the wise, most of these features just mentioned are usually not built into the IDE itself and are made available to the user as an extension that they have to install in the IDE. The major IDEs though are getting better at including these features/extensions as default or pre-installed for the user. If not you might have to search and install to add them to your IDE environment.
I hope these points have inspired you to try out a new IDE and or help to make you more productive. Thanks for supporting the bioinformatics and data science community!