Organizations are constantly looking at ways that they can creatively leverage cloud computing and subsequently reduce their operating costs, which is why Tyler Jewell, CEO of Codenvy, had our full attention when he shared his vision of the future of coding in the cloud. "We believe that in five years, there will be no viable reason for developers to develop on a desktop ever again." If you initially scoff at that idea, you're not alone. On the face of it, there seems to be no way that developing in the cloud could ever be as fast, interactive or enjoyable as developing on your local hardware. The simple physics of the equation mean latency will always be higher if you are working on a remote platform.
According to Tyler, latency issues aren't as big of a barrier as you might suppose. He boasts that certain workflows can actually perform better in the cloud by taking advantage of cloud resources for things like continuous compilation, incremental compiles, and even thorny parallel compilation problems. However, what developers really need to consider is the bigger picture of what's slowing the entire development process down – and what could speed it up.
Simple latency is only one of many factors that determine the overall speed of development. We have to think like Al Pacino holding forth as football coach Tony D'Amato in Any Given Sunday, "The inches we need are everywhere around us!" In the same way, the seconds and minutes we need to have a fast, seamless and enjoyable development experience are everywhere around us. It's just a matter of knowing where to look.
What does it take to replace the desktop?
Codenvy decided to zoom out and take a broad view of everything they were aiming to replace. It's not just an IDE on a desktop. The build and test systems are also part of the larger workspace the developer uses locally. In a traditional desktop environment, all three of these elements have to be integrated together. Then, the IDE also has to be configured to work with the rest of the developer's tools and systems such as a compilation server, code management repository, etc. With all these resources running on the desktop, there can be quite a bit of competition for compute and memory, leading to problems such as thrashing.
The combination of configuration labor and performance issues from limited resources can cause substantial delays in completing a development project. Developers may enjoy the following benefits by switching to the cloud:
- The boot times for the environment are lightning fast
- There is no software to download
- You don't run into pesky IDE configuration programs causing errors and failures
- You have easy or instantaneous access to additional compute and memory resources as needed
According to Jewell, "We see ourselves as taking the developer's logical workspace (which is the IDE, builder, and tester), and decoupling that from dependency on the physical environment." In the cloud, any of these three elements can be independently scaled out or back as needed.
The cloud sets you free to code anywhere
It's not just the desktop that might go by the wayside in the future. You might even ditch your laptop. Jewell says one of the most commonly requested features among developers who use the Codenvy platform is support for their mobile device. Many are already using their tablet or other mobile device to "code on the go". Being able to code during a commute or away from the office means more convenience and more time saved for developers. With the limited compute and memory resources on the average mobile device, there's no way this could ever happen on any meaningful scale without a cloud development environment.
Cloud based development supports real collaboration
Individual developers can enjoy time savings in the cloud, but the real benefits become apparent when you start talking about collaboration. With a system like Codenvy, there are several models that can make teaming easy – either as part of an open source project or in a closed environment behind a firewall.
Read Only: Other developers can browse through the code and offer suggestions or insights
Invite: Other developers have the authority to make changes in real time
Factory: The current version is forked and replicated so one or more other developers get their own copy and can work on it while preserving the original version as-is
These options could be used in all kinds of ways:
- Getting feedback from a large community of programmers
- Facilitating paired programming
- Providing classroom learning
- Running a conference
- Doing code reviews
Big business needs to appreciate the big picture
Greater accessibility via the cloud is more than just a convenience for developers. Enterprises that employ offshore developers could see even bigger gains in productivity since workers in other countries no longer have to use a painfully slow VPN for access to coding projects. Another boon for employers is the ability to have complete monitoring, recording and auditing capability for every action involving their proprietary code. It doesn't just get checked out on a desktop and end up knows where. Rather than being a weak link in the chain, a cloud development environment could profoundly improve security. That's another bold statement we'd like to get your opinion on, so let us at TheServerSide know about any insights you have on the topic.