This problem has been bugging me for a while so I decide to write it out even though it’s just a short piece. This post compares tools for Python programming using :
- Jupyter Notebook
- IDEs like PyCharm
- Text editors like Vim
Jupyter Notebook:
- The pro is it’s easily visualizable. When you want a graph, you can see a graph immediately. The comments are also beautifully formatted.
- Another pro is it can be connected to a Linux server like Dumbo.
- The con is, it’s not a program. A notebook is it’s own file and although it can be downloaded as a .py file, the file is usually too long, with lots of comments like typesetting parameters.
When to use it?
- Data exploration. because of the visualization and analysis nature.
- Big data. Because it can be connected to a server, that makes running large amount of data possible.
PyCharm
- The pro is it’s suited for Python development. I have not learnt the functionalities entirely, but e.g. search and replace are easily doable in PyCharm. Debugging also seems to be easy?
- The con is it’s usually not available on a server.
- Another con is need extra finger movement when switching from terminal to Pycharm.
When to use it?
- Debugging complicated programs. e.g. NLP programs.
- No need to run on a server.
Vim
- The pro is it’s everywhere. Thus, whenever you write on your own machine, or on the server, it feels the same.
- Another pro is it can be used for anything. like python, C++, markdown, bash… So there is no need to switch to other places when ssh to the server.
- The con is it’s not that easy to use. e.g. search and replace… hard to do this. Adjust tab? also not immediately doable.
- Another con is it’s not that easy to debug. have to manually print out variables… This makes it particularly difficult when the program is large.
When to use it?
- When need to connect to a server. e.g. big data size.
Share this post