Slashdot Mirror


Java Look and Feel Design Guidelines

New reviewer Jayakrishnan Nair has brought with him a review of Addison-Welsey/Sun's Java Look and Feel Design Guidelines. There's a lot of work being done in Java right now - make sure that it looks correct. The book covers everything from basic controls, keyboard navigation, tables, toolbars, treeviews to the JFC and effective ways to use the JFC components. Java Look and Feel Design Guidelines author Sun Microsystems, Inc. pages 230 publisher Addison Wesley, 06/1999 rating 9/10 reviewer Jayakrishnan Nair (jayakrishnan@netscape.net) ISBN 0201615851 summary This book is a must for people involved in creating userinterfaces for Java applications and applets using the Java Foundation Classes. The guidelines presented in this book will allow for the design of applications with consistent appearance and behavior. With a large number of non-technical users using computers regularly in their lives, ease of use and consistent look and feel have become very important in the design of an application. Products designed without concern for the overall experience of the user will become extinct. A badly designed application sticks out like a sore thumb, whereas an application that is pretty and powerful creates loyal users. Adhering to standards creates applications that look familiar to a new user.

Java Look and Feel Design Guidelines is a very practical book meant for the UI Designer as well as people involved in the design process. The large number of examples is supplemented with about 170 screen shots. Java Look and Feel guidelines for consistent appearance, cross-platform delivery guidelines, internationalization guidelines and implementation tips are mentioned in the appropriate sections and are marked by special icons. A list of books and Web sites on related topics like human interface design, accessibility, internationalization, etc., are given.

Java Look and Feel Design Guidelines is divided into three parts--Overview, Fundamental Java Application Design and The Components of the Java Foundation Classes. This book uses the word "application" to refer to both Java standalone applications and applets.

The Overview part gives a quick visual tour of the Java Look and Feel. The Java Foundation Classes are introduced and the major JFC User Interface Components are visually presented with cross-references to the pages where they are described in detail.

Internationalization allows for the development of applications that are independent of the countries or the language of the users. Such applications allow for the easy customization of the software for a particular region, thus creating a global market. The application may also have to interact with assistive technologies like screen readers, speech recognition systems and Braille terminals. The second part of the book Java Look and Feel Design Guidelines begins by giving guidelines on these two topics.

Given an empty panel, how do you start placing components on it? How much spacing do you need between a label and a textfield? The answers to these questions are given by guiding you through a step-by-step example where a simple dialog box is created using design grids. Colors, Fonts, text and layout of the elements are what create the mood of the applications. The chapter on Visual Design explains how to use these to increase the user confidence and comfort with your application.

The application that is designed for one platform may eventually run on other platforms and display systems with different capabilities. The chapter on Application Graphics gives guidelines in designing icons and buttons and using cross platform color so that the quality of graphics is not affected. Effective use of splash screens, login screens and about boxes to enhance the corporate identity is also discussed.

Part III: The Components of the Java Foundation Classes takes a look at each component of the JFC in detail. This will be the section that will be the most used in the book. Each component behavior is explained and tips regarding implementation and look and feel are given. The Appendix gives the keyboard operations available for JFC components for navigation.

An HTML version of the complete book is available at http://java.sun.com/products/jlf/dg/index.htm for those of you who like to browse the book before buying. The book does not provide code samples for any of the examples shown. Since the book is very specific one about JFC, such examples provided in the appendix or the Web site would have provided a starting point for programmers. Maybe this will come in the later editions.

Other platforms have their own books setting the guidelines. The timely publication of this well structured book has provided Java developers with an unparalleled resource for reference with its comprehensive set of guidelines. This book along with The JFC Swing Tutorial is a must on every developer's physical desktop.

Purchase this book at fatbrain.

