Five years ago, online IDE were such toys, causing wild delight among geeks and lovers of everything new. Yes, what can I say, most likely, the creators of such services themselves did not fully understand where their intentions and work would lead. It all started with a banal online notepad with a couple of menus and a compiler for a couple of languages. In general, it is rather interesting to observe the development of this market. So, in 2011 a review of cloud IDE was published, among which there are also heroes of this article. Two years later, another article appeared comparing the two strongest players in the market - Codenvy and Cloud9 . Well, it's 2015, and, therefore, time for the next review.
Heroes of the review was not chosen by chance. Helped and Google search, as well as the frequency of references to the thematic forums. So, meet - Codenvy , Cloud9 , Koding and Nitrous . The order is completely arbitrary, who is better and who is worse - everyone will decide. We will just go over the main chips and try to predict the vector of the future development of the above services.
If you look at the article Programming in the cloud: A small overview of the online IDE, then in Codenvy we will find out eXo IDE. In five years, much has changed, if not all. The new generation of IDE is strikingly different from itself 2-3 years ago. Briefly and by points:
The architecture assumes the location of various services on dedicated servers, that is, building projects (if it is Java) runs on a separate server with Maven and Ant preinstalled. Build artifacts are copied to the runtime server, the heart of which has become Docker.
thanks to Docker, the application runs in an isolated container. The user is given the opportunity to collect images from their Dockerfiles. Thus, Codenvy is not limited to providing virtuals with a certain “axis”. Pre-installed machines are based on Derbian Jessie.
Java support. Like competitors, Codenvy pays more attention to the language in which, in fact, the service itself is written. Package view and list of used libraries for the project tree, syntax highlighting, full-fledged code-assistant (hello to Eclips), showing errors and suggesting options for correcting them, navigating through the code (good old F4). Maven and Ant on board. Automatic updating of dependencies when saving build files.
open source. Codenvy walks into the arms of Eclipse, and its own SDK slowly migrated to the Eclipse Che project.
Git support, convenient Datasource plugin, CodeMirror with its buns, Google App Engine plugin, the ability to pull the request to the GitHub repository directly from the workspace (the new “brunch”, “fork” and “pull return” are done automatically).
Codenvy also pay attention to the issue of cloning environments, when in 1 click you can share a project along with its surroundings and settings. In fact, to try Codenvy you do not need to register at all. The project can be shared using the following button, which Codenvy calls Factory:
Among the shortcomings we note the following:
lack of support for scripting languages. Code autocompletion for PHP, Python, Ruby not. Plug-ins for these languages ​​are at the mercy of the community.
resource limit and runner time. For free accounts, a limit of 1 hour is set, after which the Docker container stops and is deleted. Currently, the machines are not saved, but are recreated.
there is no file synchronization, that is, changes made in runtime will not be displayed in the project tree. Judging by the Codenvy technical support posts, the last 2 problems are being actively solved.
findings
Well, Codenvy seems to have found its audience. Eclipse Che and solutions for enterprise clients (Codenvy is offered in the on-site version, that is, you can install the service on your hardware or virtual machine) - why not make statements about the project’s maturity?
The next review hero also went a long and difficult way. Differing in many ways from Codenvy, Cloud9 continues to bend its line, systematically developing in the chosen vector. If Codenvy is Java, then Cloud9 is definitely JavaScript. Who writes on what, as they say. By the way, the company recently released the Beta version of the SDK .
Pros Cloud9:
full support for JavaScript, PHP, Python. Here and auto-complement code, error highlighting, debug mode, code navigation, search for files, functions. In short, good work has been done for scripting languages.
ability to connect to FTP, as well as SSH connection to servers. For example, you can pick up a car on Digital Ocean or Amazon, and “connect” there from Cloud 9 workspaces. Thus, the user is provided with all the buns of the editor and the “power” of the raised “instances”:
sudo access to the virtual machine. Setting up the environment for yourself is quite simple (Ubuntu is offered out of the box). Machines rise by the same Docker on Google Cloud infrastructure
svn, git is already preinstalled on the machine
collaboration mode
set of built-in build systems for scripting languages
disadvantages
Although Cloud 9 does not position itself as a Java IDE, Java support is not enough. The existing code autocompletion is clearly not what the Java developer would like to see.
free account restrictions. Well, without it, nowhere
findings
An excellent choice for JavaScript developers. Good editor, lots of hot keys. Stable development of the company over the years, active development. Without a doubt, we can expect new chips and interesting updates.
This name is increasingly mentioned in the thematic forums. Despite its minimalist design, Koding offers simple, but effective solutions. You will not see the usual IDE menus. The editor and terminal are what the developer needs.
Pros of Koding:
fast “raising” the virtual machine. At the same time, you do not need to choose what you need in this car. There will be everything. Such is the solution. PHP, Python, Java, Ruby, Perl, Java managed to detect immediately. Missing services and software can be installed by hand.
Git and SVN is available out of the box.
access to the virtual machine via SSH. There is a short connection tutorial
collaboration mode with watch functions (a replica of workspace is created) and kick (a user can be forcibly removed from a session)
own package manager + tutorials for installing the most popular packages + the ability to install packages under sudo
disadvantages
because of the very minimalist design, it’s hard to figure out how to get started, especially for developers who are used to the classic menu layout and tabs in Eclipse and IntelliJ.
lack of full support for Java, although, perhaps, Koding and do not position themselves on this side
the lack of a comfortable “deployment” on PaaS, although there is an opportunity to install utilities from providers and “deploy” through the command line.
unlike Codenvy and Cloud9, the development of third-party plug-ins is not provided (well, or the information is hidden somewhere in the site)
findings
The project is quite interesting, but the development is behind the first two reviewers. At the same time, the simplicity of creating a VM and the absence of “bells and whistles”, that is, unnecessary adornments that do not carry real practical benefits, impresses.
A very interesting concept, as developers are offered either a virtual machine in the cloud or a virtual machine + desktop application that makes it possible to use your favorite desktop editors.
Pros :
smartly rises virtual machine. The user chooses his own stack. PHP, Ruby, Node.js, Go, Meteor are offered.
SSH access to the virtual machine
desktop application for Windows and Mac with which you can work with offline editor (for example, Sublime) and manage the virtual machine. Projects placed in a specific directory on the local machine are automatically synchronized with the cloud.
convenient interface for installing packages. Simply enter the package name and click Install
code assistant for scripting languages
Disadvantages :
slightly inconvenient interface for running services. Of course, you can do everything with your hands in the terminal, but still, the proposed UI is not quite intuitive
not quite understand the policy on the ports. It is proposed to preview applications on seskolkikh ports, and how to be, to use non-custom, it is not clear.
perhaps subjectively, but the design of the editor and the workshop as a whole looks odd.
There are no ready-made solutions for deploying to PaaS. Instead, command-line solutions are offered, with self-installing packages and utilities.
findings
Abmicio project that will be interesting to PHP, Python and JavaScript developers. Desktop application is a very good solution, how to connect desktop and cloud.
Instead of Totals
Criticize online IDE is possible and even necessary. More criticism - more incentive for development. And in many ways, this very criticism made the above-mentioned IDEs what they are today. Someone is focused on Java and enterprise market segment, someone is trying to make the life of JavaScript, PHP and Python developers easier and more fun. In any case, the idea of ​​coding from a Chromebook or a weak laptop, while having a good editor and a remote Linux machine, has the right to life. Let's see what will happen in a few years.