everythingpossible - Fotolia
Everything runs -- or can run -- in the cloud, including integrated development environments. Developers should investigate what cloud integrated development environments are and the various types to choose from. But before you select a product, understand the advantages and disadvantages associated with this off-premises dev environment.
An integrated development environment (IDE) helps developers write code that includes features to simplify the process -- like syntax highlighting and automatic indentation. It typically includes functionality that makes it easy to compile, run and debug code. Rather than download and install the IDE on their local workstation, developers can turn to a cloud IDE accessible via a web browser. Although developers still use local IDEs, cloud IDEs have gained popularity.
A developer can technically run a traditional IDE on a virtual server in the cloud, using a remote desktop, but it's rarely what developers have in mind for a cloud IDE. Hosted IDEs don't require the user to perform any installation or maintenance.
Cloud IDEs don't have to be used to develop cloud applications. Most cloud IDEs work to create apps for various on-premises, hybrid and cloud-based environments, and they support a range of programming languages and frameworks.
There are two categories of deployment options for cloud IDEs:
- Fully-managed IDEs, like AWS Cloud9, that are ready to work without the user setting up their hosting infrastructure.
- Self-hosted IDEs, like Eclipse Che and Orion, that developers have to set up and install themselves on a local or cloud-based server.
In some ways, cloud IDEs are similar to the well-established PaaS architecture. PaaS makes it easy for developers to build and deploy applications in the cloud. A major contrast between PaaS and cloud IDE is in the development tools. PaaS is designed with the expectation that developers will write code in a separate tool, then upload it to PaaS to deploy. Cloud IDEs are a form of SaaS: They deliver the capabilities of an IDE as a service.
Cloud IDE pros
Cloud IDEs offer several advantages over traditional IDEs. As described above, when the IDE is hosted by the provider, developers don't have to set up and manage it. Developers can write code on virtually any type of laptop, tablet, smartphone or other workstation, as long as it has a web browser to connect to the cloud IDE. Code is automatically saved to a cloud-based environment, so changes are not lost if a developer's laptop experiences an issue and shuts down.
Cloud IDEs can build and debug code more quickly than locally installed IDEs, because they run on more powerful hardware. Organizations also frequently run production environments for applications on cloud hosting. A cloud IDE can deploy code quickly into a cloud-based production environment. This setup eliminates delays from slow upload links from on-premises IDEs to the cloud infrastructure.
Cloud IDEs also enable multiple developers to use the same environment at once, which fosters easier collaboration on shared code.
Cloud IDE cons
However, cloud IDEs also have potential drawbacks. Organizations pay on a subscription model for a fully-managed cloud IDE, as opposed to buying the tool outright. A self-hosted cloud IDE might be free to download and install, but the organization must budget to host the tool.
Because the IDE is not installed locally, access and performance can be affected by network connectivity problems or bandwidth limitations. This setup can also make it easier for attackers to access the IDE and the developers' code on it.
While every tool is different, in general, cloud IDEs support fewer programming languages and are less customizable and extensible than local IDEs. Cloud IDE buyers should review the plugin ecosystem for a given tool, and ask about the user's access to and control over the operating system.
Cloud IDE products comparison
There are a number of cloud IDEs, each with a set of strengths and weaknesses that developers should consider:
- Cloud9 is a popular cloud IDE option, fully managed from AWS. Cloud9 integrates well with other services from AWS but it can also be used to build applications that are deployed elsewhere.
- Codeanywhere is another popular fully-managed cloud IDE. Codeanywhere was one of the first platforms to make cloud IDEs practical and it can support several dozen programming languages.
- Eclipse Che is an open source cloud IDE from the Eclipse Foundation. It's available as a fully-managed service or it can be self-hosted. Eclipse Che supports up to twelve languages, including most of the popular languages for developing native and web applications.
- Orion, also developed under the Eclipse Foundation, specifically enables users to develop web apps, and only supports web development languages.
- Theia can run on a local computer or in the cloud -- or even split between the two -- which makes it a good choice for developers who want an IDE that provides a flexible set of deployment options.