Integrated Development Environment (IDE) - UGuntupalli/GeneralWorkflow GitHub Wiki

An IDE consolidates different aspects of writing a program and offers a one stop shop to develop programs. While Python can be developed using a text editor like Notepad or Notepad++ as well, IDE's offer a lot of features which enables developing, testing, documenting and debugging. These enhanced features help optimize and make it faster to write code in any language. Many text editors have been released that are extremely customizable and offer many extensions which make it easy to transform them to powerful, custom IDE's. A list of most competitive IDE's that are worth considering:

  1. Pycharm
  2. Visual Studio Code
  3. Spyder
  4. JupyterHub
  5. Jupyter Notebook

Some honorable mentions include:

  1. Atom
  2. Sublime Text
  3. Microsoft Visual Studio

Listed below is my personal opinion on how I selected the IDE from my experience which may or may not be the same as the opinion held by several different people who work with Python in different domains. So, please keep in mind that the following is a personal opinion. In an inverted order, how I have ruled out the options that are listed above:

  1. Atom: While it was very promising, the following shortcomings helped me rule Atom out
  • Very hard to find the required plugins that work. Requires a lot of work and research to get going
  • Does not have a fixed list of starter plugins that makes it easy for an user to get started
  • Development has taken a backseat after VSCode and Microsoft's acquisition of GitHub
  1. Sublime Text: To be fair this is one option that I have never honestly tried, so I am not sure whether it is worth recommending.
  2. Microsoft Visual Studio: Microsoft Visual Studio is extremely versatile and probably one of the most well built IDE's. However, because of its size and versatility it also has some disadvantages.
  • High memory use
  • Long startup time
  • Preferable for architects
  • VS Code offers excellent lighter version especially Python
  1. Spyder:
  • Not easy to work with virtual environments
  • Hard to find terminal
  • While could be great for data science applications, lacks features for comprehensive package development
  • Lack of version control integration
  1. Jupyter Notebook:
  • Perfect for exploratory data science problems
  • Not easy to develop packages
  • Lack of version control integration
  1. Jupyter Hub:
  • Undergoing rapid change - trying to plug in shortcomings from Jupyter notebook
  • Worth considering after features acquire parity with other IDE's
  • Lack of version control integration

That leaves me with the following and these are my top 2:

  1. Pycharm: This is my preferred choice for IDE for python programming. Below are some positives and negatives:
  • Very powerful - feature rich IDE offering features that make development, debugging and documenting easier
  • Excellent version control integration
  • Features which make it easier to look at data frames while debugging
  • Professional Edition offers Jupyter Notebook integration
  • Professional Edition offers connectivity and support for databases
  • Can use a lot of memory
  1. Visual Studio Code:
  • Very easy to get setup
  • Resources that make it very easy to customize
  • Very easy to develop serverless functions in Azure
  • Free version also offers Jupyter notebook integration - can be slow and clunky sometimes
  • Debugging data frames is hard - cannot easily view

A user can choose any of the above listed options or options that are not listed here. However, for me to be able to support, I can offer maximum support with Pycharm - please use the community edition which is free or with Visual Studio Code. Depending on the type of application or package that is being used, a user could use Visual Studio Code or Pycharm along with Jupyter notebooks. Installation and customization instructions for both Pycharm and Visual Studio Code have been made available in different pages.