Mozilla recently threw another log onto the web based IDE fire with it’s recent Bespin announcement. And InfoQ followed that up with a “Web-based IDEs to become mainstream?” post that mirrors some of my previous thoughts on the matter.
While I covered a number of the benefits of web IDEs in my previous post, we should also consider what some of the drawbacks of this approach might be.
For example, developers often enjoy incredible freedom in terms of what tools they can install on their machine to aid in development. And most of these tools operate via the file system. But consider what would happen if a company decided that all of their developers should be using a cloud based IDE with built in web based version control and it was no longer possible to check out the full code base to your local machine. All of a sudden you may no longer be able to take advantage of these tools anymore. In effect, you would become handcuffed by and limited to the tooling available in the web based IDE. (Easy fix: WebDAV and/or retain the ability to check out and build the code outside the web IDE.)
Another drawback along these lines relates to the ability to add new frameworks to a project. Today, this is usually pretty easy from an implementation standpoint. You just drop in the jar file or add the dependency and you write some code. And if necessary, you can pursue obtaining corporate approval to use the framework in parallel with your initial development, but at least you can be productive while the process is ongoing. But imagine if a web based IDE only allowed you to choose dependencies from a predetermined list of frameworks and libraries. All of a sudden your project could be roadblocked by the corporate approval process and stalled indefinitely. What’s worse, it might not be possible to implement a prototype using the framework that often goes a long way towards obtaining approval for new frameworks.
And what about the horsepower for performing builds, running tests, etc.? Developers today generally have their own machines and are in control of what is running on them so they can try to get the best development performance possible. But a web based IDE generally also means shared resources, which could mean increased delays for developers. And the cost of those lost minutes quickly adds up.
The bottom line is that while web based IDEs have the potential to provide significant benefits, care should be taken to ensure that non web based IDE development is also still supported. If not, the benefits of a web based IDE could easily be far outweighed by massive losses in productivity from not being able to use the best tool for the job.