Evolution of the cloud-based IDE
Developers spend a lot of time with their editors/IDEs, and develop strong allegiances to them. They are more than just another app; they are integral to bringing visions to reality. Despite their importance to developers, or perhaps because of their significance, the fundamental architecture of popular IDEs has stayed the same.
In this post, we will look at early attempts to move software development to the cloud and examine why they weren't successful. From there, we will identify lessons learned from these projects and what it takes to successfully enable development in the cloud.
A brief timeline of IDE evolution: From local configuration to cloud-based collaboration
For the last 30 years, writing software has typically been done locally. IDEs are built to be installed and configured on individual machines.
Recently, there have been efforts to bring the IDE into the cloud, where development tools and resources are hosted remotely and accessible through the web browser. These new IDEs promised zero environment configuration, scalable computing, and native collaboration — all features that, on the surface, should be highly desirable.
Despite delivering on their promises, none of the cloud-based IDEs were able to displace the local IDE as the preferred environment for most developers. A recent JetBrains study found that only 10% of professional developers used cloud-based editors or IDEs regularly.
Major roadblocks for cloud-based IDE adoption
What’s stopping people from adopting cloud IDEs? Here’s what we’ve learned so far from our own efforts building one.
Inertia: The problem with building an IDE from scratch
While the benefits of cloud development are clear, creating a great IDE is difficult. The IDE does many things very well, each thing seamlessly integrated into the other to create an experience of sustained flow. It takes a team of skilled engineers many, many years to build something like IntelliJ or VS Code.
Cloud9 & Codeanywhere
Two of the most popular cloud IDE attempts were Cloud9 and Codeanywhere. Both attempted to rewrite the IDE, implementing features like autocomplete, tabbing, and debugging from scratch.
A simple google search about either will show that users considered both to be for “lightweight” development. The developer experience simply didn’t match that of a traditional IDE. They attracted small levels of usage from new developers and those working on small projects.
Adapting to the cloud-based form
If we take a look at the SaaS model, we realize most SaaS applications do a few things very well, solving a very specific problem for customers. IDEs, on the other hand, are less of an “app” and are more comparable to an operating system for writing code. Almost any kind of experience can be built on top of an IDE.
At Coder, we recognized the mistake of creating a web-based IDE from scratch. Instead, we set out to evolve an existing IDE to this cloud form. Our thinking was that we could piggyback on the existing inertia and focus our development efforts on just the client/server connection. The result was the Coder Cloud IDE, launched in October of 2018. It offered a fully-featured VS Code experience running in the cloud, on our servers, for free.
We saw a great deal of casual usage, but like our predecessors, no one was using the IDE in a full time professional setting. In January of 2019, we came to the conclusion that control was the missing link for success in this space.
Control: Giving developers authority over their IDE environment
Most professional developers regularly access services and resources hosted in their organization's cloud or on-premises. Running their IDE in our cloud simply made that more difficult. What if the development environment could be installed on their own infrastructure?
Giving developers control to run environments on their own cloud made it possible to apply their cloud credits and access internal resources at incredible speeds! Developers could provision their environments to be any size with granular control over the CPU cores, RAM, memory, storage, and even GPUs!
Open-sourcing the cloud-IDE experience
Having learned this, we released code-server, our open source cloud IDE experience.
Code-server allows developers to install VS Code on any machine and access it remotely through the browser. Millions of developers use code-server for cloud development on everything from Raspberry Pis to automated Kubernetes clusters that provision new environments for every developer on a team.
And people loved it! Today, code-server has tens of thousands of GitHub stars. It has become the standard for full-time, professional cloud IDE developers.
Looking Forward: Cloud-Based IDEs with Coder
Now, we’re taking these lessons and applying them as we build Coder, a platform that makes cloud development practical and feasible for software teams. As a company founded by developers, we are building the platform with a control-first approach, ensuring developers can continue to use their preferred tooling, consistent with our philosophy that the future of cloud development is editor neutral.
If you would like to learn more about how Coder empowers cloud-based development, schedule a demo.