When comparing PyCharm Community Edition vs Jupyter, the Slant community recommends PyCharm Community Edition for most people. In the question“What are the best Python IDEs or editors?” PyCharm Community Edition is ranked 3rd while Jupyter is ranked 8th. The most important reason people chose PyCharm Community Edition is:
PyCharm has CVS, Git, Subversion and Mercurial integration.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Version control integration
PyCharm has CVS, Git, Subversion and Mercurial integration.
Pro Sophisticated autocompletion
PyCharm includes sophisticated heuristics for determining what each variable type is and providing autocompletion suggestions for them.
Pro Excellent refactoring support
There are many refactoring options including renaming and changing signature across entire projects. It also includes the an ability to preview changes before committing and exclude anything unwanted.
Pro Excellent debugger
PyCharm can leverage run-time information when running your application with the built-in debugger to figure out what types can possibly be passed to which functions, etc.
Pro Framework support
PyCharm supports cefpython and electron.js (with c bindings).
Pro Pro features Free for students
JetBrains offers a Student Pack, which gives you a student license and access to the pro features of selected products such as PyCharm, IntelliJ IDEA and Php Storm.
Pro Web-based development allows for usage literally anywhere
Because the editor is a web app (the Jupyter Notebook program is a web server that you run on the host machine), it is possible to use this on quite literally any machine. Morever, you can have Jupyter Notebook run on one machine (like a VM that you have provisioned in the cloud) and access the web page / do your editing from a different machine (like a Chromebook).
Pro Interactive
Most IDEs require you to separately run Python to see the output of a particular piece of code. By contrast, Jupyter Notebook can evaluate Python statements inline, giving you the immediate feedback of interactive use of the interpreter while keeping your changes saved.
Pro Graphing , charting, and other math/numeric capabilities
The interactive editor is able to display complex equations, charts, graphs, etc. making this particular editor very well-regarded among data scientists.
Pro Open source
Because it is open source, you can review the source code and also propose extensions and fixes to it. It is also possible to fork the repository and make changes to it to customize it for your specific use case.
Pro Supports multiple different programming languages
Jupyter Notebook, formerly known as ipython, used to be specific to Python; however, in recent iterations, it has become capable of general purpose usage for any programming language. Thus it is possible to use this and have a consistent developer workflow, regardless of language.
Cons
Con Memory-hungry
Can use a lot of memory (several GBs), especially when dealing with large projects.
Con Can sometimes become very slow, freeze, and become unresponsive
It becomes extremely frustrating when you have to wait for the text you've typed to appear in your editor. Furthermore, during these freezes the editor does not always queue what your're typing, so you might have to wait > 15 seconds before you can continue your editing. This quickly affects the concentration of a developer, causing flow interruption and general performance degradation.
Con Feature incomplete
Some features are locked behind a paywall. Although if you are a student, you can apply for the Student Pack.
Con Notebook-style makes reusing functions annoying
Con Interactive usage takes some getting used to
While the interactiveness is extremely, extremely powerful and useful, it does take a little bit of work getting to a point where it is "normal".
Con First time setup is more difficult than for other IDEs
Since Jupyter Notebook really requires two programs (the server and your browser) getting things setup in a way that works for you is a little more complex than for an ordinary IDE. For example, if you run the server and edit on the same machine, creating a little wrapper script that starts the server and then launches the browser pointing to it and gives an icon to this script is a small amount of setup but is more involved than a simple installer for other IDEs. Likewise, if you do remote development, creating a URL that will lazily spawn the Jupyter Notebook server and then turn it down when it is no longer in use is also a little bit of work to setup.
Con Non-trivial security configuration for remote access
By default, the editor is only accessible from localhost; however, if you want to run Jupyter on a VM in the cloud and do your editing through a web browser on a different computer (e.g. a Chromebook), there is some non-trivial security work to ensure that it is set up in a secure manner.