As advances have been made in the practice of software development, it should come as no surprise that the tools we use to actually develop said software have evolved drastically as well. While everything from language improvements to testing advancements have been seen in recent years, one of the less "sexy," yet most important changes has been to the integrated development environments — more commonly known as IDEs — that developers rely on to actually write their code.
Now, don't get me wrong. Some of the most popular IDEs on the market today have been around for literally decades (I'm looking at you, VI), but even the forefathers of our modern-day code editors have received recent updates that more appropriately reflect the current state of software development.
With this in mind, let’s take a look at some of the exciting changes that have impacted IDEs in the past few years.
Integrated Development Environments
It's no secret that the world is becoming more connected. As companies and developers alike have embraced the cloud, entirely new industries have been built. A great example of this is cloud-based version control services like GitHub, GitLab, and Bitbucket. Hosting your own source code repository is no longer a requirement for the majority of projects, which has led to more effective project management and collaboration through the additional features offered by these newer cloud-based services. Because of this shift in responsibilities, many IDEs have implemented features that integrate directly with these — and more — services, allowing for an increase in focus and a reduction in context switching when interacting with things like pull/merge requests, issue tickets, and even communication platforms.
To Pair (Or Not to Pair)
A side benefit of having such hyper-connected development environments is the enablement of remote teams. Organizations that have embraced the concept of pair programming no longer have to expect employees to be in the same room in order to work together. Many IDEs now offer functionality that allow multiple developers to work on the same set of code from entirely separate computers. While there are obvious benefits to this feature to be gained from within the same room, providing an avenue for remote teams to better collaborate is an excellent way to not only encourage remote work, but to embrace it.
While a number of IDEs offer support for remote pair programming, a great example in practice is Visual Studio Live Share. Live Share is a great remote collaboration tool within the Visual Studio IDE; however, it takes collaboration a step further by offering additional features like audio calls, group debugging, and even shared servers for privately viewing web applications and databases without exposing them to the Internet.
Not every IDE lives on one single computer. To better facilitate consistency between development environments, several newer IDEs live entirely in the cloud. While the learning curve here can be a bit steep at first (every developer has a preferred IDE and different settings requirements), the primary advantage to cloud-based IDEs is a drastic reduction in resource requirements. When your development environment lives in the cloud, your working machine requires significantly fewer resources, which can in turn mean significant cost-savings for development machines.
While Cloud9 paved the way for cloud-based IDEs, an impressive contender with a free tier and self-hosted option is Codenvy. Recently acquired by Red Hat, Codenvy is a Docker-driven IDE built with developers in mind. A particularly useful feature of Codenvy is their cross-platform IDE support, allowing developers to use the tools that they are most comfortable with while syncing changes back to Codenvy for any additional work needed in the cloud.
Plug It In
While plugins and add-ons are hardly new, their rate of adoption by the open source community over the past several years has skyrocketed. Companies have started to create official plugins to improve the usability of their developer-focused services, while individual contributors can create much more tightly integrated environments with the services they choose to use. This allows for thinner, more performant IDEs that can be expanded to include only the functionality required by the end-user, rather than the historically robust IDEs that require significantly more resources to run.
Between Visual Studio Code and Atom alone — two of the most popular IDEs for web developers — the marketplace for IDE plugins is vast. With countless themes and color schemes, third-party integrations, and support for just about every programming language ever invented, plugins are an excellent way for developers to customize every inch of their IDE to create their perfect working environment.
Continuous Improvement and Your IDE
All of the above highlight how IDEs have become even better tools for developers in recent years. By way of parting, though, I’d like to emphasize that there remains even more that could be done — and will be. Don’t expect your IDE to stop evolving. Going forward, I suspect we’ll see features like more advanced predictive text suggestions or deeper integrations with external services in IDEs as the tools help developers write code even faster, more accurately and with less fuss.