Like almost everything these days, integrated development environments (IDEs) can run in the cloud. But is a cloud IDE--which is also sometimes called an online IDE or web IDE--the best deployment option for developers? The answer depends largely on which type of application you are building, how you are deploying it and how extensively you need to collaborate with other developers.
What Is a Cloud IDE?
To understand what a cloud IDE is, you must first know what defines an IDE in general.
An IDE is a platform that developers use to write and manage application code. The features of IDEs can vary from one platform to the next. Typically, however, IDEs provide an interface where programmers can write code. They also provide tools for performing tasks like compiling and debugging code.
Historically, IDEs were applications that developers had to install locally on the computers they used for programming. A cloud IDE provides an alternative to this IDE deployment model. With a cloud IDE, the IDE platform runs as a fully managed service that is hosted in the cloud.
In other words, you can think of a cloud IDE as an IDE that is deployed using a SaaS architecture. Instead of having to install and manage the IDE on their own device, developers simply connect to a cloud IDE over the Internet.
What Problems Do Cloud IDEs Solve?
Probably the most obvious advantage of cloud IDEs is that they make it easier and faster to set up an IDE platform. When you don’t have to install the IDE yourself, you can get to work more quickly.
However, beyond ease of deployment, cloud IDEs offer several additional benefits:
- No code uploading: With a cloud IDE, the code developers write is born directly in the cloud. This eliminates the need to upload application code from a local development PC to the cloud where it is deployed.
- Unlimited resources: Like other cloud-based resources, cloud IDEs have access to virtually limitless CPU, memory and other infrastructure resources. This can be advantageous when performing resource-intensive tasks, like compiling source code. With a traditional IDE, the amount of resources available to the IDE is limited by the hardware resources of the device that hosts it.
- Multiple sessions: Cloud IDEs make it very easy to create multiple instances of a development environment. That comes in handy if, for example, a developer wants to build multiple applications at the same time, each in its own IDE instance. Local IDEs can’t always do this; they may limit you to running just one IDE or one instance at a time on each device.
- Access and share code from anywhere: IDEs hosted in the cloud can be accessed from any device with an Internet connection, which makes it easier for developers to work on the go. The centralization of code in the cloud also facilitates easy sharing of code between developers.
How New Are Cloud IDEs?
Cloud IDEs aren’t especially new. The first production-ready cloud IDEs debuted about 10 years ago.
Yet, cloud IDEs have been slow to catch on. As of 2020, one survey found that only 10% of professional developers were using cloud IDEs.
Why Doesn’t Everyone Use Cloud IDEs?
The relatively low adoption rate for cloud IDEs may seem surprising, given that cloud IDEs have been around for a long time and that they offer clear advantages for developers.
On the other hand, it’s understandable enough why many professional developers and software engineers would be hesitant to pivot to cloud IDEs. A number of factors are likely at play:
- Lock-in fears: Most cloud IDEs are proprietary, closed-source platforms. Some traditional IDEs fall into the same category, but many of the latter (like Netbeans and Eclipse) are open source, which reduces lock-in risks for developers.
- Limited control: In general, cloud IDEs offer fewer options for customization and extension than local IDEs.
- Network dependency: Cloud IDEs work well only if the network is reliable. Although network connectivity issues are rare for most developers today, some may prefer local IDEs, which will keep working reliably even if the Internet connection becomes flaky. (Some cloud IDEs support offline work, which can be useful in situations with limited connectivity.)
- Cost: Most cloud IDEs cost money to use, especially for large-scale development projects. Local IDEs are often free, even for professional development teams.
- Inertia: It can take years for a developer to learn all the ins and outs of an IDE. Developers who are already well versed in using a local IDE may be wary of the learning curve that comes with a cloud IDE.
Who Should Use Cloud IDEs?
Should you stick with your local IDE? Or should you join the minority of software engineers who take advantage of cloud IDEs?
For many developers, the answer boils down to the type of app they are developing, and how they develop and deploy it.
The language in which the app is written may be a factor. While popular programming languages are supported in virtually all IDEs, cloud IDEs are less likely to support more obscure languages.
Cloud IDEs are also less useful in situations where an application is deployed on-premises. In that case, the fact that your code is born in the cloud doesn’t really provide any benefits because you still have to move it to an on-premises environment to deploy it. On the other hand, if you are deploying to the cloud, the ability to write code in the same cloud can simplify and speed deployment. And, even if you write code in one cloud but deploy it in another cloud, the deployment process is likely to be faster because network connectivity between clouds is usually better than connections between a local device and the cloud.
The CI/CD pipeline with which you’re working is a factor to consider, as well. If your entire CI/CD pipeline is based in the cloud, using a cloud IDE may be advantageous because doing so also eliminates the need to move code between local devices and the cloud.
Finally, consider how large and distributed your team is. The more developers you have working on a project, and the more spread out they are, the greater the benefit of being able to centralize development in a cloud-based environment that the entire team can access.
Getting Started with Cloud IDEs
If you decide a cloud IDE is right for you, it’s easy to get started. A variety of cloud IDEs are available, such as Codenvy, Codeanywhere and Eclipse CHE (a cloud-based variant of the open source Eclipse IDE).
You can create a new project in most cloud IDEs in minutes right from your Web browser. Typically, no installation of any sort is necessary, although you may have to install a browser plug-in in some cases.