
1.2 The Integrated Developer Environment
An Integrated Developer Environment (IDE) is essential for the developer experience and can often influence the developers perspective of the programming language. A developer trying to learn a programming language using Microsoft Word will have a drastically different experience from another developer that is using a purposed IDE like PyCharm. A good IDE is one that lets you focus on your project, requires minimal management or setup to use, provides excellent debugging support, and is capable of code hints, intellisense, and documentation lookup at a minimum.
Since a prerequisite for this class is previous knowledge and experience of programming, we are assuming that you have found and settled into a favorite or familiar IDE and you can continue to use that IDE for the class. For those that are still searching for their favorite, have limited Python development experience, or are coming from other languages that have purposed IDE's, we provided a list of several of the more popular IDE's used for Python that you may explore and consider. Each have their pros and cons and if you want to add to the list, please do so in the IDE discussion board in Canvas. We will frequently update this page from the discussion to help those that are just starting pick an IDE.
IDLE (Integrated Development and Learning Environment)
- Included with Python: Comes pre-installed with Python, so no additional installation is needed.
- Simple Interface: Easy to use, making it suitable for beginners.
- Basic Features: Provides essential features like syntax highlighting, basic debugging, and an interactive shell.
- Limited Functionality: Lacks advanced features found in other IDEs, making it less suitable for large projects.
PyCharm
- Comprehensive Features: Offers a wide range of features including code completion, debugging, and version control.
- Powerful debugging tools.
- Integrated versioning.
- Intelligent Code Assistance: Provides smart code navigation and refactoring.
- Integrated Tools: Includes tools for databases, web development, and more.
- Resource Intensive: Requires a powerful computer to run smoothly.
- Community and Professional Editions: The Community edition is free but lacks some advanced features available in the Professional edition.
- There is a free student version that includes 17 Professional edition IDE's and tools.
Visual Studio Code
- Lightweight and Fast: A code editor that is quick to install and run.
- Extensible: Supports a wide variety of extensions for different programming languages and tools.
- Requires third party extensions to provide/perform functionality.
- Requires manual setup of a debugging configuration for debugging.
- Extensions providing support are limited to supported Python versions.
- Integrated Terminal: Allows you to run commands directly from the editor.
- Built-in Git Support: Excellent integration with Git and other version control systems.
- Free: Completely free and open-source.
PyScripter
- Windows Only: Designed specifically for Windows.
- Lightweight: Not very resource-intensive.
- Comprehensive Python Support: Offers features like debugging, code completion, and syntax highlighting.
- Variable Explore in the debugger truncates long values with ... which can make it difficult to troubleshoot.
- Requires third party extensions to provide/perform functionality.
- Limited Cross-Platform Support: Not available on Mac or Linux.
- Python Environments: May have issues registering python environments created in Pro.
- Python Version Dependant: 64-bit versions are limited to supported Python 3.x versions (will not work with Python 2.7)
Spyder
- Scientific Computing: Designed with data science and scientific computing in mind.
- Integrated with Anaconda: Comes as part of the Anaconda distribution, which is popular among data scientists.
- Interactive Console: Allows for interactive testing and debugging.
- Variable Explorer: Provides a graphical interface to inspect variables.
- Free and Open-Source: Available at no cost. There is a standalone version as well as a version installable through conda or pip.
- Can Be Unstable/ Unreliable: Suffers from compatibility issues if the environment package dependencies conflict with the versions needed for the project. Often buggy when used with environments created outside of conda, such as Pro's.
NotePad++
- Text Editor: Primarily a text editor, not a full-fledged IDE.
- Lightweight: Extremely fast and uses minimal system resources.
- Syntax Highlighting: Supports syntax highlighting for many programming languages.
- Limited Features: Lacks many advanced features like built in debugging and project management.
- Requires third party extensions to provide/perform functionality.
- Free: Completely free and open-source.