Open sourcing Java and its effect in games

[quote]Even debian (now I have some significant experience with it) is screwed up in many ways, and has such frustrating stupidity as no JVM simply because of people who don’t know how to read a legal document :(. Not that they are trivial to read, but they aren’t that hard, and the one in question is pretty short - AND THEY COULD HAVE ASKED SUN (which is what I did when I had almost the same questions…and I got the answers I needed. Go and buy Game Programming Gems 4 for proof ;)).
[/quote]
Again, I don’t know what you’re talking about, but I’m glad you can teach these stupid people how to read a legal document. Debian is the distribution, for which legal problem are a top priority. It’s almost unbelievable how stupid these guys are.

(As an unimportant side note I have to add that Debian actually includes some JVMs.)

When comparing a single application from a domain that is now more than 30 years old and has suffered no significant innovations in the last 10 years … to a systems programming language, then yes - I am entirely serious.
[/quote]
re: Debian, they have misunderstood some fairly simple language in a small part of a license doc which - as I pointed out - they could have asked Sun for an explanation and then quickly and easily confirmed this for themselves with one single trip to the library (to check the legal meanings and be sure Sun wasn’t lying to them - although even if Sun lied, that in itself would be some protection, assuming they retained the email). Most mainstream legal documents can be understood by anyone - the great secret is that lawyers work their butts off trying to make sure no-one realises this. It just takes personal effort akin to doing personal accounts at year-end - it’s boring and gives you a headache, but it’s not that hard.

Or…maybe they didn’t. The Debian/Java FAQ says they did, but their documentation is so bad (read: nonexistent in most cases) that they could well know the truth by now but just not have got around to telling anyone.

There are other JVM’s but on the whole they tend to be crap (they were last time I looked, which wasn’t that long ago - of course, things could have changed a lot in a short time and I may already be wrong). Anything coming from GNU. Blackdown has historically been the best in my own experience, and offered some good performance, but also never been as good as Sun’s JVM (which, in some areas, isn’t saying much). Look at the GPL stuff and the status quo is far worse - find me a GPL JVM that does 1.4, PLEASE. 1.4 has now been available (gold or beta) for well over 3 years, and we’re already seeing “1.5 required” java apps - what hope is there for an OS that only comes with 1.2 (and 1.3 if you’re lucky) JVM’s? It’s a curse to all us java developers, truly - I really don’t have the time to be wasted by “blah blah your game doesn’t work” only to discover the moron is living in the last century e.g. running Kaffe (currently @ 1.1.4 !!!).

I say “moron” because that’s what you’re going to think of them after they’ve wasted your time when you finally realise what JVM they’re running (it’s like complaining to the author that a game won’t run on your computer and eventually confessing you’re running a 33Mhz 486). Of course, it’s (probably) not the user’s fault: it’s the fault of the people who installed a waste-of-time JVM for them as part of the OS install and gave the user the impression that it was at least reasonably up-to-date.

[quote]When comparing a single application from a domain that is now more than 30 years old and has suffered no significant innovations in the last 10 years … to a systems programming language, then yes - I am entirely serious.
[/quote]
Open Office is one of the largest Open Source projects and not a “tiny little application”. Period.

[quote]Look at the GPL stuff and the status quo is far worse - find me a GPL JVM that does 1.4, PLEASE.
[/quote]
Such a JVM doesn’t exist yet. The latest classpath has reached 60% compatibility with JDK 1.4. For some purposes this can be sufficient, but it’s still a very long way.

I can see blahblah’s point. Comparing a desktop application like OO.o with a programming language/platform you would tend to assume that from a complexity point of view, the language would win hands down. But I think he’s also underrating the accomplishments of the OO.o team somewhat (I quote):

The fact that office apps have undergone no significant innovation in a decade does not necessarily reduce or limit the complexity of a development project to create a new office suite. Yes it does provide you with a working spec or prototype, but I’m sure you must be aware blahblah – if I can call you by your first name… ;D – this doesn’t automatically mean the development is going to be any more straightforward or make the project any the less complex.

I think a comparison between the complexity ‘rating’ of OO.o and Java could only be made by someone who was reasonably intimate with both codebases, with an LOC comparison only a minimal part of the final result. Actually, I’d be quite interested in seeing such a comparison (because my gut feeling also tells me that Java is the more complicated of the two)… but I think we’re going a bit off topic.

One question, I note you’ve avoided answering blahblah is the godzilla-sized problems you’ve mentioned…?

