I ♡ NetBeans 6.7 !

picture of NetBeans 7 Daily build 200902061401

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: file explorer

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.

Comments:

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 10:49 AM 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 10:56 AM CET #

you forgot the management of projects in ftp / sftp, which is great!!

Posted by markux on February 14, 2009 at 02: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 04:34 AM 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 07:00 AM 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 07:42 AM 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 03:06 PM CET #

[Trackback] NetBeans 7.0 Milestone 1 was released about two months ago, and final version should reach us (maybe) April or May. Because with previous, 6.5, version I had some problems, I decided to try new version. Compared to NetBeans 6.5 (version 20081110) I fin...

Posted by Juozas devBlog on February 20, 2009 at 12: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 04:33 AM CET #

[Trackback] NetBeans 7.0 Milestone 1 was released about two months ago, and final version should reach us (maybe) April or May. Because with previous, 6.5, version I had some problems, I decided to try new version. Compared to NetBeans 6.5 (version 20081110) I fin...

Posted by Juozas devBlog on February 24, 2009 at 03: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 04:47 AM CET #

Post a Comment:
Comments are closed for this entry.
About

bblfish

Search

Archives
« April 2014
MonTueWedThuFriSatSun
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today