Uses a fast indexing technique to provide contextual hints (auto-completion, available object members, import suggestions). On-the-fly code analysis to detect errors and propose refactorization.
Ranked in these QuestionsQuestion Ranking
Pro Fast and smart contextual assistance
Uses a fast indexing technique to provide contextual hints (auto-completion, available object members, import suggestions).
On-the-fly code analysis to detect errors and propose refactorization.
Pro Stable and robust
IntelliJ IDEA hardly ever crashes or has any issues that plague other Java IDEs like file corruption or slowness.
Pro Lots of plugins
Many plugins are available for almost any task a developer may need to cover. Plugins are developed by Jetbrains themselves or by 3rd parties through the SDK available for writing them.
Pro Smart refactorings
IDEA places an emphasis in safe refactoring, offering a variety of features to make this possible for a variety of languages.
These features include safe delete, type migration and replacing method code duplicates.
Pro Android support, JavaEE support, etc
A very complete development environment support.
Pro Support for many languages
IntelliJ supports many languages besides Java, some of these are: golang, Scala, Clojure, Groovy, Bash, etc...
Pro Free version available
There is a free community edition (open source) and an ultimate edition, which you can compare here.
The ultimate edition is available for free for one year for students but must be registered through an .edu e-mail account.
Pro Intuitive and slick UI
IDEA has a clean, intuitive interface with some customization available (such as the Darcula theme).
Pro Clear and detailed documentation
The documentation is exhaustive, easy to navigate, and clearly worded.
Pro Gives users access to a terminal with root access
Cloud9 gives full terminal access to home directory. In their hosted Linux Ubuntu environment it has sudo powers. No UNIX commands have been blocked - npm, ifconfig, chmod, chown, tar, etc work. All commands can be accessed and any package can be installed. However, certain advanced features are inaccessible (one cannot run Docker within the terminal).
And if the terminal is used when using Remote SSH feature it connects directly to the server and runs the commands on that server.
Pro Can be hosted on your own server for added security
Since Cloud9 is an open source project with source code available on GitHub, it can be run as a self-hosted solution on own hardware and behind a firewall as long as it's being used on non-commercial projects.
Pro Has a great editor
Cloud9 uses their own editor called ACE. Besides the basics, it covers most important advanced code editor features such as code folding, converting cases, auto-completion, code analysis and refactoring, regex search and offers easy access to relevant documentation.
It also gives access to the CLI, has support for Vim and Emacs keybindings, includes multiple cursors and zen coding mode that removes all distractions and allows focusing on code.
Pro Built-in git and mercurial support
Git and hg commands can be run in the command-line, the same way as in a local terminal. There are also built-in add-on services for GitHub, BitBucket and GitLab.
Pro Provides its own runtime environment
Cloud9 can connect to a dedicated VM to provide a powerful Ubuntu runtime environment in the cloud using Docker. Apps can be either run from the run panel where a selection of runners is provided or from a terminal.
Pro Supports almost every popular programming language out there
The runner has built-in functionality fo Apache, Node, Python, Ruby, Ruby on Rails, Go, CoffeeScript, Julia, Mocha and Shell script, but any other language can be used by creating a runner for it.
Pro Lets developers connect to their workspace directly using SSH
Allows you to connect directly to your external server via SSH. Modifying files directly on your server using a cloud based editor allows you to have the portability of the a cloud based workspace with the control of your own server (including complete DNS control).
Pro Enables real-time online collaboration
An important feature of Cloud9 is the real-time collaboration ability. It allows pairing programs or perform code reviews really easily as well as simultaneously text chat.
Breakpoints allow specifying a stopping points in the execution of the application. When these breakpoints are hit, the application will stop executing and give the ability to examine data such as local variables, run commands and control the execution flow of the application.
Pro Very easy to deploy apps from inside the IDE
Pro Supports most databases
In addition to launching a server to run code, Cloud9 will also host a database to develop against. Support for MySQL, PostgreSQL, MongoDB and SQLite.
Pro Lets you clone multiple repos in one project
Cloud9 provides one free private workspace. However, I can host multiple projects there by cloning as many repositories into the root project directory, thanks to the full access terminal.
Pro Can also be used for offline editing
By installing and running a client application that syncs the local file system and cloud storage Cloud9 can be run locally. Great alternative for situations when the Internet connection is unreliable.
Pro Very easy to install packages through the built-in package manager
Similar to package managers for the desktop, Cloud9 also includes their own package manager, c9pm, which allows adding new software from a list of available utilities.
Apt-get can be used in the project's workspace terminal to install/update/upgrade software. Composer, Bower or any other utilities of choice can be installed to manage dependencies and packages.
Pro Great documentation
Cloud9 has extensive, well-organized documentation at docs.c9.io.
Pro Supports client-side browser testing
Cloud9 integrates with Sauce Labs a browser testing suite that allows previewing the app in any desktop or mobile browser.
Pro Can be easily integrated with repositories hosted on Bitbucket
You can launch into C9 directly from the Bitbucket UI via a plugin available on Bitbucket. If you set up your Git repo for a project in Bitbucket and open it in C9 you can push to Git via the CLI from the start.
Pro Built-in image editor
Includes a very basic image preview and editing tool.
Pro Ease of use compared to e.g. WampServer
Con Built with closed source components
The version with full features is not opensource. Parts of the code are under apache licence though.
Con Bugs are not solved as often as they should
They are more interested in adding new features or issuing new versions than solving bugs.
Con Cannot open multiple projects in the same window
Con Standard hotkeys behave differently
Seems like hotkeys assignment in Idea has no logical consistency.
Like «F3» is usually next match, «Ctrl+W» - close tab, etc — they map to some different action by default.
There is a good effort in making the IDE friendly for immigrants from other products: there are options to use hotkeys from Eclipse, and even emacs. But these mappings are very incomplete. And help pages do not take this remapping into account, rather mentioning the standard hotkeys.
So, people coming from other IDEs/editors are doomed to using mouse and context menus (which are rather big and complex).
Con You need a credit card to sign up
You need a credit card to sign up for Cloud9, which is problematic for users in countries where credit cards are not the norm.
They won't bill you (for the free account), but still require it. You can buy a VISA gift card and sign up with that.
For more than one private workspace, the starting price is $19/month.
Con Lacks a built-in Java builder and runner
While there is no built-in Java builder or runner currently, C9 has provided instructions on how to set them up. Instructions can be found here.
Con Cannot run "chroot"
This breaks many developer tools like Docker and Bazel. This is the result of the fact that the hosted environment runs within Docker which limits access to this capability in order to prevent breaking out of the container.
Con Lacks subdomain options
Building an app that needs subdomains is impossible.