Another thought on this. (I’m not picking on you, by the way blahblah, it’s just you’re raising the points I’m interested in addressing).

I could see your point if we were talking about starting Java from scratch as a completely new open source project X many years ago before there even was a Java (how many are we up to now? 10?).
But taking an existing system and open sourcing it, while having it’s own difficulties, needn’t be the nightmare you ascribe to it.
Assuming the JCP stays in charge, assuming the TCK for each package is under the control of the JCP and nothing makes it into a new iteration without going through the JCP first, I fail to see the problem. Java can be split up into its major packages, the lead development of which would foreseeable be under the control of different companies (core j2se under Sun, J2EE under IBM, xml stuff under Apache maybe, and so on). Since each team has a smaller codebase that they’re in charge of, controlling submissions isn’t as bigger a deal as it might be if there was one team in charge of the whole damn kit and kaboodle. Nothing goes into a new version of Java without being compatibility tested by a team under the remit of the JCP.
(And yes I know I’m simplifying a lot ;D ).

I can see a couple of those ‘little benefits’ you talk about right off. Sun gets to share the costs of development. For those of us who are lucky enough not to worry about compatibility issues, we get to download a ‘nightly’ for the latest and greatest bug fixes and enhancements and can compile our own version of the JVM/SDK (I’d be happy to do this cause I do it already with my OS… gentoo).
Games devs can hack their own version of the VM, Cas can add his structs if he wants and even submit it as a patch project to be used by those who want the facility and want to compile their own VM.

That’s just off the top of my head.

You would also fail to add anything that we don’t already have.

[quote]Also the number of manyears
[/quote]
(italics by me now)
Ah, I suppose in English you’ve to write two words for that? (In my mother language it’s one word). So it should read “man years”, not “many ears”.
I guess you’ve understand it anyway.
Many ears, that’s funny. Somehow at least.

Well at the moment it’s rather difficult for me to download a nightly build, or do a CVS update, of Java and compile it on my own machine (or even a major version for that matter)… unless I’ve missed something.

Is core java (just for example) contributed to by anyone other than Sun developers? Last I heard that was a no, but probably I’m wrong (or going senile). Basically I’m talking about a shift from development predominately by a single company, to lead development by a single company, but contribution by other companies and the community. I realise external contribution is possible at the moment, but I don’t believe it’s straightforward, nor is it the norm, other than in extensions.

With those restrictions, would it still qualify as “Open Source”?

Please could anyone enlighten me what is so bad about making a opensource/free JVM/JRE implementation? I do not care the language itself to be free and I think that having such a JVM is what most people want.

The argument of forking can often heard, although stuff like the generics compiler (pizza?), AspectJ and a whole bunch of precompilers exist.
What is the problem with everyone doing his specialized version of Java? Does anycone care if I download kaffe change some opcodes and compile a few classes with that? Probably not - and that is what you ‘feared of forking’ people should do.

Proprietary JVM implementations can peacefully co-exist with free/opensource ones. I really like the idea of a free implementation but: If it claims to be compatible, fast and and it fails to do so there is no problem for me to use Sun’s implementation or IBM’s.

Maybe it is Sun’s fear that a free JVM implementation is becoming more attractive than theirs which would finally lower their reputation as the Java-creators. Has anyone of you tried to have multiple JVMs installed? Can you switch easily between them? Is it possible to install Java3D/ without hassles? Do you need administrative access to do so?
These a some points current Sun JVMs fail to do right …

And now my favorite topic: Java wants to be platform independent. Which is obviously only true for the well-known 3 major OSes and their 1-2 major architectures.
You could be argueing that there is no market for such a small group of user! Fine I say. Lets have an open-source JVM and people will fix the issue on their own - if they want so.


Some final thoughts: It may be true that kaffe sucks because it is supporting Java 1.1.4 only BUT I would never dare to affront people who sacrifice their lifetime to do a favor to their fellow men!

Hmm. Good question. Not sure I’m qualified to answer it, but here’s an attempt: if I download the Apache web server code, change it slightly (creating a fork), can I call my fork Apache?

The answer is no (I believe, based on my reading of the license). Which doesn’t make it any the less “Open Source”.

And that’s not a hop, skip and a jump from controlling the Java brand and requiring anyone who wants to distribute their own JVM (as a Java VM rather than embedded in their own product… e.g. in a game) from doing so unless they’ve satisfied the TCK requirements.

[quote]Maybe it is Sun’s fear that a free JVM implementation is becoming more attractive than theirs which would finally lower their reputation as the Java-creators. Has anyone of you tried to have multiple JVMs installed? Can you switch easily between them?
[/quote]
Yes, I have several ones (seven?) installed.

