Command-Line Switches Are All Well and Good, But...

As an addendum to my blog entry about the NetBeans options dialog...

Moving the obscure settings to command-line switches seems like a good idea, and is an acceptable way of cleaning up any product’s UI. After all, the people who want to make use of those obscure, "very advanced" settings should by their nature be quite comfortable playing around on the command-line.

But a major issue I have with command-line switches is that they tend to be even more obscure than the feature they’re configuring. Finding out which arcane abbrvtn. you need to type at the command-line can be like searching through a haystack for the wisp of hay with the microdot on it giving obtuse clues as to where the needle is located.

Often, you might not even know that an aspect of the product can be configured at all, because the command-line switch to do it isn’t documented anywhere – or if it is, it’s probably hidden away in an off-handed comment on a message forum posted by one of the IDE developers five years ago. "Ad-hoc" is one way of describing this form of "documentation"...

Another option would be to have a catch-all "obscure settings" dialog similar to the about:config page in Firefox. At least this would bring all of the settings together in one, "self-documenting" screen. Except, of course, this would be remarkably similar to the old, quite hideous NetBeans options dialog which we’re all so glad to see the back of.

If the NetBeans team can gather together all of their command-line arguments and place them on one page (a different page for each release of the product), with all the switches documented and explained, with at least one example for each, they would save some otherwise despondent programmers a lot of time and frustration!

(Bootnote: There's this configuration FAQ, but it's by no means an exhaustive list - searching through the NB source code reveals a lot more "ad-hoc" startup parameters than are listed here).

About the Author

Matt Stephens is a senior architect, programmer and project leader based in Central London. He co-wrote Agile Development with ICONIX Process, Extreme Programming Refactored, and Use Case Driven Object Modeling with UML - Theory and Practice.