ethanthescribe recommended NetBeans, so I went looking for it. The latest version on their website is 7.1.2, and Ubuntu's Software Centre has 7.0.1. Close enough, so to keep the playing field level I installed the latter.
Run it. Weirdly, it doesn't show up in the Alt-Tab task order for some reason, or as an active application in the dock. Odd, and potentially aggravating, because it indicates a lack of integration with Ubuntu Unity. I choose New Project, and select Java Desktop Application. There was something on the splash page about installing plugins, which presumably includes support for more modern, feature-rich languages (you know -- COBOL, ALGOL, Fortran 77, or anything else that's better than Java, ie anything at all) but we'll ignore that for now.
And here's a wrinkle: "Disclaimer. Note that JSR-296 (Swing Application Framework) is no longer developed and will not become part of the official Java Development Kit as was originally planned. You can still use the Swing Application Framework library as it is, but no further development is expected.
If you are looking for a Swing-based application framework, consider using the NetBeans Platform [...]" OK, that's weird. I follow the link and it basically just says "Choose NetBeans Modules | NetBeans Platform Application instead of Java | Java Desktop Application". Okey-dokey, weird and clumsy, but that's bureacracy for you. I do that.
Typing in Captain's Log as the Project Name is still legal, but the auto-updated fields on that form make it clear that it's the wrong choice to include spaces and apostrophes, in a subtle but efficient way that saves me some aggravation. Points vs MonoDevelop already! I click Finish and we're apparently ready to roll.
Now for the compile-nothing test. This is the one that Lazarus failed. It compiles, and claims to run, but there's no default form so nothing appears on screen. Right, I can see that - not every Java app is a windowing app, so they don't assume. I right click on the tree -- unlike MonoDevelop, NetBeans appears to understand about 1990s-era user interface guidelines, so that's another win right there -- and am faced with two possibilities under the New submenu: JFrame Form or JPanel Form. JFrame Form has a picture of what looks like a window, with titlebar and widgets, so I pick that.
After typing in a name and clicking the appropriate button, I have a vaguely promising rectangle. I don't know if it's going to pop up as the main window, but let's try running again... and it won't, because there are errors. Apparently, some auto-generated code refers to some stuff that doesn't exist. Looks like the monkeys who set up the Ubuntu package didn't work out the dependencies. Typical.
OK, let's try that other option, JPanel Form. Again, it's referring to non-existent code. What kind of auto-generator doesn't check if what it's generating is legal? Weird.
All right, I know: if I spent the time to learn how this is all actually supposed to work, no doubt I'd work it out. But that's not the point of this test. I'm trying to do something relatively simple using techniques that were more or less functional in Visual Basic in about 1991, and perfected in Borland Delphi in 1995. Seventeen years later, Linux still can't manage a GUI "Hello World" application out of the box. That really is embarrassing.
So: open source. Stupid, or just malicious? I'm going with: lazy, insular and unmotivated. Open source software is written by people who are scratching their own itch. If you're writing software, you use the existing languages and tools. If you're used to them, you don't bother writing tools that are fundamentally different -- ie better -- for the same reason that Americans don't use the metric system: why throw away the personal investment of time and effort in learning a stupid system? It won't help you personally, only the people who come after, and without a salary to force you to work on it, you're not going to bother. So seventeen years after Delphi 1.0, we have a bunch of non-functional RAD IDEs and some "development environments" that are simply Not Good Enough. That's life.