Recent Usability Improvements in NetBeans

Guest Author

At first, let me introduce the NetBeans Usability team. The lead is Trung - read [Tshung] with u as in German "Werbung". Welcome him kindly to the blogging world! Then we have 6 guys alltogether from development, UI and QE - I think we got it right by choosing staff from different departments because usability spans the whole engineering gang. We try to influence the NetBeans IDE in our areas in a positive way with an ultimate goal to make it really usable. Or at least more usable then the IDE from our friends from IBM.

We've started with the "low hanging fruit" as we are near to 4.1 release. So what were we busy with recently?
  • Increased default font size - now this may sound funny for a change but actually I find it quite important, we had a small font, now we are at 12 pixels which is OK. Well my grandma still won't be able to read it but she's probably not a typical user anyway.
  • More space for explorers - we got tired of always looking at people who use the tiny window with both scrollbars trying to browse the file trees on the left. I did it, too... never realizing I could actually make the window bigger and then I could get to my files easily.
  • Line with cursor highlighted by default - this option was there for years, it's popular, why not to make it on by default? Improves reading of the code (except for some people who actually thought the yellow line is a bug).
  • How to change file templates? - we've added info how to change these into comments on top of java files. So that even users who do not know Tools->Options by heart can find them.
  • Improved some of the texts in wizards - cleaned up some of the historical mess.
  • Added back and forward buttons into editor - so that users without photographical memory on shortcuts can use navigation.

We are working on redesign of the Tools->Options dialog which is currently a usability nightmare. Many other things are in the pipeline, we've submitted lots of proposals which will hopefully get realized in next releases. I'll blog about them later on if they get closer to reality.

Are you aware of an important usability issue of NetBeans? Write me! I don't promis we will implement the improvement, but we'll certainly think about it :-)

Update: Improved menu layout if there are no icons - check it out in build 200504062223 or newer. Another hard nut cracked.

Join the discussion

