Tutorials
python
+1

# Top Python IDEs for 2019

Curious about which Python environment is best suited for you? In this tutorial, you'll be given an overview of the top Python IDEs used for data science.

As you start your coding journey, many of you prefer coding in a text editor like emacs, notepad++, etc., wherein you write a code and then open a terminal window to execute your code. When there is an error detected in your code, you switch back to the text editor, correct the error or typos, and re-run the code from the terminal. All of this seems like good practice only at the beginner level when you are writing your first Hello, World!. However, as you move from a beginner to an intermediate level, your code complexity starts to increase, and that is when you need a tool that provides you far more utilities than just letting you write mere text.

When you move up the ladder in your coding journey, you not only have to code but you also need to make sure your code works in all scenarios, which means you also need a testing module. Many times, you have multiple coding and unit test files, and switching from editor to terminal often becomes irritating, confusing, and inefficient. Life is happier and more relaxed when you can write, run, and play with your code from one place.

One that provides you with the capability of not just coding, testing, and running your code from one tool, but also highlighting your syntax, bracket-matching, auto-completing your code, debugging, code suggestions and a lot more, is called Integrated Development Environment or more commonly known as IDE.

For the past couple of years, Jupyter Notebook has been gaining a lot of popularity in terms of coding and debugging. Notebooks have been redefining the concept of an IDE and are adding more and more features into it.

This tutorial is actually written in a Jupyter Notebook. How cool is that?

#### Should you ignore text editors?

The answer to this is No. Let's take a closer look at it with the help of the Stack Overflow Developer Survey 2019 statistics.

From the above statistics, it isn't that surprising that even though you have been reading that the integrated development environments are the best compared to text editors. Notepad++ is still in the most popular development environments, according to Stack Overflow.

So based on the above statistics, a lot of text editors can be used as a development environment if you add the correct plugins.

For example, the most popular text editor Notepad++ can also be leveraged as a debugger by installing a plugin called DBGP that lets you debug and execute your code.

After looking into it, it makes a lot more sense why a text editor is considered the most popular on the development list. Text editors can be made as powerful as an IDE like PyCharm, Spyder, etc. by adding features on top of it that you might need. Even though the IDEs come with all these features already installed, installing a text editor is far easier, and they are lightweight compared to the IDEs.

Let's also see which are the most popular Python IDE and text editors. It's important to note that the below statistics are from December 2018 and should give a good understanding of what is popular today.

Finally, let's start decoding each IDE one by one and understand their capabilities and why they are the best amongst the rest.

## Jupyter Notebook

Jupyter was introduced in the Year 2014 after its predecessor IPython and from that date it is considered to be a bliss for the coding community. Jupyter stands for Julia, Python, and R, which are the open-source languages for data science. The acronym of Jupyter, however, does not mean that it's only meant for Julia, Python, and R.

Jupyter Notebook not only provides you the capability to code in one of the above three programming languages, but it also comes with a markdown editor that lets you write HTML code, LaTeX, etc.

It is a web application based server-client structure which is easy-to-use and allows you to create, analyze, and manipulate documents in the form of notebooks. Since it is a web interface, it can integrate many of the existing web libraries for data visualization, including plotly.js.

As shown in the above figure, Jupyter has so many functionalities. You can write a formula using LaTeX, run a Python code, and visualize, for example, a raw audio signal using matplotlib plotting library all in the same notebook.

Jupyter Notebook is not just a mere IDE, but it is widely used as an education tool, for presentations, and even for writing blogs. You can export your notebook from .ipynb format to PDF and HTML files, or you can just export it as a .py file. The user-interface of Jupyter makes it a favorite tool, especially amongst the data science community.

If you want to know more about what all Jupyter has in-stock for you, then do check out this fantastic article which is very comprehensive, it also takes you through the installation process and a lot more.

## PyCharm

PyCharm is an IDE for Python programming developed by the Czech company JetBrains, and as the name suggests, it works like a Charm even though it a heavy-weight software. Though it can take time for plot rendering, etc. when compared with other IDEs.

If you have never used JetBrains other IDEs like Java IDE, IntelliJ IDEA, then running your first code successfully can eat up a little bit of your time. Such as setting up its interpreter. PyCharm is, however, especially useful if you have multiple scripts interacting with each other.

