Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News

SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
JaGUI Guidelines
JaGUI Guidelines

The ability to author a program or applet on one computer system and have it run on many different platforms is a paramount strength of Java and its suitability for the Internet. This strength, however, introduces weaknesses in some areas of the implementation that limit Java's usability.

One such weakness that is quickly coming to the forefront is the Java Graphical User Interface or JaGUI (pronounced "jah-gooey" which sounds about the way it looks). The cross-platform ability of Java is detrimental to its usability and consistency. Because applets will be run on various platforms with different user interfaces, screen sizes, and resolutions, Java only allows you to vaguely place GUI components in the window with the Abstract Windowing Toolkit (AWT). AWT basically pulls everything to the lowest common denominator to insure compatibility, and effectively brings the computer industry back to 1984 with its implementation of the user interface. The whole implementation was written by a company using UNIX and Solaris, neither of which is breaking ground in graphical user interfaces.

The JaGUI can be done well in some cases, but it is often left up to the programmer as well as sheer luck. I have seen some terrible Java programs that require a secret decoder ring to decipher and which look like someone played pin-the-component-on-the-window while drunk. Users deserve a clean, sensible interface and will not settle for less. This especially rings true as more and more people are coming online without programming background or the patience to learn a new interface for every Java applet.

Macintosh users will suffer the most when they come online and try Java for the first time. Mac users have enjoyed the best user interface for more than ten years and it has become an ingrained part of how we use our computer. The standardized interface, which includes such advances as drag-and-drop, a single menu bar, WYSIWYG, and a consistent metaphor, has made the Macintosh easier to use, more productive, and generally the best system available for most work. This great interface ends where Java begins and many users will turn away from Java before trying to figure out the strewn buttons and components.

The solution is simple. Apple should create a set of JaGUI classes that replicates the best features of Macintosh the interface inside Java. A powerful set of libraries could give developers the tools they need to create stunning and intuitive Java programs. I am not talking about porting the MacOS to Java but rather implementing some of the MacOS's best features and ideas in a set of general class libraries that work on every machine. Windows and UNIX have been slowly adopting and copying many of the elements, so the classes would simply build on existing behavior. A clean, advanced user interface could bring Java out of its infancy, and Apple could help Sun do it.

Until this happens, developers must take it upon themselves to create a clean interface for their users. Here are some useful considerations:
1. Consistency - Keep the interface similar throughout the program. If the "OK" button is on the right in one window, it should be on the right in subsequent windows. This lets the user accumulate knowledge about the program over time and will allow that user to become "comfortable" sooner. An attempt should also be made to mimic the behavior of the operating system to help users feel at home.
2. Short cuts - Create command-key shortcuts for common functions. Also, make default behaviors for dialogs. If the window makes a change, the default button should be "Cancel" instead of "OK".
3. Menus - Provide menus with items that do not change. Options can be disabled but it is useful for the user to see the options anyway. A user may not find commands if you add them during the course of the program.
4. Feedback - If the user completes an action or if the program is busy, the user should be told by a progress bar or status area. The user should never be confused over whether something has been completed.
5. Component choice - Choose the GUI component that suits the purpose. Do not use radio buttons if you have many choices because they create clutter. Try using a pop up menu instead.
6. Placement - Place the components in specific aligned places with the same border. Do not place components too close together because they will become hard to read and use. Do not place them too far apart because you will be wasting space. If no Java layout pattern works, try writing your own.
7. Forgiveness - Allow the user to undo anything in the program to encourage exploration and reduce frustration. If an action is unable to undo itself, make sure to tell the user and offer the option of cancelling before completing the action.
8. Sounds and Animation - Use sounds and animations sparingly. Not only do they require more download time, they often can become annoying. Use alert sounds only when an error has occurred which requires the user's immediate attention.
9. Audience - Consider the people who are going to use your program and design it accordingly. Watch people use the program and note where they had difficulty or success in completing tasks.
10. Test, test, test - Test the program on every type of machine since there are some major differences between computer platforms. Resolve any differences in the program without reverting to special code.

Java programmers also owe it to themselves and their users to buy a copy of "Macintosh Human Interface Guidelines" (ISBN 0-201-62216-5). The book describes how people interact with computers and what they expect in various situations. It gives examples of good interfaces and can be helpful for any operating system or computer language. Many companies design their software around the advice given and treat it as the bible of the software industry.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest Cloud Developer Stories
Swisscom, the Swiss telecom, is going into the cloud business. Its subsidiary Swisscom IT Services AG has signed up with Red Hat as a Certified Cloud Provider and launched a public cloud Infrastructure-as-a-Service (IaaS) cloud targeting enterprise-class customers primarily in ...
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP)....
In a surprise move on Tuesday, January 10, Oracle wheeled out its Big Data Appliance. That’s the one it said in October would be ready sometime in the first half. Only nobody believed it meant early in the first half. Heck, it’s not even clear anybody thought Oracle could make ...
Rackspace Hosting, the service leader in cloud computing, on Thursday announced its acquisition of SharePoint911, an industry leader in SharePoint consulting, training, and "JumpStart" services within SharePoint. The unification of both companies provides capabilities to deliver ...
CloudLinux, Inc., on Thursday released CafeFS 3, a virtualized file system for shared hosters that cages each customer within its own virtualized file system. CageFS becomes part of CloudLinux OS at no additional charge. CloudLinux OS, the only commercially-supported Linux OS m...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers
ADS BY GOOGLE

Breaking Cloud Computing News
United Data Technologies (UDT), has developed a unique set of social media specific solutions that w...