normen said:
I dont exactly think that its a "flaw" to write the renderer only with lwjgl in mind, the flaw would be integrating JOGL after you did :P. As with the physics, supporting a wide range of subsystems will inevitably reduce the potential power of the end system because its the "lowest common denominator" of the subsystems. lwjgl for example supports OpenCL now, if we decided to jump on that train in the future and JOGL does not support it, we're forced to not include the feature just because we used JOGL in the first place (to do something that is working just as well with lwjgl).
OpenCL is a very bad example as JOGL had got a support of JOCL far before LWJGL. JOCL uses GlueGen like JOGL and JOAL. The "lowest common denominator" of the subsystems is very close to the subsystems themselves especially with JOGL 2 (that has now its own windowing system called NEWT/NativeWindow). LWJGL and JogAmp are now extremely similar except that the OpenAL binding of LWJGL is better maintained than JOAL, JogAmp has a minimal input system (in NEWT) whereas LWJGL relies on JInput.
Bad news: GL.isExtensionAvailable seems to have been broken, I'm going to write a bug report about that.