The Sun BabelFish Blog
Don't panic !
I ♡ NetBeans 6.7 !
As I was developing my recently released foaf+ssl server to demonstrate how to create distributed secure yet open social networks, I stumbled across a daily build of NetBeans 7 (build 200902061401), that is stable, beautiful and that has really helped me get my work done. NetBeans 7 is really going to rock!
Update: What I called NetBeans 7 is now called NetBeans 6.7.
Here is a list of some of the functionality that I realy appreciated.
Maven Integration
Haleluia for Maven Integration! I got going on my project by setting up a little Wicket project which I easily adapted to include the Sesame semantic web libraries and more (view pom).
The nicest part of this is that it then becomes extreemly easy to link the source and the javadoc together. Two commands which should be integrated as menu options have finally made it possible for me to work with NetBeans.
# get the javadoc
$ mvn dependency:resolve -Dclassifier=javadoc
# get sources
$ mvn dependency:sources
This simple thing just used to be a nightmare to do, especially as the number of jars one's project depended on increased. The Sesame group have split a lot of their jars up nicely, so that one could use subset of them, but the way NetBeans was set up it bacame a real huge amazing astounding pain to link those to the source. And what is an open source IDE worth if it can't help you browse the source code and see its documentation easily?
Now I don't think Maven is in any way the final word in project deployement. My criticims in short is that it is not RESTful in a few ways, not least of which is that it fails to use URLs to name things and it makes the cache the central element. It is as if they had turned web architecture upside down web, where people would name things by trying to identify the caches in which they were located rather than their Universal Locator. My guess is that as a result things are a lot less flexible than they could be. As Roy Fielding pointed out recently REST APIs must be hypertext driven. Software is located in a global information space, so there is no good reason in my opinion to not follow this precept.
Clearly though this is a huge huge improovement!
A better file explorer
I have sworn a few times at the previous versions of the NB file manager! Even more so when I had to use it to tie the javadoc to the source code - at that point it became a scream. Finally we have a command line File Explorer with tab completion. This is so beautiful I have to take a picture of it:
We use the keyboard all the time, and one can get many things done much faster that way. Navigating the File System with a keyboard is just much nicer. So why oh why is it still impossible to use up and down arrow keys in the classic view when some files are greyed out? ( Writing this I noticed there seems to be no way to get back from the classic view to the new command line view - please make it possible to get back! )
GlassFish 3 Integration
Well it is a real pleasure to work with a web server that loads a war in half a second. I use hardly any of the J2EE features so it's a good thing those don't get loaded.
I tried the HTTP Server Monitor and that could be useful if it were more informative. In RESTful development it is really important to know the response codes 303, etc... so that one can follow the conversations between the client and the server. Currently that piece is trying to tie things up too much into baby steps: just as with the File Explorer there should be an easy UI into a feature and an advanced mode. I'd like to see the full pure unadulterated content going over the wire, highligted perhaps to make it easy to find things. (It turns out this has been filed as feature request 36706)
GlassFish integration really helped me get my develop and deploy my foaf+ssl service.
User Interface
As you can see from the main picture the NetBeans UI seems to be going through a big transformation. Gone are some of the huge fat aqua buttons. The pieces are layed out in similar ways as in NB6.5, but this is a lot more elegant. A welcome change.
There is a very useful search bar at the top right of NB 7 now, which prooved to be very helpful at finding documentation, maven repositories, and many other things. It prooved to be very helpful a couple of times in my project.
One simple thing I would like would be to have a menu on each of the windows to open a file in its default OS viewer. So when I edit HTML which is a pleasure to do in NB, I would like to be able to quickly view that code in Firefox, Safari or Opera. Other XML files may have their default viewers, and so I think this is quite generalisable. In any case it should be easy to copy the file path of an open window, as one often has to do external processing of it. For files that are located on the internet, it would be great to be able to get their URL. This would help when chatting to people about source code one is working on for example.
Other
- There are IntelliJ key bindings now. I really needed this a year or so ago, as I was switching between the IDEs. I have forgotten them now so it's less of a problem for me, but it will be very important for people switching between the IDEs.
- I think this was part of NB6, but being able to browse the local history of source code is a really great feature. (I noticed that this does not diff html or xml for the moment)
- Geertjan's Wicket integration Module partly works on this daily build. You may require starting of with NB7 milestone 1 to get going as it seemed still to be fully functional there.
- I find this daily build needs restarting every day, as it seems to slow down after a while, perhaps using up a lot of memory.
Where is this going
Well those are the features that really stood out for me. And I am very happy to work with NB now.
I still think that the next big step, for NB 8 perhaps, should be the webification of the IDE. I think there is a huge amount to gain by applying Web Architecture principles to an IDE, and then the Net in NetBeans would fully reveal it's meaning.
Posted at 05:12PM Feb 13, 2009 [permalink/trackback] by Henry Story in Java | Comments[11]
Note on comments:
- I know the forms below are a little small. We have asked for years for this to be changed, but I don't think it's going to happen soon. In Apple's Safari you can resize the entry box with you mouse. For people using other browsers click on this javascript link, that should allow you to resize your form.
- Comments are moderated, so they will take a little time to appear. Currently moderation means I have to read them personally. Hopefully with OpenId deployment, this will become more automated.
- HTML markup no longer works here, due to some decision made somewhere. Sorry about that.
- If you are having trouble posting, it may be that you need javascript to be enabled. I don't think javascript should be needed for submitting a form, but that's the way it is here.
- Check your comments by using the preview button...