98 comments

  1. L&F Guidelines good by Masem · · Score: 3
    One of the things that I appriciate from Apple was that they insisted (not forced, but strongly urged) you to follow the Human Interface Guidelines when developing apps; what ordering for menus, where to put certain buttons, etc. Given how the Mac interface needs to be built (basically using ResEdit or it's kin to precise position elements), this helped a lot. Of course, they appear to be deviating drastically from that with the Quicktime player and other aspects of MacOSX as previously discussed...

    With Java, as you lose (or will generally not use) the precise positioning, and allow layout managers to take over to place elements, you're still left with a lot of questions -- I know that when I was trying to design a Java interface recently that I noticed no key trends here. Because of the WORA aspect of Java, much of the GUI interface for programs inherited from whatever OS it was developed on (various WinXX-isms, or motif-isms for example). Having a guide such as this will help make Java apps look and feel the same across platforms, which can be very good, but for some reason, it's somewhat bothersome that the java app might not be consistant with the native apps on the computer.

    A good example is how dialogs are done - WinXX tend to have the OK to the leftmost, MacOS to the rightmost. There's a few other similar examples.

    What might be the next necessary step in the next java release (jdk 1.3) is to add another platform dependant part to the system so that when there are differences in the platform for placement of visual elements, the sandbox can set them up to act more like the native system.

    --
    "Pinky, you've left the lens cap of your mind on again." - P&TB
    "I can see my house from here!" - ST:
    1. Re:L&F Guidelines good by Anonymous Coward · · Score: 0
      BS. As an acknowledged expert in the field of marketing, I ask you this question.

      Who is the #1 software producer Apple or Microsoft ?

      Answer: Microsoft, because they know when to quit coding and start MARKETING

      Apple have seen the light recently in this regard, but as a marketing expert with an extremely technical background (NT admin, VB developer) I have to ask the question who are Sun or Apple to tell me how to write my GUI ? Do they know my target market ? Are they paying my development staff ? No they are not. So they can go to hell.

      dmg

    2. Re:L&F Guidelines good by Wylfing · · Score: 1
      Having a guide such as this will help make Java apps look and feel the same across platforms, which can be very good, but for some reason, it's somewhat bothersome that the java app might not be consistant with the native apps on the computer.

      Application consistency > platform consistency.

      Take games, for instance. The last time I played a game that used the platform's UI was...well, never. Game designers often invent their own special-purpose UIs, and as long as they are internally consistent and work, the users will quickly adapt.


      Wylfing

      "What would be the use of immortality to a person who cannot use well a half hour?"
      --
      Our intelligent designer has never created an animal that we couldn't improve by strapping a bomb to it.
    3. Re:L&F Guidelines good by Anonymous Coward · · Score: 0

      "As an acknowledged expert in the field of marketing"

      Your argument has nothing to do with marketing. I also question your competence as an "expert" in your so called field. All posts on this forum with a dmg signature thus far smacked of idiocy in my mind.

      "extremely technical background (NT admin, VB developer) "

      Is that claim a joke? You're were a sysadmin doing VB and you think you are an expert in UI design? Your entire argument is an overgeneralization stating a course of action completely disregarding situational factors which are the basis for a logical decision. You're either an idiot or trolling this forum.

    4. Re:L&F Guidelines good by Anonymous Coward · · Score: 0

      Or rather _SOME_ users quickly adapt. The majority of the computer using world aren't geeks like us. When I used to teach MS Office a few years ago, I definitely felt the impact of having the user interface made standard across all MS office applications - it was perceptably easier to teach people in one product who had used a related product. If the same principles could be applied across multiple platforms, all the better.

    5. Re:L&F Guidelines good by smcd · · Score: 1

      dmg didn't claim to be an expert in UI design, just an extremely technical background. though NT admin and VB developing isn't exactly extremely technical either.

    6. Re:L&F Guidelines good by Anonymous Coward · · Score: 0

      His argument was an implication as such. He was stating his view as word handed down by god instead of possibly flawed opinion given his limited experience.

      Also note that he is purposefully trolling this forum.

    7. Re:L&F Guidelines good by Anonymous Coward · · Score: 0
      Wow, an "NT admin" and "VB developer"? And you're not ashamed to tell people that? Wow.

      How do those two, ahem, credentials (cough) give you an "extremely technical background"? You're not even smart enough to learn Unix. *You* "can go to hell".

      Come back and talk here when you've learned a real programming language. VB is shite. Windows won't last forever and then you'll die because you can't code for anything else. My dog could write an app with VB. And he's stupid *for a dog!* So you bragging about your VB skillz ain't doin' much for people's opinion of you here. Hey, I guess that's why you're posting AC?

      "Who is Sun to tell you how to write a GUI" with Java? Sun made Java, you fucking fruitcake. They can tell you anything they want about it and you'll have to like it, bitch.

      "Who is Apple to tell you how to write a GUI?" Are you kidding me? Look, Apple is the *king* of GUIs. Even people that hate Macs admit that they are. Hell, it's all they ever cared about. The hardware is shit and the marketing is shit and the support is shit, but those bastards love their GUIs.

      And they aren't *telling* you anything! It's a book! Don't buy it! And don't follow the ideas in it. All it is, is suggestions for coders of a language which doesn't have a lot of general app support yet. Sun has more experience with it than you do, so they're very well credentialed to tell you good ways to have a consistent look and feel. General users want consistency, and this book tells you how to do that with Java.

      What would you care anyway? You "code" in VB! (If you can even call it that. It's not coding, it's "visual"! We'll call it "clicking through preformatted dialogs") You couldn't write "Hello, world!" in Java to save your life. Maybe, just maybe, you could with Microsoft "Visual J++", but even then I'd doubt it.

      And *come one*... an "acknowledged expert in the field of marketing"??? Puh-lease!! Acknowledged by whom? Did your marketing professor give you a B+ once back in school? Wow, Mr. Acknowledged Expert. Posting as AC, yep, we know you're someone worth talking to! You're just an AC-AE muthafucka!

      Since when did marketing people know anything about computers anyway? Oops, you already said you were a dumbass with computers. Or did you say you use NT? Same difference.

      Do Sun or Apple "know your target market"? Of course not. Your target market, being both an NT loser AND a VB loser, is the Lowest Common Denominator. *YOU* are the blind leading the lame. Sun and Apple aren't interested in you, Mr. Visual Basic. Why would Sun know your target market? They don't do Windows apps (not counting the Win32 port of JDK). This book is for Java programmers, many of whom work with Solaris, a *real* OS. Sun doesn't even want to be in the same room with your "target market", asshole.

      Your job as an NT admin probably involves restarting Windows and installing service packs, right? Using the same point-and-click skills that make you such a keen VB programmer, eh buddy?

      If you want us to listen to your offtopic, arrogrant bullshit, try to tell us beforehand all of that NT and VB stuff, so we can skip your comment and get on to something intelligent.

    8. Re:L&F Guidelines good by Millennium · · Score: 2

      BS. As an acknowledged expert in the field of marketing, I ask you this question.

      Let's see some credentials. You certainly don't talk like an expert in the field of marketing, much less an acknowledged one. And you give us no evidence to believe you, and plenty not to.

      Who is the #1 software producer Apple or Microsoft ?

      On what scale, might I ask? Here, at least, you sound like a marketer. I'll give you that much.

      Answer: Microsoft, because they know when to quit coding and start MARKETING

      Which also explains why most of their software is so bad (I have to give a nod to Excel, which I'm forced to admit is respectable). However, here you also talk like a marketer.

      Apple have seen the light recently in this regard, but as a marketing expert with an extremely technical background (NT admin, VB developer)

      Again, spoken like a true marketer. NT administration hardly qualifies as "extremely" technical (technical, yes, "extremely," no). Nor does developing in VB, which even Microsoft markets as being for non-technical people.

      I have to ask the question who are Sun or Apple to tell me how to write my GUI ? Do they know my target market ?

      Um, yes, they do. Both of them, especially Apple, have spent millions of dollars researching human interface design. Who are they to tell you how to design your GUI? People who know more about GUI design than you do, that's who. You could do worse than to take the advice of experts.

      Are they paying my development staff ? No they are not.

      Directly, no, But consider: well-designed apps lead to good reviews. Good reviews lead to better sales. Better sales lead to more profit. More profit leads to better-paid developers. So, in an indirect way, they are helping to pay your development staff.

      So they can go to hell.

      So you'll have company after your boss and co-workers kill you for writing buggy apps with badly-designed interfaces? I can see why you wouldn't want to be lonely, but I don't think it'll happen.

    9. Re:L&F Guidelines good by Ed+Avis · · Score: 2

      Maybe some kind of meta-GUI is needed where you can say what buttons you want in a dialogue box, but not where to place them. The GridBagLayout type stuff is a step in this direction, but you still have to specify the positions of things, even though they are relative rather than absolute.

      Things like Glade allow you to describe your GUI in XML. It's possible that you could write a high-level description of what you want in XML, and then use a 'Windows L&F style sheet' or a 'Motif L&F style sheet' together with a set of icons to automatically produce the desired effect. Or maybe this would be better done by actual code rather than getting carried away with style sheets. It would be very cool to simply say what you want the user to input, and have the layout taken care of by platform-specific rules.

      --
      -- Ed Avis ed@membled.com
    10. Re:L&F Guidelines good by Ed+Avis · · Score: 2

      It has always annoyed me how game designers seem to think they know all there is to know about UI design, and insist on creating their own strange point-and-click interface instead of using a Windows-type GUI (or Windows itself) which everyone is familiar with. It's the modern day equivalent of having to enter your name in the high-score table using the joystick, rather than being allowed to actually type the letters on the keyboard.

      Inventing a special-purpose UI could be useful for a real-time god game, where everything has to be quickly accessible. But even in these cases the UI could often be made less bizarre and more intuitive without spoiling the game.

      --
      -- Ed Avis ed@membled.com
    11. Re:L&F Guidelines good by Anonymous Coward · · Score: 0

      YHBT. YHL. HAND. dmg

  2. Human Interface by Anonymous Coward · · Score: 0

    I've just recently gotten into programming, and this past week have been learning about using GUI's in Python on a Mac. I found the Apple Human Interface guidelines to be a lot of help. I know not everything of theirs is a holy grail to be copied, but maybe Java developers should publish a similar "standard."

  3. Welsey? by Pathetic+Coward · · Score: 1

    That's Addison-_Wesley_. Like, you know, the ST-TNG kid ...

  4. Good overview, but you need a practical guide by Eamonn+O'Synan · · Score: 2

    This book, viewed on the web link given, seems to give a nice, graphical overview of the JFC as an official 'party line'.

    But as a seasoned Swing developer, I would like to see in a book, not just the PR aspects (what's good, what looks nice, what you can achieve), but also some practical advice about overcoming the many bugs in JFC, the many workarounds you need to include in your code, the peculiar hacks that they've done with dialog boxes (especially in internal frames), the threading issues you may encounter (especially if you decide to multithread your front end), etc., etc.

    So, read this and get inspired, try it and don't be too discouraged...





    --------------------------------------

    --

    --------------------------------------
    Dere's a storm a-comin'...
    1. Re:Good overview, but you need a practical guide by Anonymous Coward · · Score: 0

      This book is not intended as a practical guide! It's simply there to indicate how what a sensible, consistent, cross-platform Java GUI should consist of... There are other resources already available such as the Swing books by Addison-Wesley and O'Reilly and the Bug Parade at the Java Developer Connection that deal with these other issues... (not to mention the bug fixes and performance improvements that are included with JDK 1.3)

    2. Re:Good overview, but you need a practical guide by Dj · · Score: 1
      It's a bit unfair to complain that a L&F spec guide doesn't cover the practical issues; it isn't meant to and there are plenty of practical Swing books popping up... I'm just flipping through Swing and it looks more like what you are after.

      BTW, the threading issue is simple; you don't! :)

      (You despatch a worker to service the display if you have any suspicion that there'll be multiple calls on the UI).

      --
      "You know you want me baby!" - Crow T Robot
    3. Re:Good overview, but you need a practical guide by Anonymous Coward · · Score: 0

      it IS possible to write good, fast, apps with swing, but you can't just throw everything together like you could with AWT.

      here's an example of a decent swing app.

  5. Gcj/libgcj/classpath/gtk/swing by Anonymous Coward · · Score: 0

    Gcj and classpath are merging, so you will see a GTK based Swing in the not so distant future.

    1. Re:Gcj/libgcj/classpath/gtk/swing by Anonymous Coward · · Score: 0

      That would not be possible..... Swing is written 100% in java. The AWT uses native gui components. Also don't forget that Swing is faster than the AWT because it doesn't have to deal with the local gui components, thus no having to deal with C/C++ code.... it's all 1 language with Swing because everything is done in Java. Of course Java runs just fine on my system. It is often hard to tell the difference between a Java app and a native App when you use the JRE 1.2.2

    2. Re:Gcj/libgcj/classpath/gtk/swing by Anonymous Coward · · Score: 0

      Wrong, the peer widgets are GTK widgets. This is the libgcj implementation of the AWT. The kaffe.org implementation uses motif; libgcj uses GTK. As you say, Swing only depends on AWT. If an implemenation has AWT support, it can run Swing. Since libgcj/gcj have AWT support soon, it'll run Swing. You can see a screenshot at classpath.org.

    3. Re:Gcj/libgcj/classpath/gtk/swing by bentwookie · · Score: 1

      I don't think that's correct. Swing was created because the AWT was such a mess. In fact, if you read the first chapter or so of Sun's big ol' swing book, they say it was implemented in something like 6 weeks! So, the AWT has nothing to do with it. All swing widgets are lightweight (read NOT AWT), except for things like JPanel...You're more than able to put AWT controls on top of swing containers, but there are issues with that (heavy weight AWT drawing on top of Swing, etc)

    4. Re:Gcj/libgcj/classpath/gtk/swing by Anonymous Coward · · Score: 0

      AWT is the foundation for Swing. And to avoid an endless yes/no discussion, just check out the Swing source code: It uses the AWT 1.1 event model, it uses the AWT to access the native GUI. "All" Swing does is that it draws its own widgets instead of using the AWT peer widgets - but it uses the AWT for drawing. Now AWT - no Swing.

  6. At least browse it by vndr · · Score: 1
    If you are writing those nice and useful Java-thingies, it is definitely worth the time to browse it through. Maybe we can finally get rid of JSetiTrackers and similar almost tolerable UI:s that are scalable (up to 1 pixel from the default) and flexible (hey, I lost that draggable panel again and there's no way to recover it).

    Unfortunaly occasional freeware coders haven't been very eager to read LNF guidelines so far and probably won't start now.

  7. Ever read the CUA guidelines from IBM? by crovira · · Score: 2

    Great! Another book stating the obvious that nobody will read.

    The problem is that nobody will read and apply anything from this book any more than they did when IBM came out with CUA guidelines manual when they created OS/2. (And that one just covered the obvious but it covered a lot of it! Even way back when before Windows 3.0)

    Most software is drek because there is no QA done. This is specially true of the UI. Most skins and themes deserve to get their authors a good thrashing behind the wood shed. Finding a gem means that you had to devastate a resource somewhere.

    No I didn't write the book, but I wrote the article(s) specially Rovira Diagrams (Computer Language Magazine, Jan 1990, V7N1) which gives some hints about how to think about how you integrate GUI into your apps and how you specify, code and document them...

    I'll be glad when I stop looking at crap and the GUI isn't just look&feel by people who think stolen milk crates is an interior decorating "style."

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
    1. Re:Ever read the CUA guidelines from IBM? by paranoic · · Score: 1
      You betcha, because most of the drek UI's are created by designers/programers who already know how to use the stuff. They don't have a clue as to how a novice/1st timer will react to their interface. If your app is aimed at the tech market fine, if it's aimed at the general public, make it so your mom can use it.

      Don't worry about originality, worry about usability.

    2. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0
      Don't worry about usability, worry about MARKETING

      How many times must I repeat myself ?

      I am getting very fed up and irritated with this forum and its constant refusal to take marketing seriously, and am beginning to think it is just a bunch of long-haired 15 year old "open source" Linux zealots.

      dmg

    3. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0

      Without a well thought out UI (depending on market segment of course), you do not have a serious product to market. It's that simple. If it's not intuitive, end users will complain or not buy your product at all.

      Your comment is also an insulting generalization.

    4. Re:Ever read the CUA guidelines from IBM? by crovira · · Score: 1

      Speaking one of the people in the office who checks out /. at least once a day and as a 46 year-old software professional with twenty five years in the field, I can definitely reassure that this is not a board for fifteen year old Linux afficionadoes.

      --
      MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
    5. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0

      Marketing isn't going to help you if you can't demo it in front of an audience and not get confused about the product yourself. Usability IS important, no matter how you spin it.

    6. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0
      And do Sun and Apple know my market segment ?

      No they don't, so they can get the hell away from my developers. And shove their guidelines where the sun don't shine.

      Anyway Windows 95 is disproves your assertion. It is not consistant. Ask any Human Factors expert. Or are you saying windows 95 is not a serious product ?

      I think we all might have been trolled. Check it out trolltalk

    7. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0
      Your product can CRASH ON LIVE TV in front of an AUDIENCE OF MILLIONS, and still go on to become one of the worlds most popular desktop operating systems

      You guys STILL DONT GET IT DO YOU ?

      Its the MARKETING

      My boss BillG understands.

      dmg

    8. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0

      It is consistent and relevant. If you were the previous poster, your claim was that we should completely ignore UI. Even if it was true, it would be a compelling argument to do otherwise than you claim.

      "And do Sun and Apple know my market segment ?"

      Stupid question. My argument was for a good intuitive UI, not a standardized one at all costs.

      "Ask any Human Factors expert"

      Deflection without actually proving anything.

      "Or are you saying windows 95 is not a serious product ?"

      No, I'm saying that the interface was well thought out and that I enjoy using it. I have not done analysis of efficiency versus first time intuitiveness considering particular markets. Of course, the market segment you are catering to is a large factor.

      "I think we all might have been trolled. Check it out trolltalk"

      Further proves your idiocy.

      "Anyway Windows 95 is disproves your assertion"

      Please elaborate. This claim is not backed up.

      "No they don't, so they can get the hell away from my developers"

      I was never arguing that standardized interface was the be all and end all. I was arguing that the previous poster (who I assume is you), was arguing that UI budget should be diverted to marketing. I am a programmer of mostly inexperienced end-users. I am a participating member of a developing team producing DVD and video editing products (among other things). Our human interfaces often sway from the windows standard and instead focus on intuitive use given the application's function. Standardization of interface is a factor in this

      (*DISCLAIMER* I am not a UI/human interface designer -- however, I do feel I am competent enough to answer these questions)

    9. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0

      Why do you get so worked up about Sun or Apple publishing design guidelines for their platforms?
      Microsoft has its own GUI design guidelines as well, and I don't see you screaming about what a horrible thing that is.

      If you don't like guidelines, don't use them. It's not like someones holding a gun against your head. If your clients are happy with your GUI designs that are inconsistent with the rest of the platforms, then good for you.

      Now shut up.


    10. Re:Ever read the CUA guidelines from IBM? by Anonymous Coward · · Score: 0

      "Your product can CRASH ON LIVE TV in front of an AUDIENCE OF MILLIONS"

      This argument is irrelevant and does nothing to prove a point except that you continually blow smoke.

      I hate to tell you, but windows brings countless features (including ease of use) that are not offered anywhere else (yet). It also has good application support and drivers for almost all x86 etc hardware. Marketing is of course a factor, but products that fulfill the requirements of the population (also see no competitors providing similar functionality) are far more important. Without this, a companies demise (at least for that product line) is inevitable.

      Before you also argue shoddiness, note that windows 2000 has improved partly because of increased competition (forseen and current).

      I still do not know why I reply to your posts. You're obviously a troll.

  8. gtk take note by Anonymous Coward · · Score: 0

    GTK boys and girls should take note of this !

    bob

  9. OT: Could anyone recommend a good beginners book? by Guppy · · Score: 1

    This is a little offtopic here, but could anyone recommend a good Java book for a beginner? I'm a biology geek with little programming experience beyond ZZT-OOP.

    I've been using O'Reilly's introductory Java book and it seems to be OK -- but it would be nice if it had a few more example programs to play around with. Some people have recommended Kris Jamsa's Java Now, any opinions here?

  10. Waste of reading time... by gadders · · Score: 1

    Client-side Java is dead. Or so Marc Andreeson said, anyway.

    Spend your time reading about servlets & JSP instead.

    Mark

    1. Re:Waste of reading time... by ry4an · · Score: 1

      Isn't he the same guy that watched his corp go down the toilet? Java in the web browser is over (thank god!), but java on the client has yet to peak.

    2. Re:Waste of reading time... by Trith · · Score: 1

      If you can't write sentences correctly, your not good at English. :)

  11. desktop space by Signal+11 · · Score: 3
    They said this book was a must on any developer's "physical desk". My "physical desk" at the moment has about 8 empty dew cans, a bag of reese's pieces, a bottle of windex and a rag (for the monitor), about 25 CDs, some floppy disks... quarter-pound of chiplets (the remains of the chips you ate - now inside the keyboard as well).. and exactly *two* pieces of paper.

    Now, do you think I'm gonna be able to find space for this book in THAT?! Even the top of my monitor has stuff on it (ah, tux, looking beautiful as always)....

    1. Re:desktop space by Foogle · · Score: 1
      I don't want to suggest anything that might be uncomfortable to you, but you might - just maybe - consider cleaning your desk off. Couldn't hurt ;)

      -----------

      "You can't shake the Devil's hand and say you're only kidding."

    2. Re:desktop space by Anonymous Coward · · Score: 0

      Hey -- FUCK YOU!

  12. Re:Obviously this book is a waste of time. by The+Wookie · · Score: 1

    >In short forget about coding standards, design >reviews and all that other ivory-tower nonsense, >fire anyone suggesting such time-wasting >strategies, and with the money you have saved, >hire yourself some qualified marketing experts >and watch the $$$s start rolling in.

    And people wonder why there are so many crap products out there that crash when you look at them wrong. You gotta love the marketroid attitude. "Don't spend any time making a good product. Just spend money trying to convince people that they want crap."

    >As usual my "open source" marketing advice is >free.

    And worth every penny.

  13. The book is also available on the web by d3l1r1um · · Score: 3

    Sun also has the whole book available on the web, along with updates and errata. Just follow the appropriate links from http://java.sun.com/products/jlf/guidelines.html.

  14. Standards by atvspid · · Score: 1

    Standards for User Interfaces are great for toilet bowls. If you want to create things that look just like everyone elses creation, then go into toilet bowl manufacturing.

    --
    @vSpid Like, Whatever
    1. Re:Standards by Anonymous Coward · · Score: 0

      Oh yeah - coding standards force everyone to write the same code, speaking in English forces everyone to say the same thing and using TCP/IP to send exactly the same stuff onto the Internet. Your statement is just as meaningless, vacuous and ill considered as all of these. Get a life.

  15. Re:OT: Could anyone recommend a good beginners boo by ry4an · · Score: 1

    Stick with java in a nutshell by O'Reilly. If it's examples youw ant download a lot of Java code. Nutshell is an excellent teaching book and a wonderful reference. What's best is that when you're done using it for the first purpose you'll know it already for the second. We've got a lot of Java folks where I work and all the best learned from O'Reilly.

  16. Shudder! by Eythain · · Score: 1
    The guidelines presented in this book will allow for the design of applications with consistent appearance and behavior.

    Consistent appearance and behavior... makes your skin crawl, doesn't it?

    -- Eythain

    1. Re:Shudder! by justharv · · Score: 1

      You use enlightment don't you? :)

  17. Crawling UIs by Captn+Pepe · · Score: 1
    The trouble with Java is that, as soon as you load a UI layer (Swing comes to mind; haven't used JFC but I somehow suspect similar performance) the whole app/applet slows to an absolute crawl. This is, I think, mostly the fault of how Java implements new calls: calling an instantiated function results in calls to the contructors of every class above it.

    Other than that, I've seen performance approaching that of compiled C++ out of Java, if the app takes pains to avoid new. UI layers simply don't do this.

    --

    Quantum mechanics: the dreams that stuff is made of.
    1. Re:Crawling UIs by aschlemm · · Score: 1

      Swing and JFC is the same thing. Swing was renamed to JFC but all JFC classes stuff resides in a javax.swing.* package. The nice thing with Swing it that the L+F is much more consistent compared to the old AWT stuff. I did some multi-platform work with AWT and we had to work around some problems by checking to see whether we were running under Windows or Solaris and taking appropriate action.

      The only strangeness with Swing I've seen recently has been with Font differences between WinNT and Solaris. A majority of my work lately has been doing WinNT Java clients that connect to a Java middle layer on Solaris via CORBA. The performace with Swing is greatly improved since they don't rely on heavyweight native UI peers so much like AWT did. Also the Swing API is not thread-safe so there's no waiting due to synchonization on any methods (I haven't looked at the Swing code to see if they have alot of synchronized blocks of code). UI performance on PII400 has been very acceptable and I haven't had any complaints from any users about performance.

      I'm working a contract now and so I got the crappy equipment at the customer site. I have a P5 166 and so yes my UI performance is very crappy. I'm thankful that all of our builds are happening with Clearcase on a speedy Solaris server.

  18. Re:Obviously this book is a waste of time. by Malc · · Score: 5

    "In short forget about coding standards, design reviews and all that other ivory-tower nonsense, fire anyone suggesting such time-wasting strategies, and with the money you have saved, hire yourself some qualified marketing experts and watch the $$$s start rolling in."

    Rubbish: don't talk such tripe.

    The first product I worked on as a professional had 17 engineers coding like hell with no formal process. Guess what? When we introduced a formal process and started dictating our own deadlines (which seemed further in advance), our product improved, it was delivered more quickly, the user interface became usable, and most importantly, the satisfaction of our clients increased.

    If you want to get up and market an awful product, that's fine by me. You're the one who will look foolish to potential clients. You're the one who will be laughed at at trade shows.

    Coding standards do matter. For example, when you have people using combinations of spaces, tabs, different size indentation, different size tabs, you will not believe the number of bugs that can be introduced just because the indentation is screwed up on somebody else machine. That is the very simplest coding standard that we implemented. It saves a lot of time being able to sit down with somebody elses code and not have to figure out their conventions before fixing their bugs, or implement enhancements. A software profession shouldn't mind such things: they can keep their personal styles for their hobbies.

    User Interfaces do matter. Without formal design, you can end up with an unuseable user interface that is completely inconsistent across the application. Customers generally only see the UI, and so their opinions of the whole product are based on this. It doesn't matter how good the underlying technology is, a flawed UI will lead a customer to believe the whole product is flawed. Besides, if they find a UI unuseable, they won't be able to get at your underlying technology.

    Finally, with a properly implemented formal process, there should be very little UI fixing needed when the product is ready. In my experience, UI design goes in parallel with the rest of the product development. The UI design needs be started as soon as possible so that it can be reviewed (by non-engineers) and redesigned as necessary before it's implemented and the rest of the product is ready to ship.

    You sound like a car salesman or a spammer.

  19. Re:OT: Could anyone recommend a good beginners boo by Anonymous Coward · · Score: 0
    Just me, but I found Bruce Eckel's "Thinking in Java" pretty helpful - and available online for free at bruceeckel.com.

    Ivor Horton's "Beginning Java 2" was far from awful - nice compact introduction to OO programming concepts & how to use em in 2 neat chapters.

    And you can't go wrong with the O'Reilly books, but that's common knowledge.

    Your mileage may vary, of course.

    Good luck!

  20. Good Book by jamesoutlaw · · Score: 1

    I have a copy of this book and think it makes a pretty good "style guide". It's not really written for a technical audience but can be very helpful for people designing a GUI for an application. It is not as detailed, however, as the Apple Macintosh Human Interface Guidelines, though.

  21. Re:Obviously this book is a waste of time. by jamesoutlaw · · Score: 1

    If you are truly "well respected" you would post using your real name rather than as an anonymous coward.

  22. Re:Obviously this book is a waste of time. by The+Wookie · · Score: 1
    You posted using the minimum quality that the consumer would tolerate.

    Obviously it was below the minimum quality or you wouldn't be complaining about it, would you?

    Get off the high horse and learn to make some $$$s from all these dumb consumers out there who wouldn't recognise a quality operating system if it was given to them free, with source on a plate...

    The term "bottom-feeder" comes to mind when I see a phrase like this. As a marketroid, you should also know that people use Windows as a matter of convenience. Yes it's buggy, but it comes pre-installed on their PC's and almost every program they would want to run is available for it, which is not the case with Linux.

    Just as the users have their tradeoffs (quality for convenience), developers also have their tradeoffs. Coding standards really help a large project, especially if there is a lot of turnover. Design reviews and code walkthroughs are also a big help. The larger the project, the bigger the help. For smaller projects, though, these activities would take a much larger portion of the total development time, so they are usually scaled back or eliminated completely. Usually when I hear someone tell me that I should eliminate activities like these (or even worse, skip design and go straight to coding) they usually only have experience with short projects and think that techniques for the short projects scale up well.

    I do care about making a good product and I'm not about to trash my principles to make a fast buck. If you think that the end goal is to get the most money, that's your opinion and that's why you're in marketing.

  23. Re:OT: Could anyone recommend a good beginners boo by KFW · · Score: 1

    If you're not already a programmer, I would suggest Horton's /Beginning Java 2/. It is very readable, and the pace isn't too fast (I found /Just Java/, another frequently recommended book, to be too terse--it is aimed at the experienced programmer moving into Java).

    You should carefully evaluate what it is that you want to do. I spent a lot of time trying to learn Java, then decided that for what I wanted to do a scripting language like Python was actually the way to go. I checked out Perl, but the maintainability seemed to be lacking (it seems that ESR and Perens have switched to Python for this reaon, from what I've read). Python is OO, so if I decide later that I really do need Java, I should be able to ease into it without as much difficulty.

    hth,
    >K

  24. Re:OT: Could anyone recommend a good beginners boo by Industrial+Disease · · Score: 2

    You should at least take a look at Bruce Eckel's Thinking in Java. The PDF version is free (gratis, not libre), so you have nothing to lose by checking it out.

    --
    Weblogging Considered Harmful:
  25. Funny by Anonymous Coward · · Score: 0

    I think it's funny when you people fall for a troll like the above.

  26. Re:Obviously this book is a waste of time. by starman97 · · Score: 1

    "Coding standards do matter. For example, when you have people using combinations of spaces, tabs, different size indentation,
    different size tabs, you will not believe the number of bugs that can be introduced just because the indentation is screwed up on
    somebody else machine. That is the very simplest coding standard that we implemented. It saves a lot of time being able to sit down
    with somebody elses code and not have to figure out their conventions before fixing their bugs, or implement enhancements. A
    software profession shouldn't mind such things: they can keep their personal styles for their hobbies."

    Wow, where do you find programmers like that, most of the ones I've ever worked with would have absolute screaming fits if you ever dared to mention coding style standards... The majority of programmers re-write any other programmer's code to meet their style aesthestics, it's the first thing they do. The real fun comes when it's time to enforce standards, you get the 'it works, if you dont like my code, fix it yourself' attitude. Maybe I've just worked with prima-donnas, but they were productive coders, with the exception of a few who obfuscated to hide incompetance.

    --
    Starman97@Gmail.com (bring it on spammers)
  27. Re:Obviously this book is a waste of time. by Anonymous Coward · · Score: 0
    One word Microsoft

    One book "Microsoft Secrets"

    Quality is not the result of coding standards.

    However, quality developers may choose to use coding standards to improve their code quality.

    I think this marketing guy half gets it, in that he understands that process must not be allowed to interfere with letting the developers do their job.

    The point is, could you write down a set of instructions in a book, so I can learn to swim simply by reading the book? Or would it be better for me to try it for myself?

    Guidelines are fine, but they are there to be ignored.

    Finally, developers do not dictate deadlines. Like it or not, it is the market place which dictates the deadlines. Products stand or fall by being in the right place at the right time, and so time-to-market is of fundamental importance, quality (for closed-source commercial software) is at best of secondary importance. Sad but true.

  28. Re:Obviously this book is a waste of time. by Anonymous Coward · · Score: 0
    If you want to get up and market an awful product, that's fine by me. You're the one who will look foolish to potential clients. You're the one who will be laughed at at trade shows.

    No. I will be the one who is laughing. All the way to the bank.

    I will not look foolish, because I have the magic power of marketing spin at my disposal.

    In short, I follow the Microsoft model. Ship early, ship good-enough, charge for support and market the hell out of the product.

    I used to work for an ISO9000 organization, its development processes were Byzantine, and the end result was often bug-ridden and late. It was however well documented.

    The consumer wants it NOW, and does not care if your non-const functions are const or if someone used a pointer where they should have used a reference, or whether you indented 8 spaces or 4.

    Rest assured I will take steps to fire anyone who suggests I am wrong. I KNOW development, I've been there and done it all before. You cannot tell me anything I don't know, and I've heard every excuse under the sun.

    If you are not ready to ship when MARKETING tells you. You are out of the door....

  29. Here's one by joss · · Score: 2

    As another seasoned Swing developer I offer
    one right here. Forget about swing, use FLTK instead (http://www.fltk.org/ ) Shit, write
    it in COBOL, Visual Basic, assembly, anything but use Swing (er, except MFC which is even worse).

    I've been using Swing for the last 2 years
    (since it first came out). It's slow, buggy,
    leaky, and did I mention slow. Check out the call stack at any point in a Swing program - it's
    about 15 levels deep.

    Doubtless I'll be called a troll for this. Fine, fuck you too, but I do know what I'm talking about. I admit I'm kindof bitter about this, but if people had been honest about Swing before I got into it I would have been saved a ton of grief.



    --
    http://rareformnewmedia.com/
    1. Re:Here's one by Dj · · Score: 1

      So the stack trace is deep... and this means what... oh I know. You do all your processing inline on the back of the events, and you probably also drove the UI from other threads without a SwingWorker...

      Slow's been handled... Buggy takes time (and two years ago, Swing was pretty new so one wonders if you expect perfect 1.0's) and leaky... well that's typically the coders fault for not cleaning up listeners and a profiler/memory tool will track that.

      I'll use Swing thanks. It works here because I don't expect magic bullets for no work done.

      --
      "You know you want me baby!" - Crow T Robot
  30. Re:OT: Get Java in Nutshell 3rd Edition by djKing · · Score: 1
    --
    Free as in "the Truth shall set you..."
  31. Re:Heheheh! I make a living out of clucks like you by Anonymous Coward · · Score: 0
    Yeah but you would be the same guy to sue my ass if I was late with some product, right ?

    If I recall my European case law correctly, Intertransglobal Internet Solutions vs Hammersmith County Council in London, England was the landmark case for this.

    Apparently their ship date slipped due to attempting to make their code comply with the OSF Motif user interface guidelines. The code was working perfectly, but some of the menu options did not have the correct accelerator "short cuts" defined. (Admittedly there could be a health & safety issue here but bear with me)

    The plaitiff in this case was awarded exemplary damages, despite proof from the defense that the product was "of merchantable quality" and "fit for purpose". (the normal standards for consumer protection in the United Kingdom)

    The end result was that the company went bankrupt and never produced another application again.

    I sure hope I never find myself defending a suit against you, but our legal dept usually handles this. They have plenty of "contacts" who can be very "persuasive" with anyone foolish enough to go up against us!!!

    dmg

  32. Slow? yep by prizog · · Score: 1

    I started a project a while back which used swing for its gui. It had graphics, 640x480. and it ran at about 15 fps on the fastest machine I tried it on (PIII 550 running Windows). Nothing fancy. Not quake. Red and blue dots on a black background. Nothing I could do would make it go faster. So I scrapped the project. Don't try swing if you need anything graphical other than buttons.

  33. Re:Obviously this book is a waste of time. by Malc · · Score: 2

    "No. I will be the one who is laughing. All the way to the bank. "

    Uh-huh. If I was laughing all the way to the bank I wouldn't be bothering myself with this discussion.


    "magic power of marketing spin"

    You obviously haven't been using that today. Anyway, I haven't met anybody who has enough "magic power of marketing spin" to sell me a thing. You'd be a fool to try it on me.


    "Rest assured I will take steps to fire anyone who suggests I am wrong. I KNOW development, I've been there and done it all before. You cannot tell me anything I don't know"

    That sums it all up: you are a fool! Perhaps that is why you need to hide as an anonymous coward when posting? I haven't met anybody who knows everything (I have met a few arrogant/pompous twats who THINK they know everything - but I've taking pervse pleasuring in showing them up, which CAN ALWAYS be achieved).

  34. Re:OT: Could anyone recommend a good beginners boo by string · · Score: 1

    Bruce Eckel's _Thinking in Java_ is worth checking out.

  35. *Follow* the existing standard instead! by Gorimek · · Score: 3

    UI standards are great.

    The problem with this book is that there already *are* UI standards, and they decide to *not* follow them, and create their own instead.

    Lets remember why a UI standard is good: It makes the behaviour of different programs consistent and predictable. The user does not have to learn a whole new way of working for each application, and when switching between program, the user does not have to remember a lot of special rules, but can focus on getting things done.

    Unless these java programs are run in a java only environment, which I believe does not exist in the real world anytime soon, software written according to this "standard" will in fact be different, non-standard, and expose the poor user to the exact problems that a UI standard is supposed to solve.

    1. Re:*Follow* the existing standard instead! by Anonymous Coward · · Score: 0

      I'm sorry - _which _ exisiting standard are you refering to? Mac UI, Windows, X/Motif, something else? Regardless of wether you care or not, the "prime directive" of Java is still Write Once Run Anywhere (WORA). So there is *no* standard that Java can use that already exists.

    2. Re:*Follow* the existing standard instead! by Gorimek · · Score: 1

      Thw simple approach would be to use the Windows standard. That should be right for 80% of the users, and not any more alien than this "java standard" on Mac or Motif desktops.

      The ambitious way would be the "when in Rome..." approach, so that the applets somehow could switch at least some of their behaviour to fit in with the desktop environment where they run at the moment. I don't know how feasible that is.

    3. Re:*Follow* the existing standard instead! by lordpixel · · Score: 1

      Mozilla has a technology (I believe its called "overlays") that handles the worst clunkers, i.e. the File->Quit File->Exit debate and the which side is the OK button on debate. My objection is that Sun refuse to acknowledge that these simple steps would be useful or necessary. So yeah - you could go for "When in Rome" but if you do you're on your own. Nothing in Swing will help you... Of course, one could always usea platform specific look and feel.
      Lord Pixel - The cat who walks through walls

      --

      Lord Pixel - The cat who walks through walls
      A little bigger on the inside than out

  36. Not much content in this book by brindle · · Score: 1

    I read this book and was really disappointed with the lack of
    references for design decisions throughout the book. As a result, many
    of the guidelines seem arbitrary and somewhat whimsical.

    I agree that it may be more prudent (at this point in time) to
    create a layout manager that places objects consistent to the
    current look and feel.

    -B

  37. Re:Obviously this book is a waste of time. by Anonymous Coward · · Score: 0
    Yeah you are correct.

    What conclusion can you draw from this ?

    You are probably correct.

    dmg

  38. Critique of book by lordpixel · · Score: 3

    I read thing book, and while its not bad, its incomplete. The stuff they do say is good, but unoriginal. And they things they skirt around are the hard issues.

    In other words, its better than nothing - L&F guidelines good - incomplete guidelines bad.

    The best thing about this book is the bibliography, which is very comprehensive and lists a lot of things you should read.
    They're very open about the fact that they've simply copied a great deal from their references. Which is good - no point in reinventing the wheel, but there is a lack of imagination.


    Here's my main objections:

    You can summarise the entire book thus:

    If an MS Windows standard exists, follow it blindly and without modification

    If no Windows standard exists follow the Mac.

    e.g. Close Window is Ctrl-W which is a Macism.
    Find is Ctrl-F, Find again is Ctrl-G. Again Macisms. And why? Because there is no standard for find and find again on Windows. (OK alt-f4 is close window, but you can't really do that one handed unless you're a Vulcan so it doesn't count).

    It sticks firmly to the Java Look and Feel - not touching any of the real issues or problems with this Look And Feel

    e.g.
    Windows - OK on left, File->Exit to quit
    Mac - OK on right, File->Quit to quit
    Linux - OK wherever, File->Quit, File->Exit both common

    The Java L&F again follows Windows and Swing has no facility for the sort of overlays supported by Mozilla to deal with these issues.

    According to Sun this is not a problem. The whole point of the Java L&F is that it works the same on all platforms, they say.

    Oh dear. Sun demonstrate once again that they have no understanding of end users whatsoever.

    Every application on your computer uses
    File->Quit and has right hand side OK button. So you can just adapt to this one app thats totally different. Well yes, people are adaptable, but the idea of a set off look and feel guidelines that enshrines bad practise into the standard makes me slightly queasy. People want to get their jobs done, not suffer through Sun's UI designer's latest misjudgement.

    The single biggest screw up in the Java L&F is the insistence that the alt key must be used for shortcuts. You cannot override this in your application.

    This is a disaster area from an internationalisation standpoint - you can't enter a whole bunch of characters when using the Java look and feel as the native OS needs to use the alt key as part of it input method. Doh! Never mind about the Swedes, or those pesky Norwegian teenagers eh?

    Speaking of UI - why is the comment entry text area on Slashdot so damn small?

    Oh - and the screenshots show modal dialog boxes with *close boxes*. ARGGGGGHHHHHHHHH!!!!!!!
    Lord Pixel - The cat who walks through walls

    --

    Lord Pixel - The cat who walks through walls
    A little bigger on the inside than out

    1. Re:Critique of book by Kerg · · Score: 1

      The single biggest screw up in the Java L&F is the insistence that the alt key must be used for shortcuts. You cannot override this in your application.

      This is incorrect. The Java Foundation Classes themselves do not support other shortcuts but ALT+key, but the framework is very easy to extend by using the normal methods of OOP.

      Check out jEdit for example. Most of its shortcuts are CTRL+key and many are behind two control keys, like CTRL+e CTRL+x.

      Framework does not support it, but it doesn't mean it can't be extended to support it.

    2. Re:Critique of book by lordpixel · · Score: 1

      I'm sure you're right.

      Well, actually, let me clarify what I meant...

      By default mnemomics are bound to the alt key.

      So you download a mail program that uses alt-s for send, for example...

      So if you're using a computer that needs alt (or option on a Mac) to enter certain characters, then you can't enter the character that alt-s sends into a mail message, because it will always be interpretted by Java Look and Feel as the mnemomic for send. (whoops, there goes a half written message).

      If its your program, fine, you can edit the source. But if you're just a user, one who speaks a different language to the author or the software, and has a computer running a localised version of a *different* operating system to the author, your mileage in getting the change is going to vary. The author won't see the problem, so you're relying on goodwill of the individual or company. If its a popular program with many existing users, they won't like having the shortcuts changed.

      BTW - this applies to the Java Look and Feel. If you use the Windows or Mac or Motif Look and Feels, they all handle keyboard shortcuts in a platform specifc way.


      Lord Pixel - The cat who walks through walls

      --

      Lord Pixel - The cat who walks through walls
      A little bigger on the inside than out

    3. Re:Critique of book by Kerg · · Score: 1

      So if you're using a computer that needs alt (or option on a Mac) to enter certain characters, then you can't enter the character that alt-s sends into a mail message, because it will always be interpretted by Java Look and Feel as the mnemomic for send. (whoops, there goes a half written message).

      Hmm, well my keyboard has 2 different alt keys, ALT and ALT GRAPH. Some of the older JVM's didn't handle the OEM keys correctly and didn't differentiate between the two alt keys. The newer ones work fine.

      Is this the problem you're talking about?

    4. Re:Critique of book by lordpixel · · Score: 1
      No, that's not exactly what I mean...

      Here's a real example:

      Say you're a British Mac User. On a British Mac keyboard:

      shift-3 is the British pounds Sterling sign £

      shift-4 is the dollar sign $

      alt-3 is the hash sign # (what Americans would call a pound sign, for historical reasons

      In the Java (Metal) Look and Feel, you cannot type the # symbol, as Swing grabs this event and treats it as a keyboard mnemomic. I think this is true *even if* alt-3 is not actually in use as a mnemomic in the application in question.

      Even time you try to type in a # it just sits there, and the application writer cannot easily fix this.

      Again this is Mac OS based - but some of the Scandinavian languagues use the shift- to enter accented characters and the like. So to enter "normal" punctuation like % $ & ^ you need to use the alt key.

      This would apply even more so to the Japanese, Chinese, Arabs etc. And potentially the input method for any OS could be thus broken by the Java Look & Feels draconian 'standard'.

      BTW - if you look at any modern PC keyboard, you're unlikely to see alt and alt-gr. Mostly you'll only see alt. Java does not handle OEM keys. I can't remember the last time I saw an app that uses alt-gr as anything other that alt.

      I sincerely doubt its possible to detect the difference between alt and alt-gr. I know for a fact that its impossible to detect whether 'Return' on the Keyboard on 'Enter' on the Numeric keypad has been pressed.

      (On PCs both keys are usually labelled Enter, on Macs and Sun boxes one is Return one is Enter and they frequently do different things)

      Java applications cannot do this. Sun have declared that in Java both keys do the same thing. They're indistinguishable at the application level, you can't tell which the user pressed. If you don't like this decision: tough! is the message...


      Lord Pixel - The cat who walks through walls

      --

      Lord Pixel - The cat who walks through walls
      A little bigger on the inside than out

    5. Re:Critique of book by Kerg · · Score: 1

      but some of the Scandinavian languagues use the shift- to enter accented characters and the like. So to enter "normal" punctuation like % $ & ^ you need to use the alt key.

      Scandinavian keyboards use Alt Graph to enter @£${[]}\~ keys. Its not the same key as Alt.

      if you look at any modern PC keyboard, you're unlikely to see alt and alt-gr.

      This is NOT true. All the keyboards I've seen have Alt Graph. The reason is mentioned above. I need it to type.

      I can't remember the last time I saw an app that uses alt-gr as anything other that alt.

      All mine do, I have different functionality in Alt and Alt Graph. Its OS specific. Applications don't have to worry about it.

      I sincerely doubt its possible to detect the difference between alt and alt-gr.

      You can detect the difference between Alt and Alt-Gr just as easily (or not easily, depends on your expereince, tool in use, etc.) as you can detect difference between enter and return. It's a low level job. It's not impossible. At all.

      In KeyEvent class:
      public static final int VK_ALT

      public static final int VK_ALT_GRAPH

      There you go. Two different keys.

      If you don't like this decision: tough! is the message...

      It can be done just as easily as it can be done to Alt and Alt Graph keys. If there's a real need for differentiating Enter and Return, just ask for it. It's not that big a deal.

    6. Re:Critique of book by lordpixel · · Score: 1

      if you look at any modern PC keyboard, you're unlikely to see alt and alt-gr.

      This is NOT true. All the keyboards I've seen have Alt Graph. The reason is mentioned above. I need it to type.

      Quick survey of the office:

      Dell - no Alt Gr
      Hewlett Packard - no Alt Gr
      Sony - no alt Gr
      Acer - has alt gr
      Roc - has alt gr (ancient machine)
      Compaq Arabic - no alt gr
      Compaq Chinese - no alt gr
      Compaq Japanese - no alt gr
      AST Russian - has alt gr

      Sun - Tellingly, has alt gr

      So most keyboards do not have it. I suspect yours do because its necessary for the typical Scandinavian input methods. As someone who is not American but lives in the US myself I can sympathise when this sort of thing. Someone no doubt thought that because typical American users don't use the keys differently, no one at all uses the Alt-Gr key anymore.

      This is not really the point of the discussion though. In fact, I have other messages in this thread explaining why this is so important for Scandinavian input methods on the Mac OS. Believe me, I'm on your side!

      You can detect the difference between Alt and Alt-Gr just as easily (or not easily, depends on your expereince, tool in use, etc.) as you can detect difference between enter and return. It's a low level job. It's not impossible. At all.

      In KeyEvent class:

      public static final int VK_ALT

      public static final int VK_ALT_GRAPH

      There you go. Two different keys.

      It can be done just as easily as it can be done to Alt and Alt Graph keys. If there's a real need for differentiating Enter and Return, just ask for it. It's not that big a deal.

      Um, now you're just being deliberately obtuse. Looking in the same KeyEvent class, you will see that there clearly is not a VK_RETURN to go with the VK_ENTER. So what's your point?

      Sun have deliberately left this out of their implementation. You cannot just do it as a low level task. Its hidden from you in Java as there is no way to access the Keyboard at a lower level and Return and Enter have deliberately been made to return the same event

      As for 'just asking Sun for it'. Have you ever tried anything like that? Go look at the top 10 bugs in the bug parade on java.sun.com. If they will not fix those, what makes you think they'd change policy on something like this just because some one asked them nicely? Sun (like most big companies) are notoriously deaf about this sort of thing.

      I don't understand your argument. We agree that people need different keys for different things, often depending on their OS or native spoken language. But since ALT and ALT_GR just happen to be defined by Sun (which suits your puproses) and Enter and Return just happen to be undefined by Sun (which doesn't effect you but annoys me), you seem to be saying that there's no room for improvement in Java's handling of the keyboard. I don't see how you can see and feel strongly about one problem, without realising that the similar case will cause problems for other people

      I'll re-iterate - if you can show me some Java code that call differentiate Return and Enter I'll take this all back. It is impossible as things stand


      Lord Pixel - The cat who walks through walls

      --

      Lord Pixel - The cat who walks through walls
      A little bigger on the inside than out

  39. Re:Obviously this book is a waste of time. by _Lint_ · · Score: 1

    "Wow, where do you find programmers like that, most of the ones I've ever worked with would have absolute screaming fits if you ever dared to mention coding style standards... "

    Then they would be fireed where I work...

    "The majority of programmers re-write any other programmer's code to meet their style aesthestics, it's the first thing they do."

    How do your configuration management people keep track of changes when a diff shows 90% of the file has changed, and it turns out that it was because some prick re-indened the file?

    "The real fun comes when it's time to enforce standards, you get the 'it works, if you dont like my code, fix it yourself' attitude."

    We created coding standards up-front. Code that does not meet the coding standards will NOT make it through the code review. It is then the job of the enginer that wrote the code to fix it before it will be included in the baseline. In short, code is assumed to be broken until it makes it through review. Code that fails the standards is broken by denfinition. Period.

    "Maybe I've just worked with prima-donnas, but they were productive coders, with the exception of a few who obfuscated to hide incompetance."

    They wouldn't have been able to hide their incompetance if they followed coding standards. Besides that, it almost sounds as though these coders never had their code reviewed by their peers. We do. Every line. That's part of the reason for coding standards. I'm a firm believer in peer review. As such, I believe in coding standards. If nothing else, they make per reviews easier, since everyone is familiar with the coding style.

  40. Re:Obviously this book is a waste of time. by Anonymous Coward · · Score: 0
    I do care about making a good product and I'm not about to trash my principles to make a fast buck. If you think that the end goal is to get the most money, that's your opinion and that's why you're in marketing.

    Stop being so patronising about my chosen profession. It is a perfectly valid career, and we are not as clueless as the elitists on Slashdot like to think. This is part of the problem. We know how much time you spend surfing the web when you should be busy writing great software. We can also see all your trendy new technologies for what they are, same sh** different box.

    Java ? It's just an poor imitation of Smalltalk (write once run anywhere was a reality in the 1980's)

    C++ ? An inferior overly-complex language that deserves to die.

    XML ? Well its EDI all over again. We marketers cannot be hoodwinked, we know you are all wasting lots of time.

    If you are a commerical software producer it is your LEGAL OBLIGATION TO YOUR STOCKHOLDERS to get the most money.

    Everything, and I mean EVERYTHING else is BS.

    However, if you want to write quality bug free perfect code, by all means go ahead and do it, but not in my time. I'm paying the bills, I will be the judge and determine what is and isn't acceptable.

    I am just glad I work for an organisation that takes marketing seriously and gives its marketers the respect, not to mention the $$$s they so richly deserve.

    dmg

  41. Re:OT: Could anyone recommend a good beginners boo by Anonymous Coward · · Score: 0

    I really liked "On to Java" by Winston & Narasimhan from Addison Wesley. Lots of short chapters that introduced (and demonstrated) a single concept at a time. I kept the Nutshell book at hand as a reference.

  42. Re:OT: Could anyone recommend a good beginners boo by bentwookie · · Score: 1

    Java in a Nutshell is an amazing reference, once you know what your doing. In that squishy in between time, there is no better than Sun's own core java series.

  43. Sun guidelines apply to Metal L&F by Foaf · · Score: 2
    I remember reading the web version of the book when it was in beta (Only computer companies could make beta books).

    It suggested that if you're coding for a particular platform then use the appropriate guidelines for that platform. So the Windows guidelines apply when you use the Windows L&F. The Sun guide recommended using the Metal/Swing L&F if it was likely that your app was to be used on more than one platform.

    I design and build UIs in Java every day. I always follow the Windows guidelines because even though my code could be run on a UNIX box, it won't be.

    While the Sun guidelines are pretty good, I would only recommend buying the book if you design with the Metal L&F.

  44. Re:a practical guide by Anonymous Coward · · Score: 0

    Try DKJava.

    Thank you.

  45. It's ok by Anonymous Coward · · Score: 2

    Having developed GUIs fore more than 16 years in my professional career, I have no real problem with the book. It summarizes some of the obvious issues (for GUI professionals that is), and gives a nice overview about developing for the Metal L&F (and yes, they say right at the beginning that it is for the Metal L&F, and only for the Metal L&F, and nothing but the Metal L&F). Reading the /. comments it is obvious that most commenters haven't read the book at all. It is not for the Windows L&F, it is not for the CDE/Motif L&F. In generaly it talks about applications, and not so much about stupid applets.

    There are open issues in the book - like in most GUI design guides. They sometimes don't follow their own rules in the book. So what? GUI design is hard, and the book authors have experienced just that with their own examples. They could have made the icons available for usage in own applications, they could have spent a few more words on how to actually implement some of the recommended behaviour. Like in most GUI design guides, they didn't - there are other books which fill the void.

    They got some things plain wrong - at least in my opinion. E.g. placing dialog buttons to the lower left ensures the longest possible mouse move to reach one of the buttons (you click in an upper left entry field to start entering data, then you grab the mouse again and you have to move it to the lower right side of the window to click the button. They have "Close" instead of "Ok" buttons in notification dialogs - shiver. What does this mean? Nothing, other GUI design guides have the very same problems.

    What do you get if you follow the advice in the book? A logical, predictable GUI, not to alien for the typical John Braindead who uses Windows or Mac. A GUI with the distinct Metal L&F. If you don't want that, don't use the book.

    Will the book solve all your (GUI) problems? Nop. If you can't design GUIs, if you are not talented, if you don't have end user feedback, you will remain the very same clueless idiot you were before reading the book.

    BTW, there is a general pattern in GUI design discussions. On one hand you have those who don't care, who don't know pain, and who develop crap. On the other hand you have the talented people who know that every GUI is just a compromise and a good GUI is a constant battle for perfection (which is never reached).

    The first mentioned ones cry out loud whenver the words "GUI design guidelines" are mentioned (they deeply fear GUIs, because they know they always lose). The later ones invoke their brains and pick the useful stuff out of such guidelines (they too know they will lose, but they prefere to battle in style).

  46. Thats great, but Sun DISABLED L&F on Linux by Anonymous Coward · · Score: 0

    What about the fact that Sun wrote checks that DISABLE the Windows and Mac L&F UIs if you are not running on a Windows or Mac system? When swing was being developed Sun promised that you would be able to use any L&F on any platform, but they they locked them down claiming some crap about a L&F lawsuit.

    1. Re:Thats great, but Sun DISABLED L&F on Linux by Scrymarch · · Score: 1
      but they they locked them down claiming some crap about a L&F lawsuit.

      In case you haven't noticed, desktop vendors can be a touch tetchy about UI design, Apple particularly. What about lawsuits about Aqua, or the design of the iMac? A sure way to kill the beleagured Java on the client would have been to (further) alienate the two major desktops.

      On Linux you can use the default, Metal L&F or the Motif L&F. And if you miss Windows that much, you could write your own Win-like L&F and use that.

    2. Re:Thats great, but Sun DISABLED L&F on Linux by justharv · · Score: 1

      Sun didn't disable them, because of the architecture of AWT and Swing, the components rely
      on "peer" components. The peer components are the
      native versions of the Java ones. So on a Mac
      you're not going to have Windows peer components
      because there are no libraries for drawing
      Windows UI components on a Mac. Now apply that
      to all the OS's. Duh.

  47. UI standards not just for newbies by lucas_gonze · · Score: 1

    What discussions, like this one, of UI standards usually miss is that UI standards benefit experienced users as much as newbies, if not more. The point of these guidelines and standards is to allow people to reuse their knowledge. It's a major time saver to not have to figure out new stuff constantly.

    Think of the confusing array of copy keystrokes you may use in a day:
    esc w (emacs)
    ctrl k ctrl u(pico)
    ctrl x (windows)
    ctrl insert (secureCRT under windows)

    the attention you have to spend tracking this stuff would be better spent elsewhere.

    That is the relevance of a book like this. However, the reviewer doesn't discuss the quality of the standards given by the books, which makes the review much less useful.

  48. Not usable == unusable by Gorimek · · Score: 1

    Marketing is good and needed.

    Still, if a product is unusable, it is real hard to market.

  49. Re:Obviously this book is a waste of time. by Anonymous Coward · · Score: 0
    Code that does not meet the coding standards will NOT make it through the code review.

    It _will_ make it through if you are late for an important money-related deadline. Trust me on this.

  50. moderation... by _Bean_ · · Score: 1

    I'm sorry but how did this get moderated up twice for just giving a link from the review?

  51. Re:OT: Could anyone recomme a good beginners book? by justharv · · Score: 1

    I know you're a beginner, but you really need to get "the bible" (at least IMHO). Get "The Java Programming Language" by Ken Arnold and James Gosling. It is *the* book for reference on Java and has some good examples.