IDE Changing as Fast as Cloud Native
A look at how IDEs have evolved and the benefits and challenges of convergence. Will we see VS Code become all dominant?
Join the DZone community and get the full member experience.Join For Free
Much has been said about how much containerization has changed how we deliver and operate the software. But at the same time, the tools such as IDEs have changed just as much. We’ve gone from heavyweight, thick client tools running on our desktops with all the possible features we might need to be incorporated into the IDE to a very lightweight core. Everything is a plug-in, and increasingly the browser is the delivery platform for it.
We have also seen a trend of IDEs becoming free, if not open source, and you may be surprised to read that Oracle has been at the forefront of this in the Java space. You have to look at the contributions to Netbeans as an Apache project. JDeveloper has been free, and Oracle has made plugins freely available for Eclipse for a very long time. This tradition continues with the code for the latest VS Code plugins being freely available (Oracle Samples — GitHub repository).
While these products have provided plugin frameworks, as these products had a lot of the features for a language like Java built-in, the contributor community hasn’t been so broad. After all, the IDE out of the box contains a lot of tooling, and if you’re not working with the IDEs language, then you’ve got a significant footprint overhead that you won’t really utilize. Despite this, the more prominent software vendor-built plugins for the likes of Eclipse and Netbeans. For example, Oracle’s extensions to support work with PL/SQL, SOA Suite, and SonarSource have adapted their code quality tool for almost every IDE possible (more on this can be found here).
They only provide the basics; plugging in everything else isn’t new. We can look at Emacs as an example of such an approach. But the modern approach has taken off with the likes of Sublime, Electron, and Eclipse Theia, which uses many of the same foundations as VS Code, such as the core Monaco editor (for more about the differences, check out this article). One of the most important details here is that Theia and VS Code can work with the same plugins (details here).
This lighter nature and need for plugins to make the IDE more than just a fancy text editor. As there is no initial Language bias that came with earlier generations of IDE has meant the pool of potential users and plugin contributors is enormous. The one outlier to this trend has been JetBrains with IntelliJ IDEA and their other language variants. But here, the IDE has been packaged with the tooling for one language and variants of the base platform for different languages.
Power of Plugins
Supporting plugins and the core tool being made freely available has been core to the success of VS Code beyond the basic editor usability. As a result, a community of both independent developers and commercial vendors has developed a wealth of plugins. This is both a positive and a negative, as with all community-driven things, there are capability overlaps and varying quality as some solutions may not be more than beta solutions, and others lack sufficient support to sustain and maintain them.
While download and star ratings can be indicative of quality and sustainability, this does make new arrivals into the marketplace harder to get established. Fortunately, if you’re working with a particular vendor, you can find their plugins grouped together in the Marketplace using the /publisher/<name>, for example, (and Oracle Labs). Some of the open-source communities, such as Apache, and MicroProfile Community, are identified as publishers. However, Linux Foundation and subsidiary groups like CNCF don’t appear to have their tools published collectively.
Plugins From Cloud Vendors
One newer trend with IDEs is to have plugins to make it increasingly easier not only to develop but also to ease the deployment into clouds such as Azure, GCP, and OCI. This means we can remain working within the IDE without having to drop out to command line tools or web interfaces, removing that context switching that can be annoying, particularly when working with limited screen estate or is' that have a greater emphasis on single app contexts. This can sometimes also include process simplification by combining several steps, such as generating the right packaging at the same time as pushing code.
While Microsoft has made VS Code freely available, it is still subject to Microsoft licensing; data gathering on its use goes to Microsoft as well as configuration and branding. VS Codium is, fortunately, the same as VS Code, but without those metrics, Microsoft license details, etc. There is a community that has taken to ensure the same source is packaged, deployable, and available through Brew, Chocolatey, Snap, and other package managers. You can, of course, build the binaries yourself.
Not being bound to Microsoft’s implementation is great for those who are wary of what data may be collected or simply the solution being for a competitor, but it creates a new issue — specifically, the risk of divergence in the way things may be done. Most crucially, the plugins as this is the lifeblood of these types of IDEs.
The Eclipse foundation has recognized this, and as is key to supporting Theia as an IDE intended to be a foundation that is extended on which people can build their own IDEs (examples of this include Red Hat OpenShift Dev Spaces). This is achieved by their Open VSX Registry, which provides a repository of plugins that are able to work across multiple IDEs, including VS Code and VS Codium, and any extension of Theia.
Oracle, like all major developer tool providers, has gravitated to supporting VS Code but is also working to ensure that its development of plugins is compliant and visible on the Open VSX Registry. Releases will typically be published into the VS Code marketplace, as this enables the biggest single community. But verification and registration for VSX should follow quickly afterward.
OCI Cloud Shell Editor
It is also a reasonable expectation that these plugins will also appear in the OCI Cloud Shell Editor at some point in the future. Making the development processes even easier in cloud environments. We can this trend
When it comes to IDEs, VS Code and related solutions (such as Theia, VS Codium, etc.) are here, established, and with Github Codespaces and similar cloud vendor provider IDE solutions (such as Oracle’s Cloud Console Editor), they’re going to be around for a while for a good while.
I think we’ll see the trend for cloud service plugins like those illustrated. What we’ve not yet observed is whether we’ll see services common to multiple cloud vendors, such as Kubernetes, OpenSearch, etc., coalesce around a common code base with differences down to naming conventions and authentication frameworks becoming pluggable.
As to whether VS Code will become all dominant? Well, as we've discussed, VS Code has a strong open-source background, and there is standardization that aligns with this. It is going to be influential — the convenience and name recognition will combine with the pluggability characteristics will dominate. The adoption of common foundations into cloud Hosting solutions is also going to help keep it well positioned. But we do have some options in the form of VS Codium if you're concerned about undue influence.
Opinions expressed by DZone contributors are their own.