Researchers at Carnegie Mellon University's School of Computer Science have developed two new tools to help make Java programming easier and faster for developers.
Researchers at Carnegie Mellon
of Computer Science have developed
two new tools to help make Java programming easier and faster for developers.
The two tools, Jadeite and Apatite, enable Java developers to select from
among thousands of options within Java APIs. CMU officials said the tools
leverage human-centered design techniques to help reduce the time and guesswork
associated with finding the right classes and methods of APIs.
Brad Myers, professor of human-computer interaction at the university, said
selecting the right APIs for accomplishing a given task is at the heart of Java
programming, but is not intuitive. And with more than 35,000 methods listed in
4,100 classes in the current Javadoc library of APIs, it is no easy task for
developers to find the right ones.
"This is a fundamental problem for all programmers, whether they are
novices, professionals or the growing number of end users who just need to
modify a Web page," Myers said in a statement. "It's possible to design APIs so
that they are easier to use, but that still leaves thousands of existing APIs
that are hard to use but essential for Java programming. Jadeite and Apatite
help programmers find what they need among those existing APIs."
Jadeite, which gets its name as an acronym for "Java Documentation with
Extra Information Tacked-on for Emphasis," improves usability by enhancing
the existing Javadoc documentation. For instance, Jadeite displays the names of
API classes in font sizes that correspond
with how heavily used they are based on Google searches, helping programmers
navigate past little-used classes. The commonly used "PrintWriter" is in large,
prominent letters, while the lesser used "PrintEvent" is in smaller type.
Jadeite also uses crowd-sourcing to compensate for the fact that an API
sometimes doesn't include methods that programmers expect, CMU officials said.
For instance, the Message and MimeMessage classes don't include a method for
sending an e-mail message. So Jadeite allows users to put so-called
placeholders for these expected classes and methods within the alphabetical
listing of APIs. Users can edit the placeholder to guide programmers to the
actual location of the desired method, explain why a desired method is not part
of the API, or note that a desired
functionality is impossible.
Finding the way to create certain types of objects, such as SSL
sockets that enable secure Internet communications, may not be obvious to
programmers the first time they encounter these objects. In these cases, Jadeite
includes examples of the most popular code used by programmers to create these
objects, allowing the user to learn from the examples. And user studies
showed that programmers could perform common tasks about three times faster
with Jadeite than with the standard Javadoc documentation, CMU officials said.
Apatite, which is essentially an acronym for "Associative Perusal of
APIs That Identifies Targets Easily," takes a different approach, allowing
programmers to browse APIs by association, seeing which packages, classes and
methods tend to go with each other, CMU officials said. It also uses statistics
about the popularity of each item to provide weighted views of the most
relevant items, listing them in larger fonts.
Both Jadeite and Apatite remain research tools, Myers said, but are
available for public use. Broader use of the tools will enhance the
crowd-sourcing aspects of the tools, while giving the researchers important
feedback about how the tools can be improved.
Research by Jeffrey Stylos, who was awarded a Ph.D. in computer science in
the spring of 2009, underlies both Jadeite and Apatite. Besides Myers, research
programmer Andrew Faulring and undergraduate computer science student Zizhuang
Yang contributed to the development of Jadeite, and computer science
undergraduate Daniel S. Eisenberg led the implementation of Apatite.
Eisenberg's work on Apatite earned first place in the Yahoo! Undergraduate
Research Awards competition at Carnegie Mellon, university officials said.
Jadeite and Apatite are part of the Natural Programming Project
initiative within Carnegie Mellon's Human-Computer Interaction Institute that
is investigating how to make programming easier. Both tools have been funded by
grants from the National Science Foundation and enterprise software giant SAP