Science Current Events | Science News |

Carnegie Mellon develops Java programming tools employing human-centered design techniques

June 18, 2009

PITTSBURGH-Researchers at Carnegie Mellon University's School of Computer Science have developed two new tools to help computer programmers select from among thousands of options within the application programming interfaces (APIs) that are used to write applications in Java, today's most popular programming language.

The tools - Jadeite ( and Apatite ( - take advantage of human-centered design techniques to significantly reduce the time and guesswork associated with finding the right classes and methods of APIs.

APIs are standardized methods that a Java program uses to ask the computer's operating system or another program to do something, such as opening a file or sending an email. Choosing APIs for accomplishing a given task is at the heart of Java programming, but is not intuitive, said Brad A. Myers, professor of human-computer interaction. With more than 35,000 methods listed in 4,100 classes in the current Javadoc library of APIs - and more being added in every new version - not even the savviest developer can hope to be familiar with them all.

"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. "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 (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. For instance, the Message and MimeMessage classes don't include a method for sending an email 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.

User studies showed that programmers could perform common tasks about three times faster with Jadeite than with the standard Javadoc documentation.

Apatite (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. 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 this spring, 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 this spring.

Carnegie Mellon University

Related Java Programming Current Events and Java Programming News Articles

Copied from nature: Detecting software errors via genetic algorithms
According to a current study from the University of Cambridge, software developers are spending about the half of their time on detecting errors and resolving them.

UC San Diego Computer Scientists Develop First-person Player Video Game that Teaches How to Program in Java
Computer scientists at the University of California, San Diego, have developed an immersive, first-person player video game designed to teach students in elementary to high school how to program in Java, one of the most common programming languages in use today.

Code green: Energy-efficient programming to curb computers' power use
Soaring energy consumption by ever more powerful computers, data centers and mobile devices has many experts looking to reduce the energy use of these devices. Most projects so far focus on more efficient cooling systems or energy-saving power modes.

Software helps military aircraft techncians centralize maintenance
Aircraft technicians these days are as likely to use a laptop as a printed manual and logbook, and to turn to the Internet for the latest job-status reports and technical information.

Academics find that the finger of destiny points their way
Male scientist are good at research because they have the hormone levels of women and long index fingers, a new study says.

Media arts on the Internet
For those who work with digital media, or provide instruction on its use, offers a comprehensive archive - particularly in media arts. The platform has been enhanced with new sections devoted to media arts research and education as well as research tools. --- View the rooms of the Kremlin as they looked 500 years ago. Visit synagogues demolished during the Third Reich. Bring the ruins of antique cities back to life. All of this is possible - at least virtually. These three forays into past cultural heritage are projects that exemplify the link between the arts and research. And all three can be explored in the new media arts research section of This com

A turbo compressor for mobile surfers
Despite faster Internet connections, many users still resentfully associate the three letters www with "world wide wait". This is also due to the fact that files are constantly increasing in size. When using wireless terminals with low-resolution displays, such as palmtops or PDAs, it is not in fact necessary to transfer all elements of a Web page, designed for display on large, high-resolution monitors. Although mobile service providers offer solutions to this problem, access is then limited to preselected sites, in the same way as the WAP service.
More Java Programming Current Events and Java Programming News Articles

Java: A Beginner's Guide, Sixth Edition

Java: A Beginner's Guide, Sixth Edition
by Herbert Schildt (Author)

Essential Java Programming Skills--Made Easy! Fully updated for Java Platform, Standard Edition 8 (Java SE 8), Java: A Beginner's Guide, Sixth Edition gets you started programming in Java right away. Bestselling programming author Herb Schildt begins with the basics, such as how to create, compile, and run a Java program. He then moves on to the keywords, syntax, and constructs that form the core of the Java language. This Oracle Press resource also covers some of Java's more advanced features, including multithreaded programming, generics, and Swing. Of course, new Java SE 8 features such as lambda expressions and default interface methods are described. An introduction to JavaFX, Java's newest GUI, concludes this step-by-step tutorial. Designed for Easy Learning: Key Skills &...

Java Programming: Your Step by Step Guide to Easily Learn Java in 7 Days

Java Programming: Your Step by Step Guide to Easily Learn Java in 7 Days
by iCode Academy (Author)

Are You Ready To Learn Java Easily? Java is actually a decent programming language developed at Sun Microsystems. It was originally used for Internet applications or applets. Those applets are embedded on web pages and run in the browser. Java uses a special format known as byte code instead of an ordinary machine code. Java is not limited to Internet applications. It is technically a complete general object-oriented programming language which can be used to develop all sorts of applications. The syntax of Java is very much similar to the syntax of C++ but removes its error-prone features and complications. Throughout the eBook, we will discuss the basics of how Java programs are compiled, simple expressions and declarations, classes, objects, and statements, until you are able...

Head First Java, 2nd Edition

Head First Java, 2nd Edition
by Kathy Sierra (Author), Bert Bates (Author)

Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study.

The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in...

Java: The Fundamentals Of Java Programming: A Complete Beginners Guide To Java Programming Mastery

Java: The Fundamentals Of Java Programming: A Complete Beginners Guide To Java Programming Mastery
by Paul Jones (Author)

Master Java Programming Today Fast And Easily!!
This book contains proven steps and strategies on how to create programs using the Java programming language. It contains details about the programming language that every beginner should be aware of. Through this book, you should be able to learn how to create programs for various purposes.This book also contains useful information regarding the features you can find in Java as well as why Java is a good programming language to use. You will also find sample programs that you can use as guidelines when writing your own programs and creating applications.Here is a preview of what this book will offer:
What Is Java?How to Install Java and Set Up the Java EnvironmentUnderstand the Language StructureWhat Is a Java Variable and How Can We...

Beginning Programming with Java For Dummies

Beginning Programming with Java For Dummies
by Barry A. Burd (Author)

A practical introduction to programming with Java Beginning Programming with Java For Dummies, 4th Edition is a comprehensive guide to learning one of the most popular programming languages worldwide. This book covers basic development concepts and techniques through a Java lens. You'll learn what goes into a program, how to put the pieces together, how to deal with challenges, and how to make it work. The new Fourth Edition has been updated to align with Java 8, and includes new options for the latest tools and techniques. Java is the predominant language used to program Android and cloud apps, and its popularity is surging as app demand rises. Whether you're just tooling around, or embarking on a career, Beginning Programming with Java For Dummies, 4th Edition is a great place to...

Java: The Complete Reference, Ninth Edition

Java: The Complete Reference, Ninth Edition
by Herbert Schildt (Author)

The Definitive Java Programming Guide Fully updated for Java SE 8, Java: The Complete Reference, Ninth Edition explains how to develop, compile, debug, and run Java programs. Bestselling programming author Herb Schildt covers the entire Java language, including its syntax, keywords, and fundamental programming principles, as well as significant portions of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. New Java SE 8 features such as lambda expressions, the stream library, and the default interface method are discussed in detail. This Oracle Press resource also offers a solid introduction to JavaFX. Coverage includes: Data types, variables, arrays, and operators Control statements Classes, objects, and...

Learn Java in One Day and Learn It Well (Learn Coding Fast) (Volume 4)

Learn Java in One Day and Learn It Well (Learn Coding Fast) (Volume 4)
by Jamie Chan (Author)

New Book by Best-Selling Author Jamie Chan. Learn Java Programming Fast with a unique Hands-On Project. Book 4 of the Learn Coding Fast Series.

Have you always wanted to learn computer programming but are afraid it'll be too difficult for you? Or perhaps you know other programming languages but are interested in learning the Java language fast? This book is for you. You no longer have to waste your time and money trying to learn Java from boring books that are 600 pages long, expensive online courses or complicated Java tutorials that just leave you more confused and frustrated. What this book offers...

Java for Beginners Complex concepts are broken down into simple steps to ensure that you can easily master the Java language even if you have never coded...

Java Programming: Master's Handbook:  A TRUE Beginner's Guide! Problem Solving, Code, Data Science,  Data Structures & Algorithms (Code like a PRO in ... web design, tech, perl, ajax, swift, python)

Java Programming: Master's Handbook: A TRUE Beginner's Guide! Problem Solving, Code, Data Science, Data Structures & Algorithms (Code like a PRO in ... web design, tech, perl, ajax, swift, python)
by Codewell Academy (Author), R.M.Z. Trigo (Author)

Code Java like a TRUE EXPERT! “ Great book for learning Java. This book backs up concepts introduced with clear and logical examples.“ - Allen B, from “The beauty of this book is that you can study these foundations at your own pace, always at just the right speed.“ - Denis Chen, from “ I would recommend it to all aspiring Java programmers! “ - Jason Smith, from Would you like to be a GREAT Java programmer? Would you enjoy a high-paying & in-demand career in Java programming? Crafted by some of the best minds who have studied in some of the world’s top universities, You’re among one of the best learning programs out there. But are you paying THOUSANDS of dollars just to learn how to code well? NO! Hundreds? Not even...

Core Java Volume I--Fundamentals (10th Edition) (Core Series)

Core Java Volume I--Fundamentals (10th Edition) (Core Series)
by Cay S. Horstmann (Author)

Core Java® has long been recognized as the leading, no-nonsense tutorial and reference for experienced programmers who want to write robust Java code for real-world applications. Now, Core Java®, Volume I—Fundamentals, Tenth Edition, has been extensively updated to reflect the most eagerly awaited and innovative version of Java in years: Java SE 8. Rewritten and reorganized to illuminate new Java SE 8 features, idioms, and best practices, it contains hundreds of example programs—all carefully crafted for easy understanding and practical applicability.   Writing for serious programmers solving real-world problems, Cay Horstmann helps you achieve a deep understanding of the Java language and library. In this first volume of the two-volume work, Horstmann focuses on fundamental...

Java: 2 Books in 1: Beginner's Guide + Best Practices to Programming Code with Java (Java, JavaScript, Python, Code, Programming Language, Programming, Computer Programming) (Volume 2)

Java: 2 Books in 1: Beginner's Guide + Best Practices to Programming Code with Java (Java, JavaScript, Python, Code, Programming Language, Programming, Computer Programming) (Volume 2)
by Charlie Masterson (Author)

Java: 2 Books In 1! For a limited time only, get to own this Amazon top seller for just $23.00! Regularly priced at $30.76. Download this Java Computer Programming Bundle that contains:
Book 1 - Java: Beginner's Guide to Programming Code with Java

Book 2 - Java: Best Practices to Programming Code with Java
Learn Java programming today and begin your path towards Java programming mastery! Save time and money by learning the basic essentials of Java AND how to write better and more efficient Java code - all in 1 book!

Book 1 - Java: Beginner's Guide to Programming Code with Java

In this Definitive Java Guide, you’re about to discover how to...
How to program code in Java through learning the core essentials that every Java programmer...

© 2017