Grafvision - Fotolia
Java developers in need of a cloud-based IDE have dozens of options available, each with characteristics to meet specific demands. That plethora makes choosing the right one a difficult process, so let's explore some Java cloud IDE options, with special attention to cost and deployment flexibility.
When to use a Java cloud IDE
IDEs, or integrated development environments, are tools that help developers write and test code. Traditionally, IDEs were installed and run locally on programmers' workstations. But over the past couple of years, IDEs that run in the cloud with a SaaS delivery model have become increasingly popular.
Generally speaking, cloud-based IDEs offer a number of benefits, regardless of the programming language you work with. Advantages of cloud IDEs include faster setup, greater scalability and the ability to seamlessly deploy code to the same cloud environment where the IDE is hosted.
However, Java developers will see different types of benefits from cloud-based IDEs depending on the applications they build. Java-based server and mobile application developers can use Java cloud IDEs to make it easier to test and deploy code within the same type of cloud-based infrastructure that is likely to host your application in production.
In contrast, if you work on a Java application that end users will install and run on local PCs, a Java cloud IDE that helps write the code might not make as much sense. You can still do it, but you'll need to move your code to a local environment to build and test under the same configuration that will be used after it's deployed.
Compare these four Java cloud IDEs
If you do decide to use a Java cloud IDE, here are four options that will work well for most Java developers -- in no particular order.
Eclipse Che. Many Java developers are already familiar with standard Eclipse, a Java-based local IDE that has long ranked as one of the most popular options with developers.
Che is the Eclipse Foundation's cloud-based alternative to standard Eclipse. As such, Che is similar to the standard offering, although it is by no means a mirror image.
Che offers a number of attractive features and characteristics for Java developers:
- It is open source and free if you host it on your own infrastructure.
- It can be deployed on almost any type of host infrastructure -- in a public or private cloud or on local on-premises servers.
- It supports a range of modern programming languages and frameworks, including but not limited to Java.
Codenvy. While Che is a free offering from the Eclipse Foundation, the main contributor to the project, Codenvy, also provides a Java cloud IDE that developers should consider. Essentially, Codenvy sells hosted instances of Che that feature professional support.
Thus, if you want to use Eclipse Che but don't want to set it up on your own infrastructure or have to rely on community-based support when something goes wrong, Codenvy is the IDE for you.
Since its acquisition by Amazon in 2016, Cloud9 is now tightly integrated with the rest of the AWS ecosystem. The original, stand-alone Cloud9 service is being phased out, and Cloud9 is not an ideal choice if you want to write Java applications that will be deployed elsewhere, although it can be used to do that.
AWS Cloud9 is free, but developers need to pay to use other AWS resources -- such as Simple Storage Service storage and Elastic Compute Cloud virtual machines -- that they consume while using Cloud9.
Codeanywhere. Like Cloud9, Codeanywhere is one of the original cloud IDEs. It is a flexible, widely used cloud-based IDE for Java and more than 75 other programming languages and frameworks.
Two major drawbacks with Codeanywhere are that it costs money to use for most real-world purposes -- there is a free trial, but with limited features -- and there isn't an option to host it on your own infrastructure.
Other cloud-based IDEs for Java
Many of the other offerings, however, are both younger and not as fully developed. Some are designed for specific types of Java application development or deployment needs, such as simple application testing, mobile app development or Java-based web app hosting.