Yes, this is not a joke! In 5 years, all developers will code in the cloud. Not only will they code there, but also build, test, run, debug and deploy apps in the cloud. This is inevitable, although it does not seem obvious at the moment. Indeed, cloud based IDE projects are only emerging in the market as major players with serious intentions and a clear strategic vision. Yes, it’s impossible to make a 100% forecast on how this market will behave in 1-2 years. The recent trends in the software development industry speak for the need for a more productive way to code. There’s a huge increase in a number of apps developed worldwide, while the number of developers remains pretty much the same. What does it mean? It means that developers have to become more productive. While there are limits for human stamina and productivity, it’s possible to win some time by optimizing code-build-test-run-deploy process. This is exactly where a cloud based IDE comes into play as a serious rival for offline tools. Some of the most obvious advantages of online IDE include:
Increased productivity and easy onboarding. How much time does it take to install and configure environment, VM for testing and running, as well as plugins to deploy a simple Java application? What’s are your most conservative estimates? An hour? Take it up a notch! It’s four hours rough. A clean machine will need Java, Maven (or any other build manager), Tomcat, Eclipse, plugin for your PaaS of choice etc (the instruments have been chosen randomely). Isn't it much for a simple Spring app? Well, a cloud IDE is already configured and ready to start anytime. That's like a car with a driver who never shuts off the engine. A developer can use any machine, running any OS. There’s no need to download and configure environment and look for necessary plugins. Here’s the way to create a simple Spring app in Codenvy and deploy it to CloudFoundry.
Build, test and run in the cloud. A cloud based IDE hosts all necessary services side by side, so that they are immediately available on demand. Projects are built on powerful machines, which will off-load developers’ computers. In simple words, it’s possible to use desktops and laptops having mediocre specs. Builds are faster and do not require much resources (developers can perform other tasks while building projects).
Running and debugging apps in the cloud is another pivotal feature of a good web based IDE. Once the project is built, it’s ready to be run or debugged. Moreover, it’s also possible to update apps within the runtime, for example, by using JRebel plugin. With any changes made to the source code, developers can actually check out these changes in running apps. The same concerns a debugging mode. The app is started on the IDE server, while a developer can play with it by setting breakpoints, inspecting and changing variables, stepping through code, evaluating expressions etc.
Sharing and collaboration. Perhaps, this is one of the number one reasons while cloud based IDEs will move on. In today’s world of social media, it is totally unacceptable to be unable to share a project online. Cloud IDEs go even further. In addition to sharing features (just sending a link to a project is enough for a developer or a team to join a project), there’s a real time collaboration mode. Yes, it means that two developers located in the opposite part of the world can work on the same file or a chunk of code simultaneously. What about chatting right in the editor? That’s is totally possible in a collaboration mode that major cloud IDEs in the market have in their toolboxes (Cloud9 has real time collaboration while Codenvy is planning to release it soon). Have a quick look at social collaboration feature in Codenvy.
Administrative control and compliance. Managers overseeing dev teams (especially when it comes to outsourcing) will definitely appreciate having a simple control and monitoring mechanism to see how much code has been written and prevent leakage of code. Once project, one environment, many virtual workspaces and one administrative dashboard.
Instead of a conclusion
Sure, web based IDEs currently lack some cornerstone features and capabilities that offline IDEs have, for example, the popular Eclipse. Still, moving at a high speed, cloud IDE projects are getting better and better with every coming day, freeing developers from boring installations and the fuss of setting up dev environment. Cloud IDEs are the future of web development. What do you think?