[quote]You could argue that its “stupid” of these developers to take this attitude, but then people are people after all (and calling them stupid rarely helps). You could also argue that if before SUN had developed JOGL, JOAL and JInput they could have talked to the existing developers and got some useful input and potentially have gained some highly qualified community developers on the way.
[/quote]
I’ve been away for a while (just moved to SF from NYC) so I haven’t been following the forums as closely as I should. As one of the original developers of the “Sun” APIs (namely JOAL) I’d like to clear some things up. As far as JOAL is concerned, my first inclination was to simply use the LWJGL OpenAL bindings, and, in fact, I ended up using LWJGL as a model for JOAL. The only reason why we didn’t simply republish the LWJGL APIs was that they expose references to pointers, a capital offense punishable by summary beheading here at Sun. IIRC, Cas mentioned moving to ByteBuffers in a future version of LWJGL. If that had been the case a few months ago, it would have saved me quite a bit of work 
OpenGL was a bigger issue, as there are a number of other, non-game, graphics applications looking at using OpenGL, so the pointer issue along with the lack of an integration path with AWT/Swing led us to lean in favor of Jungle (the API that became JOGL) which had also been in development for the last couple of years. While there are a number of issues with JOGL that are the source of both external and internal debate, we are working to resolve these in a way that will satisfy everyone’s needs.
I am personally less familiar with the JXInput/JInput story, but I do know that the technology behind JInput had been around for a while (it was part of JSR-134)
Having said all that, I would personally like to see the net.java.games APIs and the LWJGL APIs ultimately converge, where the lowest level bindings are as thin as humanly (and “Java-legally”) possible (a’ la LWJGL without the pointer refs) with AWT/Swing integration and multithreading support layered on top of it. While I think competition is a good thing, it’s much more effective (and less frustrating) when it happens at the implementation level and not the interface level.