PDF version of this report
You must have Adobe Acrobat reader to view, save, or print PDF files. The reader
is available for free
download.
ARCHIVED REPORT:
Java Development Tools
Market Trends
Copyright 2015, Faulkner Information Services. All Rights Reserved.
Docid: 00018395
Publication Date: 1507
Report Type: MARKET
Preview
Developing for Java is as mainstream today as developing in any commercial
language, and the tools available for developers reflect that reality. Java
integrated development environments (IDEs)
offer all of the niceties of those provided for traditional languages such as
debuggers, visual aids, and build tools with one significant difference: Many
full-featured Java IDEs are free. This report looks at some of the available
tools and examines the market environment that led to their creation.
Report Contents:
- Executive Summary
- Market Dynamics
- Market Leaders
- Market Trends
- Strategic Planning Implications
- Web Links
Executive Summary
[return to top of this report]
Java developers today need to master a host of technologies quickly.
Not only do they need to understand the object-oriented Java language, but
they need to understand a vast number of core APIs that deal with windowing, 2D
and 3D graphics, XML processing, Web-based programming, and database interfaces.
While many programmers make do with a compiler and some documentation, Java
programmers need extra support from their tools to cope with the added
complexities of modern software development. Features like integrated API
documentation, integrated debugging, and integrated XML editing may have been
optional in the past, but today they are required parts of a Java programmer’s
toolbox. This is especially true in today’s frenetic software development
environment, where robust applications need to be developed quickly.
Many Java IDEs also offer tools to simplify configuration management and
source code control. Modern server-side Java applications are complex to
implement because code needs to be packaged correctly to be deployed on
application servers. These deployment configurations usually contain
complicated XML descriptor files that can take a developer hours to create and
debug. IDE tools simplify this task by automatically creating the
configuration files based on project settings and basic information supplied by
the developer. Most IDEs have CVS source control built in.
While it is possible to develop Java applications without a rich,
full-featured IDE, using a Java IDE certainly simplifies and speeds up software
development, and with many free or low-cost options, there is no reason to
struggle without a tool. IDEs are designed to have features that remove the task
switching overhead required in software development and offer a streamlined
software development process as a result.
Java IDEs also offer new and innovative features that make
software development even easier and automate more of the development process.
While IDEs used to focus on providing an environment to create code quickly,
modern Java IDEs offer support for more advanced features that
focus on the ongoing maintenance and management of software as it is being
developed.
Five major players dominate the Java IDE market. They are Eclipse, IBM,
Oracle (through its acquisition of Sun),
JetBrains, and Genuitec MyEclipse. Eclipse is an open-source, royalty-free
technology that is managed by a not-for-profit consortium, while
Oracle has several
offerings available, and IBM has Rational Application Developer for Websphere
Software, as well as its new cloud service, Bluemix. JetBrains provides a
developer-focused product, and MyEclipse, which is downloadable for a small
annual fee, is a product that has been built on the Eclipse open-source
platform. Each of these alternatives is strong and flexible, with the main
differences to a purchaser lying in the cost, bundled tools, and support
available. Even Microsoft entered the game, with its
Java software development kits (SDK), Azure Toolkit for Elcipse, and Azure SDK
for Java.
Market Dynamics
[return to top of this report]
Software development organizations face the same pressures today as they have
been facing for decades, being required to deliver quality products more quickly
than before, while maximizing software reuse. This is especially true for IT
departments developing with Java, organizations that are on the front lines for
creating the software to support e-commerce initiatives while also writing and
maintaining applications for traditional enterprise systems. In this arena, the
most critical tool in the developer’s arsenal is the Java IDE.
Although Java began as an idealized environment for developing write-once,
run-anywhere client applications, the technology has been most successful with
server-side application development. Programmers who are creating server-side
applications need to use a wide number of technologies to develop their
applications. Database access is standardized through the core JDBC API.
Business rules can be encapsulated in standalone components called
“Enterprise Java Beans.” Web-based applications can produce an HTML
interface through a variety of means, including Java Servlets and Java Server
Pages. Large, scalable applications can be built through the JEE (formerly known
as J2EE) extensions. XML processing can be performed using the JAXP API, part of
Project GlassFish. Plus, standards like Web Services are constantly emerging and
changing the software development landscape.
A developer could keep all of the information needed to develop a large Java
application in his head, or he could keep an entire bookshelf of reference
materials next to his computer. Both of those solutions may have sufficed in the
past, but standards and APIs are created and updated too quickly today. Keeping
track of all of the programming-related information needed to develop an
application is best left to a tool – the Java IDE.
Java IDEs offer many integrated features for Java developers. The simplest
and most important feature is a source code editor that performs real-time
syntax checking. This reduces a large number of common errors by highlighting
them as soon as they come up, not 10 or more minutes later. Two other critical
features provided by IDEs include integrated debugging and integrated source
code control. These features help keep developers focused on coding and reduce
time taken for common but ancillary activities.
Java packages are typically accompanied with HTML documentation generated
through the Javadoc utility. Programmers are most effective when they can reuse
existing code, and integrating Javadoc reference material into the same
environment used for writing code reduces the amount of time programmers must
spend referring to documentation.
Java IDEs also offer other important features which allow programmers to
focus on the task of solving a problem, rather than switching between coding and
other tasks. Because databases are used so heavily with Java applications, many
Java IDEs offer integrated database access to both inspect and manipulate a
database without using old-style command line tools or wasting time writing
utility programs. Also, the process of building a product may require a number
of discrete steps. As a result, IDEs now offer some type of integrated software
build capability, typically using the Ant build tool written in Java to handle
the kinds of tasks needed to build a Java product.
In the early days of the Java market, a whole host of vendors wrote and sold
Java IDEs. Many of these tools were idealistic “100% Java” projects
that aimed to realize all of the promises Java had to offer. Many of these early
projects never stabilized and were plagued with bugs, performance problems, and
shipped with significantly reduced feature sets.
Since then, Java products have stabilized, as has
the Java IDE market, due in large part to the success of an open-source, royalty-free platform
called Eclipse. Eclipse has experienced wide adoption, which seems to
have impacted some traditional vendors while not at all affecting others; there
are still dozens of lightweight IDEs available
Another product, MyEclipse, is an inexpensive subscription-based IDE that has
been built on the Eclipse platform. Competing with Eclipse, IBM, and
Oracle is
JetBrains IntelliJ IDEA, which positions itself as an elite productivity tool
for developers, although it has also released a free community edition.
NetBeans, a free, open source IDE that runs on
any operating system that supports Java, including Windows, Mac OS X, Linux and
Solaris, offers support for not only Java, but C/C++, XML, PHP, Javascript and Ajax,
HTML5, and Groovy. Other languages are supported by plug-ins contributed by the
community. It
includes a GUI builder and a visual mobile environment to assist in development
for phones, PDAs and set-top boxes.
JCreator Pro contains a compiler, build tool, interpreter, applet viewer,
debugger, project manager, fully customizable user interface, and XML validator, and allows developers to easily attach external
functions and utilities. It costs $79; a Lite version, at $35, omits the
debugger and other advanced features.
Oracle’s JDeveloper is a free IDE for building Java SOA ana Java EE apps and
user interfaces. Oracle offers pre-built developer appliances in virtual
machines for VirtualBox.
Stylus Studio is designed for a special purpose: to accelerate development of
XML-enabled Java.
Market Leaders
[return to top of this report]
Five products lead the current crop of Java IDEs:
Eclipse, MyEclipse, IBM Rational Application Developer for WebSphere,
Jetbrains and NetBeans.
Eclipse
Eclipse is a platform-independent framework for delivering rich-client
applications that was originally developed as a consortium led by IBM to succeed
its VisualAge tools. In 2004, the consortium was reorganized into a
not-for-profit organization independent of IBM that makes the technology and
source code available royalty-free through the Eclipse Public License.
The framework is used to develop IDEs that give developers the ability to use
multiple languages, platforms, and vendors, increasing the ease of platform
reuse. Eclipse comes with a powerful plug-in architecture that enables plug-ins
to reload dynamically. Eclipse ran on Linux, HP-UX, AIX,
Solaris, QNX, Mac OS X, and Windows systems up to the Helios version; It now supports Windows, Mac OS and Linux only. The current version,
4.5 (known as Mars), was
released in June 2015 and adds support for Docker containers, and enhanced IDE,
integration with Gadle, and tools for building cross-platform mobile apps with
Apache Cordova. Although version 4 has a different model for handling
plug-ins than version 3, it includes a compatibility layer to allow existing
plug-ins to continue to function. Version 3.x is now in maintenance mode.
By the virtue of its power and royalty-free use, Eclipse is impacting the
Java development tools market significantly. The success of other open-source
technologies, such as Linux and Apache, has created an acceptance of
open-source platforms among enterprise businesses. This acceptance, combined
with the need for simpler integration to support the increasing adoption of
complex technologies by businesses, is creating a hothouse environment for
Eclipse.
The not-for-profit Eclipse consortium is earning a reputation for reliability
by releasing updates on a regular annual schedule with maintenance releases in
between.
The main challenge to using Eclipse is managing the vast number of plug-ins
that it supports. As a technology, the greatest challenge that faces Eclipse is
growing and innovating while remaining stable; with the ability for all developers
to write plug-ins, the potential for chaos exists. The greatest business
challenge that faces Eclipse is that vendors need to find a way to make a profit from
it.
MyEclipse
MyEclipse Enterprise Workbench is a downloadable, subscription-based IDE
developed in 2003 by a company called Genuitec that has been built on the
Eclipse platform. It is available for a base price of $31.75 per year (including a
six percent processing and handling fee) for the standard version, and currently
the company claims to have more than a quarter-million subscribers. Free trials
are available from the product Website.
Competing with the IBM Rational Software toolkit,
Oracle tools and JetBrains IntelliJ IDEA, MyEclipse is
a considerably less expensive development environment with a unique sales
channel. The company offers memberships for $31.75
per year for its standard version, $63.55
per year for a more fully-featured Pro version, $158.95 for the
enterprise-strength Blue edition, the Spring edition at $149.95, and $249.95 (all-inclusive) for the loaded Bling
edition. Standard, Pro and Spring run on Windows, Mac OS and Linux, while Blue
and Bling only support Windows and Linux. MyEclipse members have access to the
Enterprise Workbench, feature releases and updates, free online support and
tutorials. For the price, MyEclipse is by far the least expensive of any option
Its closest competition in the price arena being Jetbrains, which charges a
traditional one-time payment of $499 for a current major version commercial license
($699 for a commercial license including a one year upgrade subscription), and $199
for a personal license.
IBM charges significantly more for its products.
MyEclipse features rich-client development and
Java EE, database, RAD, UML, POJO, XML, REST, Struts, AJAX
development, HTML5 support, as well as tools directed
at development for mobile devices. The current version includes cloud
development tools, Maven support, and enhanced mobile development
tools.
The company has
claimed
that 45 percent of the developers who download MyEclipse for the 30 day free
trial buy a membership in the first
25 days, and 90 percent in the first 250 days.
IBM Rational Application Developer for WebSphere Software
The Rational AD extends Eclipse with visual construction development that
helps Java developers rapidly develop, assemble, test, profile and deploy their
applications. It streamlines application testing with built-in Java and
JavaScript debuggers and test units for WebSphere and Apache Tomcat. Other
vendor plug-ins are also available. When developing applications to be delivered
through WebSphere, the IBM Rational AD provides an on-ramp to the WebSphere
Studio environment for building dynamic Web sites, Web services, and Java
applications. The IDE includes JavaServer Faces and Struts components, which
eliminate much routine, hand-coding required for event handling, server-side
validation, and data binding for Web applications. It supports the building of
Web services with support for UDDI, SOAP, WSDL, WSIL, and WS-I Basic
Profile-compliant interoperability between services and has simplified
integration of RESTful web services. Also included is the Visual
Editor for Java and an Abstract Window Toolkit (AWT) and Swing
components as well as Web 2.0 development features for Ajax and
Java EE 7 with JPA and EJB 3.0 support.
The product also increases productivity by streamlining application testing
with built-in Java and JavaScript debuggers and test units for WebSphere and
Apache Tomcat. Other vendor plug-ins are also available. WebSphere
application server or WebSphere portal server can be installed as a test
environment within the tool allowing developers to run desktop versions of the
software for testing.
IBM uses Eclipse as the framework for the suite, which raises the question of
the benefits of using IBM Rational AD over Eclipse’s open-source, royalty-free
technology. The answer is that IBM’s product is available in several bundled
versions that include enterprise-level project-management tools, numerous visual
editors, Web services support, and management tools for Web infrastructure, and
that IBM has support available that Eclipse cannot offer. The company offers a
60 day free trial.
NetBeans
NetBeans is designed for developers working on
enterprise software based on the Java Enterprise Edition (JEE)
platform. It features integrated modeling with UML, code-ware developer
collaboration, and an Enterprise Application
Profiler. It includes the Swing GUI builder (formerly Project Matisse)
and Web APIs. These features aid end-to-end application modeling, design and
development. Application testing and profiling are also enabled. The current
version includes support for developing rich web apps, HTML5, a WebKit
browser and integration with Chrome; it also adds JSE embedded device support
(eg: Raspberry PI), JME 8 support, and Javadocs as tooltips..
The product is bundled with the Java Enterprise
System runtime environment for seamless development, testing, and deployment of
Web services, and supports wireless application development. NetBeans 8 can be downloaded for free,
along with the required JDK.
Jetbrains IntelliJ IDEA
Czech-based software company Jetbrains offers a low-cost IDE that supports
more than 350 open-source projects. The company has a plug-in
repository with currently offering over 500 plug-ins for IntelliJ IDEA and is offering an open team-management system for
developers called Jetbrains TeamCity. IntelliJ IDEA and TeamCity can run
independently or used as an integrated package.
IntelliJ IDEA supports Enterprise Java Beans
(EJB) and Persistent Units, Enhanced Java Enterprise Edition, and the
Google Web Toolkit Studio, Ruby and Ruby on Rails plug-ins. Support for
application servers Oracle (formerly BEA) Weblogic and IBM WebSphere is
included, as is a GUI designer that supports Swing and other layout managers;
the newest addition is an Android UI designer.
IDE Talk is a feature that lets developers collaborate through text messaging,
exceptions, code pointers, and other methods, all within the IDE. Enhanced
testing and code analysis tools are also features of IntelliJ IDEA, as is
multi-language refactoring, an action to package Adobe AIR applications and HTML 5 support. An Eclipse integration component
allows import, export and synchronization of IDEA projects with
Eclipse projects, letting each member of a team of developers work
with the tools he or she prefers.
A free community edition for Java and Groovy contains a
subset of the commercial product’s functionality, including its Google Android
SDK support.
While TeamCity integrates
with IntelliJ IDEA, it is platform independent and can work with almost any
IDE. TeamCity uses JUnit and TestNG testing
frameworks to integrate and remotely test code changes. A delayed commit feature
controls versions, and build management features allow the running of multiple
builds simultaneously. A Web-based project dashboard is another feature of
TeamCity, along with a server health information screen and disk usage
reporting.
Jetbrains positions
IntelliJ and TeamCity as elite productivity tools for programmers, as opposed to
the position of IBM and Sun, which focus on the enterprise management angle in
order to target large businesses. However, it is going after the same customer
base as IBM and Sun, only it is targeting technical staff as sales decision
makers rather than financial or business analysis experts as the decision
makers. Therefore, Jetbrains faces competition not only from the large companies
but from small companies as well. Jetbrains’ strategic differentiator is
technical innovation, a strategy that is currently succeeding.
Market Trends
[return to top of this report]
For most developers, a basic Java IDE, such as open-source Eclipse, will be
sufficient.
For developers who are creating Web-based applications, either SOAP-based Web
services, Enterprise Java Beans (EJB), or integrating with a Java Application
Server, the more advanced offerings from Oracle or IBM may be desirable. Here,
NetBeans are necessary to obtain IDE feature support for developing these types
of applications. The high-end of NetBeans is designed for enterprise developers
that may be dealing with any of a number of commercial software development
tools. IBM Rational Application Developer for WebSphere Software offers the
tightest integration with the WebSphere application server, and IBM’s new
Bluemix is designed for cloud-based devops environments. Of course, Eclipse offers many of the same features today, and
is improving over time.
It is clear that Java IDEs have been commoditized. With the many open-source
products being offered for free, it is hard for many developers to justify
paying the price to purchase the IDEs, for which costs can be substantial.
A relatively new open source community, Ja.NET, is even building tools for Java
development for the .NET platform, providing another option for the
Windows developer. It even provides examples of using class libraries written in
Java in programs written in languages such as C#. The
complexity of the particular development environment will provide the answer as
to whether all the extras added to the high-end products are worth the price.
It is clear that even enterprise grade Java IDEs
have
become commoditized. Nevertheless, Eclipse supports many of the same features as
the commercial products, yet is both free and open-source.
It is unlikely that one of these technologies
will dominate all others. Oracle and IBM continue to hold substantial shares of
the Java IDE market, despite the growing popularity of Eclipse, MyEclipse, and
IntelliJ. The most probable result will be that enterprises will either use
mostly Eclipse mixed with commercial products, or mostly commercial products
mixed with Eclipse. The choices made by individual organizations will depend on
the investments they have already made in the various tools, the skills of their
key developers, and their specific long-term IT strategies. Companies using
Microsoft Azure, for example, will likely
opt for the Microsoft toolset.
Strategic Planning Implications
[return to top of this report]
While the choice of an IDE can be a personal and important choice for a
developer, it is essential that an organization standardize the development
toolset in the enterprise. This will ensure that all developers will have
access to the same tools, and code can be managed and easily used by other
members of a team without having to reconfigure the code project for another
tool. It also makes the toolset more easily supportable should there be issues.
When choosing a tool, the greatest differentiator is the number and quality
of features a technology can deliver for its cost, and in that respect its very
hard to beat Eclipse, as it is free and supports almost everything a developer
would want to do, either through built-in tools or add-on plug-ins to handle
specific tasks. Eclipse has a devoted user base and new features are
constantly added to it. While Eclipse may provide the required feature set, some
organizations prefer to have dedicated support for the tool they buy. In
this case, commercial tools can be good choices; the specific tool selected will
depend on the feature set required, and often also on key developers’
preferences.
Web Links
[return to top of this report]
- Eclipse: http://www.eclipse.org/
- Genuitec: http://www.genuitec.com/
- IBM: http://www.ibm.com/developerworks/java/
- Ja.NET: http://sourceforge.net/projects/janetdev/
- JCreator: http://www.jcreator.com/
- Jetbrains: http://www.jetbrains.com/
- Microsoft Azure SDK for Java: http://msdn.microsoft.com/library/azure/hh690943.aspx
- MyEclipse: http://www.myeclipseide.com/
- NetBeans: http://www.netbeans.org/
- Oracle: http://www.oracle.com/technetwork/java/index.html
- Stylus Studio: http://www.stylusstudio.com/
About the Author
[return to top of this report]
Lynn Greiner is Vice President, Technical
Services for a division of a multi-national corporation, and an
award-winning computer industry journalist. Ms. Greiner is a regular
contributor to Faulkner Information Services and a member of the
Advisory Panel.
[return to top of this report]