Comments ( 17 )
  • Jeff Wednesday, April 6, 2005
    Awesome, It's so nice to see all the work being done on Netbeans. Thanks for keeping at it! Can't wait for the final release of 4.1 and then to see what you all have planed for after it!
  • guest Wednesday, April 6, 2005
    Netbeans of today is way superior to its previous versions. Some features that are lacking can only be seen in expensive commercial versions.
    I wish Netbeans could provide the Live Template feature that IntelliJ Idea provides. Basically, it offers choices when a line of code has errors in it. An Example: the line of code not taking care of Exception handling. Intellij then offers to surround with try/catch block or declare it on the method.
  • Roman Strobl Wednesday, April 6, 2005
    Thanks for the suggestions. AFAIK we have both features in the long term plan. However it may take time, they're not easy to implement. I've seen a very experimental version of the suggestions module which handles errors - not with try/catch, but it can add imports for instance. So the work is started on this feature. As Scott says, stay tuned!
  • Mike Duigou Wednesday, April 6, 2005
    I love most of the new UI in 4.1. In particular with 4.1 using Separate Windows Mode is once again viable (big yay!) There were some real problems with it in 4.0.
    <p/>I'm still looking for better usage of screen real estate. I use a laptop with a teeny 1024x768 screen. I'd like to see redundant title bars or interior title bars removed from some windows when in SDI mode. It would also nice to be able to put the status line back into the toolbar.
    <p/>I also wish that using the GTK+ L&F worked better. I'm not sure how much of the problem is due to Swing and how much to NetBeans, but it remains largely unusable.
    <p/>I've also been baffled that NetBeans defaults to MDI mode. I loathe applications which try to "own" my screen. It should be expected that I also simultaneously use a browser, mail app, file manager, etc. There's nothing worse than seeing the grey background desktop paint of unused area in an MDI application hiding all windows of other applications. Using reference material from a browser window while editting code in an MDI app on a small screen--painful.
    <p/>I don't want to sound totally negative. To be clear, I'm very thrilled with the recent improvements.
  • Roman Strobl Thursday, April 7, 2005
    Thanks for positive and negative feedback - we need both of them. I was thinking what to reply, because I don't have a answer which will make you happy, the SDI mode is being deprecated. Almost 100% of users are using MDI and it's a huge overhead to maintain both modes. So unfortunately you can't expect much improvements the SDI mode in the future. There are many other things which are so important - where we are still behind competition. Sorry.
  • pprun Friday, April 8, 2005
    This is my expectation:
    - link with Editor(dialect in Eclipse)
    currently, only the Navigator partly(don't trace when I scroll in editor, it would be scrolled too if fully support it) implemeted with it. Maybe the projects window is the first candidate.
    - many complained that the 'code complete' is slowly.
    I don't think so, but I do often reduce the default setting for 'Delay of Completion window Auto Popup' to 1, how do you think?
    - 'New Java class' wizard missed more options than in 'Add new Class' wizard(by right click a class in projects window)
    - Recently opened file, not just project
    - Show Javadoc as 'tooltip',no need to act some key pressing or mouse clicking.
    -(Version Manager relevant) Browse source repository(for example:cvs.dev.java.net/cvs.sourceforge.net)
    - nice to hear your 'redesign of the Tools->Options '
    Please don't get me wrong, because I'm a faithful Netbeans fan.
    I always like to hear more news of Netbeans and thanks for your posts so often.
  • pprun Friday, April 8, 2005
    sorry for my ignoring the HTML Syntax.
  • guest Friday, April 8, 2005
    I want to see 'Show subtype' in 'Inheritance View' of Navigtor. currently only the super-type was listed.
    All icons are pretty good except the one for 'Java Project'- smaller than others and even sense somehow shapeless-and -twisted. Need so improved IMO.
  • Roman Strobl Friday, April 8, 2005
    Pprun: Thanks for your suggestions. I especially like the javadoc on tooltip, that's a usability killer feature. And Eclipse has it. Keep your fingers crossed, I'll have to persuade the developers that we really need to have it.

    Code completion is still slow (although it got better than 4.0), we'll work on improvements for sure. I've blogged about disabling the javadoc autopopup today as a performance tip.

    The scrolling in navigator sounds interesting, I can imagine there can be performance issues if we would implement the tracing, but we'll see.

    I do not understand your suggestion with Add new class. AFAIK people are not using these "add" features from context menu so much. Can you explain it?

    CVS improvement - interesting suggestion but not sure if this is not an "overkill" feature (a lot of work). You mean browsing the sources in the IDE like through a HTML browser, right?
  • Roman Strobl Friday, April 8, 2005
    To I've sent your suggestion to the developer working on navigator.
  • Roman Strobl Friday, April 8, 2005
    To The RFE for subtypes is here: http://www.netbeans.org/issues/show_bug.cgi?id=54089
    The developer said he has in plan do implement this in the future.
    Btw, which icon do you mean?
  • pprun Friday, April 8, 2005
    Nice to discuss with you again.

    >people are not using these "add" features from context menu so much. Can you explain it?

    Ok. you are right! I really need some items list in the 'Add new Class' dialog when I new creating a class, such as:

    • Modifiers options

    • implemnted interface options

    these items are listed in the 'not using'(as you mentioned) place but not the usual front - 'New Java Class' wizard. how do you think to Merge them together and to use the unified interface.

    BTW. In the dialog:Add new class | Add... | Enter New Identifier, I must to figure out the qualified name without any help.(Alt+/ in Eclipse get it out! - popup a window as 'code complete' in code editor)

    >CVS improvement - interesting suggestion but not sure if this is not an "overkill" feature (a lot of work). You mean browsing the sources in the IDE like through a HTML browser, right?

    In eclipse or Jdeveloper, filling in information for the repository , such as dev.cvs.java.net, the version window list all projects - j2se,mustang and ... you just select one and check out it.

    >which icon do you mean?

    the one standed left to a 'Java Project name' in the project window if there is one java project.

    the another one reported in abbreviation function
  • pprun Friday, April 8, 2005
    Because we are discussing the Usability of Netbeans, I want to go farther:(thanks for your patience)

    Although the new window manager system introduced in 3.6 is pretty good, it still lack one important feature.A navigating system(don't confusion with the Navigator in 4.1) which is centered with the editor. the advantage of this editor-centered window manager is:

    It is impossible that you will lost you position in every window(/view/session) because the project view, outline view, javadoc view, declaration view and other conceivable view are all attached logically on source editor, which is the source of most actions intending to use a IDE, and all track with the actions taking place in source editor.

    Actually the eclipse guys had recognized it in Eclipse3.1, there are still some debations against the performance lost and,indeed, because of this reason, currently, the 'method call hierarchy' and the 'type hierarchy' are not track with editor. But the design is there.

    To describe the advantage of this design I'll pick up the facilities, which assist one with code reading or with understanding existed code, in eclipse and be compared with the supply in Netbeans.

    Prepend this code, others is the code written by others.
      import others;
    class Mine {
    others.Hack.hack(); // mouse stop on hack()
    layout eclipse as this:
    | the code |
    |javadoc view |declaration view|

    The java doc, source code all information written by others which you want to know are list here, you just to glimpse.Right? If netbeans can do farther, merged Navigator within, the hierarchies are here, too.

    But, currently, you must invoke the 'Go to...s' or press relevant short-cut keys which lead you into a new document/window and you dive into the code. what could you like to do when there're many HTML syntax javadoc of the code? Press the short-cut key for the javadoc popuping.(At present I forgot to which one is which one.because there're 'show the Javadoc window', 'show popup menu' and 'show code completion' in key bindings,indeed, I copied them out from there.) Finally I got it and must to back .(I lost my position here mostly) Thanks to the 'back' and 'forward' button introdced recently.

    Someone may complain that to get the javadoc, declaration and other information may take one second delay. However How long does it take for our navigating back and forth?

    any idea.

    BTW. Is there any plan to implement 'Mark Occurrences' of java lexer syntax, which meant highlighting the decaration and other reference occurrences when I select a referenced variable in editor and further displayed with different color(from declaration and referenced) in error strip.
    Some apart from this article, you may think it reasonable to assign the shortcut keys -Ctrl+Space- for 'the code completion'. But it annoy me too. Because I'm not live in English-spoken country and the shortcut keys were already assigned to 'switch between ASCII and my native input method' by OS. So I much more hated the shortcut keys.

    I've just filed a feature into issues. Don't know placed it on the right place? what are you think about it?

    "Hate you!" you'll say? (just a kidding.)

  • Roman Strobl Sunday, April 10, 2005
    I've tried to understand your suggestions but to be honest I have problems with reading your English. Correct me if I'm wrong but the core of your first suggestion is that you would have several views (javadoc, declaration, possibly others) which would be changed according to the editor context. So they would be generated according to your position in a file. Is that correct?

    Concerning keybindings, we are aware of the issue with code completion. That's why you can currently use Ctrl-\\ to invoke code completion. You can redefine the show javadoc keybinding as well.

    Concerning 'Mark Occurences', can you give an example how would this feature be used?
  • Roman Strobl Sunday, April 10, 2005
    Re: bad icon - you mean the project "coffee" icon? It looks ok to me.
  • pprun Monday, April 11, 2005
    Your understanding of my poor description is exact.

    >Concerning 'Mark Occurences':
    class One {
    int markIt; // P1
    One(int markIt) { // P2
    this.markIt = markIt; // P3
    int getMarkIt() {
    return markIt; // P4

    Supposing cursor stop on 'markIt' of P4, it will mark the 'markIt' of P1, left one of P3 and itself-P4, not mark the P2's and the right one of P3. Is it superior than the 'highlight occurrence' and 'Find Usages'? And 'markIt' can be marked different colors at the declaration(- P1) and at the references(or usages). It is more effective to integrate it with the forthcoming 'Error strip' module.

    for the Icon, just my personal feel. Sorry!

  • Roman Strobl Monday, April 11, 2005
    Mark occurences - now I understand! I don't think we could generate the usages immediately into the error stripe, because it is performance demanding (it is not just a simple search in file, they parse the source code structure). We could definitely show occurences from find in the error stripe, this may be a good idea (all with them same colour). I'll ask the error stripe developer for his opinion on this. Not sure if there would not be too many things in error stripe (we already have errors, bookmarks, todos and warnings).
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.