Cloud IDEs: Solution to What?
Cloud IDEs are being touted more and more as the next big thing. While I think people like codenvy.com and c9.io have something there, it is too early to predict mass migration of programmers.
Some arguments for moving to the cloud just don’t sound very convincing, as far as I’m concerned. Take this advertorial, for example. To me, the “problems” with desktop development cited in the piece are rather overstated.
Yeah, it’s true that setting up a new machine for a project may take a few hours. And yeah, the same process is much quicker in a cloud IDE. However, this step only needs to be done once at the start of the project. At the end of the day, the impact of this on the overall productivity of a developer is quite negligible. Sure, it’s a nice bonus to be up and running that quickly, but by itself this is hardly a compelling reason to move to a cloud IDE.
As far as remote accessibility from mobile devices, this must be a joke. It is impossible to code from a smartphone, or even from a tablet. Those are great for consuming web content and posting occasional comments, but absolutely horrid for actively editing large amounts of text (i.e. finding the right segments of code, selecting, deleting, copying, pasting, etc.). This is completely unviable in my opinion.
With regards to collaboration, I am not convinced either. I guess there could exist interesting and viable collaboration scenarios in a cloud IDE, but from experience of editing documents together in Google Drive, I highly doubt it. I don’t see why people couldn’t use a good IDE together with some kind of project chat application. And no, pair programming doesn’t mean two people editing the same chunk of code at the same time. So I don’t see this feature as the answer to an acute unmet need.
I spent some time playing with codeenvy.com, and have a couple of observations. I am very excited about node.js, which is currently not very well supported by it – meaning that while you can code in JS, and deploy to OpenShift, but coding assistance is not functioning, and neither is the debugger. So, compared to conventional IDEs, e.g. one from JetBrains, this is very much last century.
There are, of course, other reservations, like no support for multi-screen development, the inability to work offline, security, etc.
On balance, I think that a good, viable cloud IDE should feature the following:
- Modern UI. Gmail won many converts from the traditional Outlook-like layout because some smart guys thought long and hard about it and came up with an interface that has kept things that are essential and mercilessly ditched things that were not. There is no need to try and cop multi-level menus a la Eclipse, which is what Codenvy seems to be trying to do. In that sense, I like what Cloud9 is doing better, but even their stuff is still somewhat half-baked.
- Codenvy’s PaaS-agnostic approach looks attractive, but I have a hard time imagining remote debugging (you are in your browser in one location, the IDE is in another, and the application runs in yet another). The key factor for developers is speed. The IDE must not slow developers down, period. I think a more promising approach would be to couple the IDE with a specific PaaS provider.
- None of the IDEs I have reviewed has even a rudimentary level of support for version control (Git/SVN). This is exactly the area that I believe a cloud IDE could absolutely shine, in contrast with desktop environments.