Online IDEs – perspectives?

DZone 's Guide to

Online IDEs – perspectives?

· Cloud Zone ·
Free Resource

The software development domain constantly introduces area-specific innovations, one of them being the creation of online IDEs - development environments that can be accessed from the web browser, without the need to install specific client software. At this time those few that are present on the arena have very limited functionality, although even at this time offer great opportunities for aspiring and professional developers.

So, why do I think that there is a niche for online IDEs and those will find their users?

1. Platform-independent
Online run just as a regular web page – from a web browser. The most we could probably expect is the need to install a third-party plug-in for the web browser (like ActiveX or Silverlight) to display the contents. And that’s it. All the code compilation, linking and debugging can be made in the cloud (on a remote machine). This means, that the platform-dependent layer is slowly becoming transparent, allowing developers to create their software on a platform, where initially the language is not supported. Another example would be that the client machine is a bit “slow” to allow the developer to work with a regular IDE, and here is where its online analog takes a strong position, making the development possible at different levels. The developer won’t have to worry about hardware anymore.

2. Accessibility

The online IDE can be accessed from any place in the world, just a few clicks away. So, you won’t have to carry that 12-project solution with you to every single trip to a different town, city or country. This also means that you don’t have to worry about storage.

3. Easier collaboration
Major projects are made in teams, and usually there is additional software needed to setup a team development environment. When all the code is stored on a remote server and the development environment is accessible to everyone, it is very easy to collaborate in the framework of a specific project. All you will ever have to worry about is the server configuration for teamwork.

4. Upgradeability
This mostly refers to the developers of online IDEs, but I also decided including it here. It is much easier to upgrade/patch a product on a single machine rather than distributing a service pack to thousands of clients. People want to work with stable, bug-free software on any level, and a single upgrade in a single location could be the first step. Also, whenever a new SDK or framework appears, the developers most likely start working on upgrading their machines, sometimes more painful because of compatibility issues, sometimes this is a less-painful process. However, with a single instance of the development platform running remotely it will be much easier to add the needed features without the fear of messing up the whole development environment.

Although online IDEs have several benefits, there are also drawbacks. One of them being the code security. Not many developers are willing to let their code “live” on a remote machine that is not controlled by them. Mainly because of the possibility of data loss - this already happened before in several cloud services. And in most cases the vendor of the service takes no liability of the consequences.

But there is one more thing – any piece of code that is created in the online environment becomes visible to the developer of the IDE and the team managing the cloud itself. And generally, no privacy policy is going to protect you from that. Therefore, working with private code or code that is not intended to be used in public/commercial applications is unsecure.

At this time online IDEs run only in several places, however, I would expect that soon there will appear commercial and free distributions for corporate and third-party use. No matter how this turns out, it is definitely interesting to watch this field develop and grow.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}