Skip to article frontmatterSkip to article content

Integraded Development Environment (IDE)

So this is something that MATLAB and R users don’t have to deal with: which IDE should I use?

I’m sorry but there is not correct answer, there are many and it all depends on what is your objective. I will list a few suggestions below and then you can decide for yourself which one you need to choose.


So first and foremost, I am going to suggest that you use JupyterLab. It is an interactive environment to allow you to program step-by-step. You can visualize tables of data, run code and also visualize figures. The part I mentioned is mainly the ‘Jupyter Notebook’. The lab features much more. It has a terminal, a text editor and you can also visualize the directories without leaving the notebook environment. It’s the ultimate program-as-you-go type of environment. Most people use it as default and I personally always start coding in this environment right away when I want to work on something. So hop onboard!

Note: A lot of just stay with Jupyter Notebooks only for whatever reason they prefer. JupyterLab includes jupyter notebook. So you can always switch to the traditional notebook environment whenever you wish. You just need to switch to tree view by changing the URL in your browser from http://localhost:8888/lab to http://localhost:8888/tree.

Screenshot

Jumping Feet First Into Code

If you just want to try something that’s relatively not so complicated, then I highly recommend you just using a google colaboratory notebook. It’s a Jupyter Notebook(-like) interface, most python packages that you will need are already installed, you have access to CPUs, RAM, GPUs and even TPUs. I use it all the time when I want to just test something out or try something new.


The editors above are special cases. But if you want a full featured Python editor then I would highly suggest the ones I list below. You may not think you need one, especially those dedicated users of JupyterLab. But I can assure you that if you want to make good reproducible code.


The most popular IDE as of now would be Visual Studio Code (VSCode). I really like it because it is hackable like Sublime or Atom but it also just works. I rarely run into IDE-breaking changes. It’s also fairly lightweight and supports remote computing via ssh out of the box! Backed by Microsoft, it is definitely my most recommended IDE for almost any open-source programming language. It may support all languages but the Python specifics are great. They even have some support Jupyter Notebooks and it comes shipped with the Anaconda distribution.

Screenshot

2. Python Extremist

Probably the best IDE out there that is Python specific is PyCharm. It’s backed by JetBrains and they have been around for a while.

Screenshot

Source: 9 Reasons You Should Be Using PyCharm (2015) - Michael Kennedy


3. The Hacker

I would suggest that you learn VIM and hack your way into creating an IDE for yourself. I’m not a proficient VIM user but I can definitely see the benefits if you would like to be “one with your terminal”. In edition, you will be able to edit anywhere as long as you have access to a terminal. I often say Python programmers (that don’t use the out-of-the-box Anaconda GUI) have more abilities with the terminal that say MATLAB or SPSS users simply because python users typically spend quite a large amount of time trying to configure things. Especially when we want to use stuff remotely. But VIM users...are a different breed altogether. So needless to say the learning curve is huge. But...the rewards will be Jordi level heights.

Screenshot

Source: Vim as a Python IDE, or Python IDE as Vim (2013) - Dmitry Filippov


4. Former MATLAB users

If you’re coming from MATLAB and want to minimize the amount of changes you do during the transition, then I recommend that you start with Spyder. It is the most complete environment available to date for people who like working with everything at their fingertips in front of them; i.e. script, terminal, variable explorer, etc. It was put on hiatus for a while but it is now sponsored by QuantSight and NumFOCUS which means it has a proper team of devs.

Screenshot

Source: Spyder Blog

Remote Development

So there are ways to utilize remote kernels (i.e. python environments in other locations). I personally haven’t tested any way to do it but I’ll like some resources below.