When comparing Codenvy vs Spacemacs, the Slant community recommends Spacemacs for most people. In the question“What are the best JavaScript IDEs or editors?” Spacemacs is ranked 10th while Codenvy is ranked 18th. The most important reason people chose Spacemacs is:
Spacemacs combines the Emacs platform (with the full power of the Emacs plugin ecosystem) and the Vi keybindings (via EViL), all in the same box.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Easy setup
Once an account is set up and the user has logged in, all that's needed to start is to pick a language, a framework and a PaaS. Codenvy also allows anonymous logins albeit with some important limitations.
Pro Powerful editor
Codenvy has a fast, secure browser-based editor that supports syntax highlighting, code completion, refactoring and more. It can be used to edit, build, run and debug projects. It even has multi-cursor support.
The layout will be familiar to most developer, especially those experienced with Eclipse, with a file explorer on the left, code on the right and tabs for builders, runners, terminal and events at the bottom.
Pro Beginner-friendly
It allows going to any box and pick up a project and work on it.
Pro Git support
Codenvy supports all Git commands through UI and Codenvy CLI.
Codenvy also integrates well with all major Git hosting providers including GitHub, BitBucket, GitLab. Sign up, sign in, repo cloning, uploading SSH keys are supported. Tutorials for integrating various providers can be found here.
Pro Partly open source
Codenvy is a full multi-user, multi-account, multi-tenant implementation of [Eclipse Che](https://github.com/eclipse/che/_ which is open source but only single-user/account/tenant. Codenvy open source projects can be viewed on GitHub.
Pro Self-hostable (priced)
Codenvy has an on-premises solution that allows running it on own hardware and behind a firewall. The service costs $300/user/year.
Pro Nice interface
Look and usability of Codenvy IDE are nice and pleasant.
Pro Easy projects sharing
Projects are share by sharing the link (public projects), adding access rights (private and public projects) and factory.
Factory allows to share projects along with build/run settings. To try run/review project recipient just need an URL. Factory also works with external git repositories so it allows share github/bitbucket/other git hosting projects. Recipient doesn't have to be registered. It also allows giving out a share button that activates the factory and counts how many times it is used.
Pro Portable workspaces
You can send someone a short JSON file and your whole workspace (projects, config and runtime) can be replicated for them in a separate container. Great for coordinating among team members.
Pro On-demand, instant-access, real-time collaborative IDEs
Codenvy "Factory" feature enables developers to create temporary IDE workspaces with full code, build, test, deploy, and collaboration functionality that can be shared with a URL. Multiple people can work in the same workspace making code reviews and teaching simpler and faster. And there's no limit to collaborators.
Factories also work with external git repositories and can be shared with not registered users of Codenvy. It also allows counting how much a factory is used.
Pro Has a fully functional free tier
Codenvy provides a fully functional free tier with 3 GB of RAM and unlimited workspaces, free and public projects and developers. Premium subscription start at $1/month and offers machines with up to 200GB of RAM. Codenvy also offers an on-premises solution that costs $300/user/year.
Pro Fantastic Java support
All Java builders, syntax highlighting, class navigator, jump to package and declaration, and JavaDoc are present in Codenvy.
Pro Can provide a custom runtime environment
Codenvy can provide a runtime environment to test and debug code. This can also be used to share work progress with a client.
Codenvy uses Docker as the runtime application and gives access to Dockerfiles allowing any environment that runs on Linux to be built. This allows using any database, reverse proxy or builder, etc. Codenvy even provides SSH access to running container in every image.
There's also a selection of pre-built environments to speed up the development.
Pro Install anywhere Docker runs
You can install Codenvy on any OS that has Docker running on it. The simple install syntax can work through proxies and even offline.
You can use this for proxy install:
https://codenvy.com/docs/admin-guide/installation/index.html#proxy-installation
You can use this for offline install:
https://codenvy.com/docs/admin-guide/installation/index.html#offline-installation
Pro Provides a terminal with root access
Codenvy offers a terminal with full root access into the machine. Since machines can be defined with Dockerfiles this gives the ability to create any custom environment for building, running or debuging and all the access that's needed to use it as a local machine.
Pro Complete build lifecycle
The IDE allows validating, compiling, testing, packaging and deploying.
Pro Integrates with a wide variety of tools
Codenvy offers first class support for code management, continuous integration, PaaS, and project management tools.
Pro Automation of contribution to GitHub projects
Codenvy provides contribution button that can be placed in Readme.md file on GitHub. It automates contribution to the Github's projects. User clicks this button and it opens a ready to run/edit version of the project in Codenvy. If a user makes changes, Codenvy takes care of everything needed for the contribution on GitHub.
- fork of the origin project on github
- add ssh keys to push to github
- commit
- push
- create pull request in the origin project
- create factory url for review of this pull
- post this factory in pull request.
Then project's owner can use posted link to code review/run project with changes.
Pro Badge to start developing in one click
You can create a .codenvy.json
containing the Factory configuration which includes what binaries to install and how to set up the IDE, may be even start the development server. Then create a badge and put it on your GitHub repository and people can start coding and may be compile and run your server with one click.
Pro Lots of built-in templates
Pro Can be used for Android development
Can be used for android development by adding Eclipse plugin.
Pro Custom build system support
Codenvy allows setting up any build system via Dockerfile. Instructions on how to do it can be found here.
Pro Has Eclipse plugin
Codenvy can be plugged into Eclipse offering choice between online and offline builds. Plugin can be found here.
Pro Developer workspace replicas
Codenvy can create a recipe for a developer workspace that includes the build and run environment configuration plus all the IDE plug-ins, syntax rules, policies and other items. Then version and store that with the code in a repository. Makes it impossible to get a code change that doesn't build and run.
Pro Quick support from staff
Pro One-click automation
Pro SSH Access
Can connect to the workspace via SSH for use with desktop editors.
Pro Provides Java debugger
Pro Includes Subversion support
Codenvy includes full subversion version control support.
Pro Combines the best parts of Vi and Emacs
Spacemacs combines the Emacs platform (with the full power of the Emacs plugin ecosystem) and the Vi keybindings (via EViL), all in the same box.
Pro Simple but powerful configuration architecture
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 the user to easily manage configuration dependencies between hundreds of packages.
Pro Community-driven configuration
Spacemacs is the biggest community-driven Emacs starter-kit.
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 Cross-platform
Emacs runs on Gnu/Linux, Mac OS X, and Windows.
Pro Completely configured out of the box
Stuff like version control, file management, good default theme are all configured out of the box.
Pro Mnemonic and consistent keybindings
Space-lead key bindings are organized in mnemonic namespaces. For instance, buffer actions are under SPC b
, file actions are under SPC f
, project actions are under SPC p
, search actions are under SPC s
, and so on. Keybindings are consistent across the whole distribution thanks to a set of conventions.
Pro Can be controlled fully with the keyboard
There's no need to reach for the mouse again since Spacemacs can be fully controlled with keyboard.
Pro Gradual learning curve
Evil package is a first class citizen and 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 Remote file editing
Files can be edited in Spacemacs remotely.
Pro Great note-taking and agenda mode built-in
Allows for great organization applications that can be saved in future-proof format, plain text, can be integrated with org, LaTeX, markdown, HTML, Literate Programming and be committed to source control.
Pro Offers a number of practical features
Spacemacs has some great features for taking notes, tracking to-do lists, and tracking time.
Pro LaTeX support
LaTeX allows for auto-completion, syncing, and more.
Pro Manage many code bases easily
Pro Daemon support
Has great daemon support, which can mitigate the issue of slow startup.
Pro Can work in terminal mode
Sometimes you only have terminal access, over ssh or something.
Pro Great CFEngine support
Syntax highlighting and org-babel extensions.
Pro Great support from the community
The community surrounding Spacemacs is very active and there is a welcoming gitter chat for users to ask questions.
Pro Lowers the risk of RSI by using the spacebar as leader
Spacemacs got its name from the fact that it is uses the space bar as a default leader key. The key was chosen because it is easy to press and to hopefully lower the risk of RSI.
Pro Fast-paced development
New functionalities and fixes are added to Spacemacs every day, while release cycles are short.
Pro Easily extended with community plugins
Pro Works well with Common Lisp
Pro Manage R files easily
Pro Great Clojure support
Pro Excellent support for Elixir programming language
Elixir layer which uses the Alchemist package is the best way to edit Elixir code out there.
Cons
Con No custom keyboard shortcuts
No possibility to create custom keyboard shortcuts.
Con No SSH, FTP mode
For example, "Code everywhere" allows using SSH, FTP as base of project. In Codenvy it's possible only through VM.
Con No Collaborative editing
At the moment, Codenvy does not have real-time collaborative-editing. But this is on roadmap, and would be implemented soon.
Con Lacks two-factor authentication
Con Slow installation by default
Trying to install with "npm install" and the server restarts before the installation. However, you can circumvent this by using npm install --no-bin-links
.
Con Non-optimistic UI, typing results in letters being sent to server and back and then they show
Con Can be quite glitchy at times
Spacemacs combines many packages from many different authors that were never designed to work together. Sometimes they interact in unexpected ways, and things randomly break as one package interferes with another's features. This combined with frequent package updates and necessary customization by selection of layers and packages, can make these glitches hard to reproduce. It takes a lot of emacs know-how to fix these problems. Fortunately there is a very active community willing to help with these problems, but it might take a while.
Con Complex learning difficulty
You must be familiar with either Vim or Emacs. In addition, you should be familiar with the unique features of Spacemacs. The Layer concept of replacing Emacs settings is still difficult and abstract compared to modern editors.
Con Functionality layers of complicated configuration
To configure Spacemacs, settings for Emacs/Evil/Spacemacs may need editing. It's not always clear which need to be changed or how to change settings globally: sometimes hooks are needed, other times Spacemacs provides options.
Con High CPU and unresponsive at times
There are occasions when Spacemacs would suddenly consume a LOT of CPU and then other times would become completely unresponsive. This instability took place only 6 months or so ago. Restarting Spacemacs can fix it for a while but perhaps this issue is already fixed in newer versions.
Con Relative low startup time
Although configuration is heavily loaded, the starting time of Spacemacs is usually between two and five seconds. Emacs can be run as a daemon though which reduces the client's startup time to a few milliseconds. Still not as bad as other editors though, especially Electron based ones like VSCode or Atom.