When comparing Spacemacs with Python layer vs Jupyter, the Slant community recommends Spacemacs with Python layer for most people. In the question“What are the best Python IDEs or editors?” Spacemacs with Python layer is ranked 4th while Jupyter is ranked 9th. The most important reason people chose Spacemacs with Python layer is:
At the heart of Spacemacs, the configuration layers group packages configuration into semantic units that can be toggled on and off. The architecture is simple but powerful allowing to easily manage configuration dependencies between hundreds of packages. Layers for other languages can be found [here](https://github.com/syl20bnr/spacemacs/tree/master/layers/+lang).
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Support for different languages with layers
At the heart of Spacemacs, the configuration layers group packages configuration into semantic units that can be toggled on and off. The architecture is simple but powerful allowing to easily manage configuration dependencies between hundreds of packages.
Layers for other languages can be found here.
Pro Easy to remember keybindings
Key bindings are organized in mnemonic namespaces. For instance buffer actions are under b
, file actions under f
, project actions under p
, search actions under s
etc...
Key bindings are consistent across the whole distribution thanks to a set of conventions.
Pro Great support from the community
The community is very active and there is a welcoming gitter chat to ask for questions.
Pro Free/Libre/Open
Pro It includes org-mode
Pro Easy to manage configuration dependencies
At the heart of Spacemacs, the configuration layers group packages configuration into semantic units that can be toggled on and off. The architecture is simple but powerful allowing to easily manage configuration dependencies between hundreds of packages.
Pro Gradual learning curve
Evil package is a first class citizen, Spacemacs embraces it from day one. Evil package allows Vim users to be productive very quickly while still allowing regular Emacs users to use Spacemacs.
Pro Above average documentation quality
Documentation is mandatory for each new configuration layer and can be accessed directly within the editor in Org format.
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 Configured in Emacs Lisp
Most developers don't know Lisp all that well, and of those, the subset that knows elisp is even smaller. Thankfully, it's not that difficult to get a basic Spacemacs configuration together without knowing elisp (thanks to Spacemacs's spectacular documentation), but if you need to alter, fix, or customize a plugin/layer in non-trivial ways, this can become a major hindrance.
Con Not an IDE
For users that aren't familiar with Vim or Emacs, Spacemacs will have a steep learning curve since everything is based on keyboard shortcuts and IDE-based users (or even users coming from editors like SublimeText or Atom) may have trouble finding things and adjusting to a new editing style.
Con Slow startup time
Although configuration is heavily lazy loaded, the starting time of Spacemacs is usually between two and five seconds. Emacs can be run as a daemon though which reduces the clients startup time to a few milliseconds.
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.
