Huh? I wasn’t attempting to make any contentious statements, guys, just trying to offer a potential explanation of why cas’s demo has had comparitively little wide recognition. Perhaps statements such as “playing devil’s advocate” were not obvious enough for you?
erikd:
“I disagree.
You are only making things vague (you have to support 3 platforms instead of one to call it java?).”
That’s what is happening RIGHT NOW with Java, though I’m sure Sun isn’t exactly overjoyed at having to be the main suppliers of a Windows-JVM and a Linux-JVM, with all the associated support costs of keeping them up-to-date.
I’m not making any decisions here - I’m just describing the way the world is. Of course SOMEONE has to support 3 platforms for Java. The theory of a BCE was that once one BCE existed for a platform, everyone else had to do zero support for that platform; this is the point of bytecode. If you are going to bypass a JVM e.g. by using JNI, then the “free” support you were getting on the various hardware platforms vanishes, and you need to provide it yourself.
In theory, as soon as a JVM existed for each main platform, Sun never had to develop for other platforms, they could just keep improving the Solaris JVM. It hasn’t quite worked out that way. I’m sure we all wish it HAD worked out as intended; perhaps if bytecode had been more extensible, we wouldn’t be in this mess :).
erikd:
“For me, java doesn’t have to be everything but native.”
Fine; many disagree with you. Partly, I expect, because if you throw away the bytecode-definition of Java, all you are left with is a variant of C++, which loses so much (STL, for instance) that on the whole it’s probably not an improvement. Bear in mind that Java is not even a fully OO language; without the bytecode, java is hugely weakened as a proposition.
erikd:
“Java is not only about platform independance.”
No-one said it is. But currently Java IS three things, and you cannot just arbitrarily decide to ignore any of the three - they are declared indivisible by Sun. You are attempting to re-define Java as being just 2/3 of what it actually is. Sun could solve this by defining the three concepts as three different names - perhaps “JavaCode, JavaLang, and JavaLib” - (this has been suggested before many times since the inception of Java).
erikd:
“Also, ‘a native dll scripted by java’ is just crap as I believe the DLL is only the ogl binding.”
OK, so to help me understand, please explain where all the pretty graphics are coming from…
Perhaps you don’t understand what “scripted” means? It means that the java is controlling other code, in a different language to the other code. Where is all the “hard” work of drawing those graphics coming from? Is it java code? (my assumption was no - perhaps I am wrong) Is it OpenGL hardware? (my assumption was yes - in which case, the Java code is just scripting layered upon system-level code (i.e. a C++/ASM DLL that is actually doing system-level tasks, such as interfacing to hardware).
Similarly, like many programmers (I had thought all, until now - you clearly don’t look at things the same way), I would never look at an OpenGL demo coded in C++ and go “Wow! C++ can do such cool stuff!” - because in that case C++ is the scripting language, and it is still an OpenGL demo that you’re looking at.
I’ve certainly never met anyone in the games industry who didn’t differentiate between C++ and OpenGL. I can almost guarantee that if you show the demo to a mainstream studio or publisher, they won’t go “Oh wow, java really CAN do great stuff” - they’ll go “that’s just OpenGL…so what can Java do?”.
Or, to put it yet ANOTHER way, I expect you could probably do that demo in Perl (I know you could do it in Python). This does not make Perl look good - it just shows that you can access other compiled libraries from within perl.
Come on guys, can’t we all just get along? ;D