[quote]Is it possible to install Java3D/ without hassles? Do you need administrative access to do so?
These a some points current Sun JVMs fail to do right …
[/quote]
If you need administrative access depends on where you installed it. If I install it in my home dir I don’t need administrative access.

[quote]Some final thoughts: It may be true that kaffe sucks because it is supporting Java 1.1.4 only BUT I would never dare to affront people who sacrifice their lifetime to do a favor to their fellow men!
[/quote]
1.1.4 is just the current version number of kaffe. Btw. 1.1.5 can be expected soon.

In my opinion yes.

Yes that much is true - we only have access to the source for releases. Good point.

[quote]Is core java (just for example) contributed to by anyone other than Sun developers?
[/quote]
I don’t suspect there is a significant amount of contributions from anyone other than Sun licensees. (E.g. we know that Apple has contributed technology such as the shared object store that appears in 1.5.) But nothing stops anyone from contributing a patch along with their bug report or suggesting alternative algorithms in any other way. Leaving the decision to Sun in terms of what gets integrated.

It seems to be that though Sun has not ‘Opened’ their source in an accepted OpenSource way, the only real barrier to a free and Open implementation is perhaps the cost of the compatibility tests… which of course costs Sun money to validate…so I see no good reason why they shouldn’t be allowed to charge a reasonable fee to validate a potential JRE to get the Java brand.
The GNU project is slowly coming along, which is great… hopefully one day it will work well enough to actually use. Why is it that Kaffe didn’t keep up to date then?
The major whining that seems to be coming from the OS community is that Sun doesn’t give them free stuff - which in a general sense is complete crap, since Sun has given quite a bit to the OS community - just not Java.

The trouble is that some prominent Open Source activitists seem to use a rather restrictive definition.

sorry for parroting someone else but the intention of the sentence is not dependent on what version number kaffe (or any other incomplete free/opensource project) is.

[quote] The major whining that seems to be coming from the OS community is that Sun doesn’t give them free stuff …
[/quote]
Uhm no, I do not think that this is true. Without wanting to sound picky but it is primary the free software community ‘whining’ for a free implementation - their reasons for that are simple and publicly accessible. I think you all know where to look for that … if certain people call that webspace enemy territory its their problem.

btw:
I do not know whether this is a typical German attitude but I dislike it when other people’s hard work is not referred to with respect. click here and call these people whining: http://savannah.gnu.org/project/memberlist.php?group_id=85
I think they are actually implementing …


And now one scary question:

What do you like/fear more: A free implementation of a CLR or a free JVM?

(btw. just checked: mono’s licenses [X11, LGPL, GPL] are all considered free)

There is only one definition of Open Source, but of course there can still be different point of views. AFAIK the definition doesn’t say anything about how a project should be organized, so Sun can continue the JCP, if they like.

Btw, if anyone is interested:
http://www.opensource.org/docs/definition.php

[quote]http://www.opensource.org/docs/definition.php
[/quote]
I think this is an important point from that definition doc, in the light of worries of forking:
“Accordingly, an open-source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, ‘unofficial’ changes can be made available but readily distinguished from the base source.”

Neither do I. And I also don’t see why open sourcing Java makes any difference to this, assuming the ‘brand’ & TCK are still under Sun’s control (which I imagine they would be).

This scares the **** out of me as a java developer, because my stress levels go through the roof even just thinking about that possibility. Support is hard enough to fund on many projects at it is - throw into the equation that a lot of your uses will be seduced (or, more usually, tricked - the e.g. the FSF and GNU people are certainly not paragons of virtue; c.f. ESR’s utter BS open letters to sun) by crap like the current open source jvm’s.

As long as you can’t see that, I agree it’s hard to see what the problem is - why do people like me fear it? - but you’re talking about taking us back to 1980, and removing one of the top three reasons I develop in Java:

There is only one platform

Think about that. Hard. Even now, this is not perfect - x-platform issues rear their ugly head occasionally (for me, in particular, the first 3 versions of Sun’s NIO were radically different on win32 and linux). But, when you start having a pantheon of JVM’s, it’s just the same as coding in C and all the nightmares return.

You cannot say “well, only support the Sun one then” because the reality (sadly) is that you have to follow your customers: if 30% of your target market are using some GNU JVM that turns out to be fatally broken in some way, you have to support them or write off 30% of your custom (which may well be enough to remove your profit margin entirely).