Regarding the browsing of local source and Javadoc, I think you just needed to right-click on the Libraries node of your Maven project and ask to download them. It also shows you which dependencies already have local source and/or Javadoc (tool tip explains icons).
Tip regarding source associations for Maven projects: if you have the dependency open as a source project, and the version matches the requested version in the depending project, then the IDE should use the "live" sources. This is generally what you want: if you depend on a release version, the release is "frozen" so you just see sources from its ZIP; but if you are actively working on fixes in the library and use a SNAPSHOT dependency from your main project, then debugging etc. will use the lib's source project automatically.
The file chooser you show is actually an add-on module called Quick File Chooser which has been available for many NB releases. I wrote it because I too am a heavy keyboard user and hated using Swing's standard JFileChooser UI. It does not try to look like any particular platform's native chooser; more modeled after the Emacs UI. I guess I could try to push it onto the Stable update center, though it has a few issues that would need to be solved first.
Posted by Jesse Glick on February 13, 2009 at 06:49 PM CET #
Thanks for the tips Jesse.
And please do push in your Quick File Chooser! Whatever bugs it has, can't be as bad as the usability problems of JFileChooser :-)
Posted by Henry Story on February 13, 2009 at 06:56 PM CET #
you forgot the management of projects in ftp / sftp, which is great!!
Posted by markux on February 14, 2009 at 10:23 AM CET #
Maven2 is a great addtion, to bad NB still doesn't provide OSGi integration.
Posted by soho_samurai on February 15, 2009 at 12:34 PM CET #
Your site suffers a typical "lucida" font problem which according to a couple of blogs can be easily fixed.
Removing Lucida (Lucida Grande is ok) did it for me.
Posted by PierreR on February 15, 2009 at 03:00 PM CET #
PierreR,
I removed "Lucida Grande",lucida
from the css. Does this help?
What Operating system were you on where this caused problems?
Posted by Henry Story on February 15, 2009 at 03:42 PM CET #
FYI, I have fixed all reported bugs in the Quick File Chooser module and published it on the Plugin Portal:
http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=16203
If there is sufficient positive feedback I could try to put it on the Beta update center for NetBeans 6.5.
Posted by Jesse Glick on February 19, 2009 at 11:06 PM CET #
Posted by Juozas devBlog on February 20, 2009 at 08:54 PM CET #
Henry, have you tested Neo4j+RDF components? Should be easy to put into the pom.xml too. Would be interesting hear your feedback ...
www.neo4j.org
http://components.neo4j.org/
Posted by Peter Neubauer on February 23, 2009 at 12:33 PM CET #
Posted by Juozas devBlog on February 24, 2009 at 11:46 AM CET #
Ultimately, I am thinking that the web would BE the programming engine and IDE, much like http://markorodriguez.com/Research_files/nenofhat.pdf
/peter
Posted by Peter Neubauer on February 24, 2009 at 12:47 PM CET #