The researchers of Computer Science havedeveloped two new tools to help computer programmers select from amongthousands of options within the application programming interfaces(APIs) that are used to write applications in Java, today's mostpopular programming language.The tools � Jadeite and Apatite �take advantage of human-centered design techniques to significantlyreduce the time and guesswork associated with finding the right classesand methods of APIs.APIs are standardized methods that a Javaprogram uses to ask the computer's operating system or another programto do something, such as opening a file or sending an email. ChoosingAPIs for accomplishing a given task is at the heart of Javaprogramming, but is not intuitive. With more than 35,000 methods listedin 4,100 classes in the current Javadoc library of APIs � and morebeing added in every new version � not even the savviest developer canhope to be familiar with them all.This is a fundamental problemfor all programmers, whether they are novices, professionals or thegrowing number of end-users who just need to modify a Web page. It'spossible to design APIs so that they are easier to use, but that stillleaves thousands of existing APIs that are hard to use but essentialfor Java programming. Jadeite and Apatite help programmers find whatthey need among those existing APIs.Jadeite (Java Documentationwith Extra Information Tacked-on for Emphasis) improves usability byenhancing the existing Javadoc documentation. For instance, Jadeitedisplays the names of API classes in font sizes that correspond withhow heavily used they are based on Google searches, helping programmersnavigate past little-used classes. The commonly used "PrintWriter" isin large, prominent letters, while the lesser used "PrintEvent" is insmaller type.Jadeite also uses crowd-sourcing to compensate forthe fact that an API sometimes doesn't include methods that programmersexpect. For instance, the Message and MimeMessage classes don't includea method for sending an email message. So Jadeite allows users to putso-called placeholders for these expected classes and methods withinthe alphabetical listing of APIs. Users can edit the placeholder toguide programmers to the actual location of the desired method, explainwhy a desired method is not part of the API, or note that a desiredfunctionality is impossible.User studies showed that programmers couldperform common tasks about three times faster with Jadeite than withthe standard Javadoc documentation.Apatite (Associative Perusalof APIs That Identifies Targets Easily) takes a different approach,allowing programmers to browse APIs by association, seeing whichpackages, classes and methods tend to go with each other. It also usesstatistics about the popularity of each item to provide weighted viewsof the most relevant items, listing them in larger fonts.BothJadeite and Apatite remain research tools, Myers said, but areavailable for public use. Broader use of the tools will enhance thecrowd-sourcing aspects of the tools, while giving the researchersimportant feedback about how the tools can be improved.
|