PyCharm comes with pre-installed intelligent python assistance that provides a variety of functions like smart code completion, code inspections, on-the-fly error highlighting and quick-fixes, along with automated code refactorings and a plethora of navigation capabilities (Source).

It not only lets you code in Python but has extensive support for web development frameworks like Django, Flask, HTML/CSS, Node.js, Pyramid, web2py, etc.

The good thing about PyCharm is that it supports Anaconda and as a result of which all the packages that fall under Anaconda are supported by PyCharm like NumPy, SciPy, MatPlotlib, and so on.

Just like other IDEs, PyCharm has a powerful debugger with a graphical interface. It offers Git integration, has an ssh terminal, and version control. PyCharm IDE is customizable, which allows you to choose between different themes, color schemes, and key-binding.

Additionally, PyCharm lets you add plugins for non-pythonic files, and these plugins take care of the indentation, highlighting of errors and keywords on-the-fly.

One of the PyCharm 2019 updates, as shown in the above figure, is editing the source code in your Notebook. This, however, only comes with a Pro edition: as you edit the Notebook, the source code looks like a regular Python file in the PyCharm editor. All the changes made in either PyCharm or the browser are reflected immediately.

Both of PyCharm's Professional and Community edition can be downloaded from the official JetBrains website. It is available for Windows, Linux, and Mac operating systems.

## Spyder

Spyder is a lightweight open-source IDE that comes pre-installed with Anaconda distribution and was built mainly for data science practitioners. It may not have an appealing user-interface as PyCharm or Visual Studio, but you should give it a try given the number of functionalities it has to offer!

Because it was built for the data science community, it is integrated with the essential data-centric libraries like NumPy, SciPy, Matplotlib, Pandas, and IPython. The built-in capabilities can be extended further by plugins and APIs.

One of the great features that you would like about Spyder is its Help toolbar, which lets you search a plethora of information related to libraries/modules.

Spyder contains features like a text editor with syntax highlighting, code completion, static code analysis, debugging, and variable exploring. It also has a profiler that recursively determines the run time and number of calls for every function and method called in a file. Moreover, some of the less essential features but still adds value in making Spyder one of the best IDEs are file explorer, history log, internal console, and so on.

Since spyder is open-source, it is free, and since it comes packaged with Anaconda, you will need to download Anaconda from this website. Like other IDEs, Spyder is available for Windows, Mac, and Linux operating systems.

To learn how to install Anaconda, check out the documentation.

## Visual Studio Code

Visual Studio (VS) Code is an open-source IDE that was developed by Microsoft four years back, i.e., in the Year 2015. Visual Studio Code has support for all three operating systems; Windows, Linux, and macOS.

VS Code has a lot of built-in features like debugging, embedded Git control and GitHub, syntax highlighting, intelligent code completion, snippets, and code refactoring. It is very much customizable, allowing users to change the theme, keyboard shortcuts, preferences, and install plugins that add additional functionality. It also has a terminal embedded into it.

The fun part about VS Code is that it has a minimalist zen mode, which shows you only the file you're working on, hiding not just code's interface, but the rest of your desktop too. This way it keeps you away from distractions and more focussed towards the code you are writing or the error you are debugging for hours and hours.

VS Code also has unit testing support via unit tests, pytest frameworks. It has Linting support which highlights syntactical and stylistic problems in your Python source code. Like PyCharm, VS Code also has a code editing feature for Jupyter environments and notebooks.

## Which is the Best IDE?

The answer to this is subjective, but it would still be a good idea to start with an IDE that is less convoluted if you are at a beginner level. Once you get a good handle on coding, you should then switch to a better IDE that has a lot of the built-in features that will allow you to code more efficiently.

The above list is a subset of all the IDEs that are out there in the market. It would be best if you test each one of them and find out which one best suits your needs. Some of you might be inclined towards using Jupyter Notebook while some might like PyCharm more, it will be tough to pick one amongst the others.

## Conclusion

When it comes to coding, IDEs are no doubt the best; they give you an excellent experience by improving your overall results and the workflow. They help you in coding your ideas and logic much more efficiently and in a neat manner. They have so much to offer starting with writing, running, and debugging your code apart from providing you with a great user-interface with various themes and colors.

If you would like to learn Python, check out the following DataCamp courses:

References: