Web-based development tools promise to dramatically improve the software development lifecycle by better matching the development environment with existing enterprise software. However, service-oriented architecture solutions architects face challenges in getting front-line developers to adopt reduced performance and features compared with desktop-based tools. At the EclipseCon conference, tool makers were looking at how to bridge this gap.
"My personal vision is that you wake up and realize you haven't used a desktop IDE for a week," said, Mike Milinkovich, executive director of the Eclipse Foundation. The Eclipse integrated development environment (IDE) has grown to become the dominant Java development platform for enterprise applications, thanks in large part to support from leading technology companies like IBM and an organized development community. The Eclipse Orion and Flux projects hope to bring this same acceptance to Web-based development tools.
The ideas that set Eclipse IDE in motion were forged when Microsoft was the dominant development tool that favored Microsoft's proprietary back-end databases and servers. When IBM wanted to move into this territory, they made huge bets on open source alternatives based on Java, Apache and Linux. IBM investments made a huge difference to the trajectory of open source, Milinkovich argued.
At the time, the marketplace for Java development tools was highly fragmented. IBM's goal was to have a single common tooling platform for Java that would rival Microsoft in size, scale and efficiency of tools. The initiative gained significant ground when IBM was able to get other leading enterprise software companies on-board with the launch of the Eclipse Foundation for harmonizing their efforts in 2004. By 2006, about 70% of Java developers were using Eclipse-based IDEs.
Today the average developer is using two to three IDEs on their desktop, with the most common scenario being Eclipse and Visual Studio. In the near future, at least one of these IDEs is likely to be cloud-based. The cloud is a trend that is tremendously important and will change the face of development, Milinkovich noted. One study by Evans Research Associates predicted 67% of software developers will be using cloud-based development tools by 2019.
But no one is sure what cloud-based developer tools should look like, Milinkovich said. The Orion Project has come a tremendous way in addressing some of the early challenges, but this work is still immature compared to Eclipse. Much work remains on supporting compiled languages like Java for features like syntax coloring, working offline and performance. The Eclipse Flux project, sponsored by IBM and Pivotal, could help to address many of these gaps.
As enterprises move towards cloud-based applications, there is a need for development environments that are more tightly coupled with them. John Arthorne, senior software developer at IBM's Rational Software Group, said there are not great tools for developing cloud-based applications today. There is a huge disconnect between the code written on desktop-based IDEs and the cloud platforms the code needs to run on.
"You either have to emulate the cloud platform on the desktop, or write the code and blindly throw it over the wall," Arthorne said. The challenge is how to get to the point where we can have tools that fit the cloud platform, and, at the same time, leverage tools on the desktop. He believes Flux is a great way to do this.
Why developers hate Web-based IDEs
The folks working on better tools for developing directly in the cloud have done considerable research on some of the current limitations of cloud-based tools. "It is really about the passion for the tools you have," said Ken Walker, co-lead and Web IDE Lead for IBM's Orion Project. There is also apprehension about what a cloud-based IDE can provide.
Walker pointed out that many developers continue to use text-based editing tools for writing code, such as Sublime Text, Vim, Emacs and even Notepad. Developers like the speed of these simple tools, and many are reluctant to leave behind the key bindings that come with them. New development tools are going to have to be as fast as these and support their existing workflows to be accepted.
IDEs such as Eclipse, NetBeans and IntelliJ can provide greater sophistication and incorporate tools for improving code quality, such as performance analysis, code analysis and refactoring support. While hundreds of people are contributing code for cloud-based IDEs like Orion, the tools are only 2 to 3 years old, so they still don't have the same level and depth of experience baked in for supporting these features.
But progress is evolving with cloud-based IDEs like Codenvy, Visual Studio and IBM JazzHub. For example, JazzHub includes Orion technology for Java source code management and content assist for Node.js development. The Orion project is looking at adding important new features for collaborative development, as well.
The Orion project is also working with the Flux project to better support compiled Java and C code. The goal is to leverage the Eclipse plug-ins and tools, which would help to leverage those.
"Developers will not move to cloud-based IDEs unless we can provide the features and performance they need," Walker said. "Web IDEs are kind of like drugs. Everyone wants to try them, but they are not sure how they will make them feel."