JOGL vs LWJGL and the best way to start learning

And so what? The set of APIs composing JogAmp is mature, the former Java bindings for OpenGL merged into JOGL (Jungle by K.B. Russell, GL4Java by Sven, …) were born between the end of the nineties and the beginning of this century. This topic is becoming useless, it’s a sterile debate. I wrote that JOGL is much more than a “simple” wrapper but I still think there is no need of 2 bindings for OpenCL, OpenAL, OpenGL and OpenGL-ES. Actually there are even more than 2 bindings for OpenCL.

princec, just port NEWT if you want, it is an excellent idea, it will only show how much I’m right, there is no need of 2 distinct OpenGL “wrappers”. However, if you do so, I hope you will be grateful enough to stop disparaging JogAmp.

Goddamnit I’m out of popcorn… ;D

Well to add my 2 cents: JOGL is complicated and has an ugly OO design which doesn’t fit OpenGL. LWJGL is simple, streamlined, and fully static to imitate proper OpenGL.

I think the fact that there are two OpenGL bindings has actually an advantage.

First, we have to acknowledge that LWJGL was there first, so it is ironic to hear the JogAmp camp saying there should not be two competing libraries. Secondly, we have to remember how Sun treated JOGL: they ditched it, and left it unsupported. During that time, the LWJGL camp kept developing and maintaining its own library, with bug-fixes and support for the latest extension. The feature gap between LWJGL and JOGL kept steadily growing, to the point where people said ‘JOGL is dead’, which was hotly debated. Fortunately new volunteers put major effort into JOGL, to the point were its exposed functionality (as a binding) was back on par with LWJGL.

Competition is something we need: when one library falls behind, the other library can take over, being a shining example. This will then most likely lead to a catch up by new developers in whichever library is falling behind. Pride is a huge motivating factor. When both libraries would be merged, the incentive to ‘be better than the competition’ vanishes, which leads to libraries entering maintainance mode and eventually becoming dormant.

The fact that JOGL supports a windowing system like NEWT, is one of the reasons that LWJGL 3.0 will move into that direction. Each library has its strengths and weaknesses, which change over time, but in the end drive both libraries forward.

I just figured it out! 8) JOGL stands for:
Java OpenGL.
LWJGL is:
Light Weight Java Game Library.
So, according to this information, LWJGL is probably the best. ;D

It’s subjective.

JOGL is the result of the merge of several bindings probably older than its main competitor and I’m not the JogAmp camp, I speak for myself and I know Sven and Xerxes probably disagrees with me. Anyway, I disapprove Sun’s behavior too. Keep in mind JogAmp Foundation != Sun & Oracle. We don’t have to pay for Oracle’s mistakes. This conflicts belong to the past and I have never been employed by Sun.

You forget the real facts, the development and the maintenance of JOGL has never been stopped even when Sun/Oracle left the boat. Please respect Sven’s efforts to keep JOGL alive.

It’s completely wrong, there were some FUD campaigns lead by several users of its main competitor even before Oracle stopped supporting JOGL officially. The development of JOGL has never been stopped, never. I even saw several people claiming that JOGL supported only OpenGL 2 on StackOverflow whereas we already supported OpenGL 4. There were only a very few problems, JOGL moved from java.dev.net to Kenai and then to JogAmp.org, there were some confusions and some users of its main competitor exploited this situation to disparage our APIs everywhere.

I don’t need competition, some of our contributors have never just given a try to its main competitor and they are not interested in it. Please don’t speak for the JogAmp camp, we have our own plan, NEWT has not been designed as an answer to the native windowing toolkit of its main competitor, it has been made because we really needed a cross-platform windowing toolkit that could work without AWT even under Android and the design of JOGL already contained some strong indications of this project even in JOGL 1. Maybe our main competitor needs a competitor not to become dormant but I am personally 100% sure the JogAmp camp doesn’t need a competitor and as I’m the guy who has ported most of major engines to JOGL 2.0, I can say that this time could have been used to implement features in some major scenegraphs rather than replacing glGet* by gl.glGet*, fixing threading problems, … This is a pure waste of time and if you’re right about the absolute need of competition for our main competitor, it’s a real weakness and the JogAmp camp has good chances to keep maintained and actively developed longer. JOGL is already more than a wrapper but it won’t become a scenegraph, it’s not our aim. The new features that need to be implemented will rather mostly be in the major scenegraphs.

I’ll repeat my statement, for clearity:

[quote=“Riven,post:63,topic:39904”]
Please note that I said the exact opposite of how you interpreted it. I’ll try to make it abundantly clear:
I didn’t say: JOGL copied LWJGL with its windowing toolkit
I did said: LWJGL is about to make a windowing toolkit like the one in JOGL

Again, for clearity:

I pointed out there was a hickup on JOGLs development (JOGL 1.1.x was abandoned, JOGL 2.0.x was in alpha for a long time). Maybe my view will seem less biased when I say that the LWJGL website had significant downtime not too long ago, and people had the chance to try out its main competitor in the meantime. This isn’t biased, this is reality, and I said it solely because it shows the risk of having one library only. If one is neglected (by powers out of your control, like a business pulling the plug), it is good to have a library to fall back on - until the former library gets up to speed again.

I’m not saying either LWJGL or JogAmp explicitly need a competitor, I’m saying that this is how people, in general, work or get motivated.

You might want a new fancy smartphone, because everybody else has one, or you want to be the first, and show it off to everybody. This, by definition, is part of our competing nature - and we (as humans) go to great lengths to get ahead this way. Similarly, competition drives the economy, as it’s the main driving force behind effciency and innovation.

The competition has been excellent as a driving force for the two APIs, and the choice of API styles a great boon. If the existence of one or the other library actually had any other effect on the other then I’d have something to say about it, but it’s not like the GNOME vs KDE wars which served only to hobble desktop linux for 10 years; it’s a purely independent decision one can make when starting out making a game library. That said, Juliens efforts at porting things from LWJGL to JogAmp simply defy understanding, belief, or rational analysis. It’s like me porting TUER to LWJGL, which I jokingly said I’d do. It was mockery. It is an utterly fuckwitted thing to do because it achieves nothing. Zero. Nada.

Cas :slight_smile:

Such ports can at least serve as benchmarks, that much is useful.

I just meant that JOGL team doesn’t need competition as we already do not make our plans by thinking about its main competitor.

But JOGL has never been abandoned anyway, not even during a short time.

JogAmp is not just a fallback and its APIs will never die. I will maintain them myself if necessary. This hickup was only a minor problem of governance, some people intentionally overestimated it to feed the FUD monster.

This is not how we get motivated. Sven and Xerxes are neither aggressive nor unfriendly unlike me. Xerxes likes tinkering his nice gadgets, his N9, his Raspberry Pi, his panda board, … I’m communist, I’m sure I don’t need competition, I can live without it. All people I know and who contribute to our ecosystem don’t really mind the main competitor.

It has nothing to do with nature, it is rather a question of culture. I do what I find fair and in my humble opinion, maintaining two very similar OpenGL “wrappers” for Java is inefficient.

It hasn’t been a driving force for the JogAmp team.

You’re completely wrong about me, I already explained why I chose JOGL, it was the result of a rational choice, I had tried Jake 2 which supported the both APIs at that time… I ported Ardor3D, JMonkeyEngine, Xith3D, Java3D, NiftyGUI, … because people who have chosen JogAmp need to have a rich ecosystem around it.