So what is the best Python IDE and what makes a good IDE anyway?
Do you need an IDE to program in Python?
No you certainly don’t need an IDE (Interactive Development Environment) to program in Python. For example on Mac and Linux you can work in the terminal and successfully use the Nano text editor. This is included in most Linux and Unix distributions and is easy to use and includes syntax highlighting.
You can then run and debug Python scripts from the command line. You can even version control your source from the command line using Git. It’s actually a good idea for beginners to start with a simple command line set-up like this as there is less to learn. IDE’s are great for experienced developers but to start with they can become a big distraction while you are learning.
Learners who don’t want to work in the command line would be well advised to explorer Jupyter Notebooks, which lets you run snippets of Python code and document what you are doing at each stage.
What is an IDE and why would you want one?
IDE stands for Interactive Development Environment. As we’ve seen above you can use command line tools such as an editor, version control and debugger but the IDE brings these all together into a graphical user interface, and allows you to work on your code as a project, rather than individual files.
IDE’s can also incorporate automated unit testing, which means tests can be run against you code when you save it. Version control using Git is also integrated, making Git a little easier to use and in many cases giving a graphic representation.
To put it another way, you could write novel using a text editor like Nano but you would be better off using a GUI Word Processor like Word, it’s the same with software development.
What is the best Python IDE for Mac?
Microsoft Visual Studio for Mac, is in my view the best Python IDE for MacOS. I’ll explain more below.
What is the best Python IDE for Windows?
Microsoft Visual Studio for Windows, is in my view the best Python IDE for Windows. I’ll explain more below.
What is the best Python IDE for Linux?
Microsoft Visual Studio for Linux, is in my view the best Python IDE for Linux. I’ll explain more below.
Why is Microsoft Visual Studio IDE for Python so good?
- It’s one of the newest IDE’s on the market, meaning its underlying architecture is fresh and modern. This makes it responsive and robust. Older IDE’s which are based on Eclipse are starting to show their age as the Eclipse framework has become ever more bloated.
- As you have seen above, Microsoft Visual Studio is cross platform. This means that if you learn to use it on Mac, you can happily use it on Linux and even Windows without starting all over again.
- Microsoft. They are the biggest software company in the World and they are investing heavily in this IDE and the Python eco-system. All the evidence suggests they are out spending the competition at the moment on this IDE.
- Add-ins. There is an ever growing list of available add-ins or plugins for VS Code and it even has an integrated app store. This makes it easy to find new plugins, install them, try then and remove them if you don’t like them.
- Eco-System. There are thousands of articles, and training videos online now showing you how to use VS Code and detailing how to solve any issues you may have.
- It’s the most popular choice. Without a doubt when I see people coding in Python now, 9 out of 10 are using VS Code.
- Microsoft Visual Studio for Python is Free to download and use. This lowers the barriers to entry, meaning anyone can give Python a try on a modest Windows PC.
I’m sure there will be those are agree and those who disagree with my recommendations and reasons. This is natural, and understandable, people tend to grow to love whichever IDE they use most and will argue for it. So, I may be wrong and VS Code might not be the best, but you won’t go far wrong with it. I would also advise you not to spend too much time trying lots of different IDE’s. It is best to focus on learning Python and your development work. At the end of the day, the best IDE is the one you put the time and effort into learning and mastering and therefore which makes you most productive.