Open sourcing Java and its effect in games

A good point. I’ve been using IBM’s JDK’s since 1997, and they’ve often spurred Sun to work harder at their own JVM. However, I question how much e.g. GNU’s JVM would ever spur Sun on - I doubt anyone at Sun would do anything but laugh at the suggestion that they might have the resources to show up Sun, who have full time salaried expert staff for this.

Of course, if Sun further cuts the number of java staff they employ, the landscape starts to undergo a seismic shift, and you could see me changing sides in this argument (the problems don’t go away, but if Sun stagnates their development, and IBM etc do too, then it’s a case of “the lesser of two evils”)

Those who’ve been around long enough will remember that someone at IBM (can’t remember who, I remember finding his page via the internal directories) used to host a page listing JVM’s for all platforms. I remember counting something in excess of 20 different platforms (including DOS and RiscOS, both of which I did some (limited) development for in java).

The fact that all these died out and were never resurrected seems to me a testament to the lack of demand and interest on non-major platforms; if no-one can commercially justify the cost of a thing, then you have to go to some length to prove it’s worth doing even as an opensource project (look at SF.net and see how many “intersting” os projects just died for lack of interest / input / effort / etc. What good do these do the world? Even the SF admins have started deleting old os-projects…)

If my changes to some VM scare you then you probably did not get the point or I was not clear enough. I wanted to say that since no one is interested in a deviation no one will notice or care. Someone said with an OS JVM princec can have his structs-supporting version but who cares about that when the majority is not interested in that. IMHO projects like classpath, kaffe and SableVM are trying to do their best to be compatible.

Compared to most sofware houses marketing adverts OS/free software projects are a little bit more honest:

  • “… but Sun controls the Java trademark, and has never endorsed Kaffe, so technically, Kaffe is not Java.”

  • “Kaffe is not the best Java virtual machine for developing Java applications, as it lacks much in the way of documentation, compatibility, …”
    (www.kaffe.org)

eh and look at this one: “Gilgul is a compatible extension of Java.”
(http://javalab.cs.uni-bonn.de/research/gilgul/)
what about your stress level? everything in the green?!? :slight_smile:

Well, everyone has to think and evaluate on his own: RMS’s comments about the Java trap or ESR’S open letter. A lot of ‘high-ranked’ people had to say something the last weeks (eg. Gosling, Schwartz, …) and all of that has to be judged. Actually I suppose we have more in common when talking about these guy’s utterances only.

[quote] I doubt anyone at Sun would do anything but laugh at the suggestion that they might have the resources to show up Sun, who have full time salaried expert staff for this.
[/quote]
There are two things inside I want to address:

  1. You mean Sun would laugh the same way MS classified Linux a toy?

  2. I doubt salary alone guarantees good software. What about Apache Tomcat? I don’t know who is actually paid in the ASF but I know that Tomcat has the hell of a good reputation - would you feel better if the opensource JVM would be given to the ASF for development? (I would :slight_smile: )


And now again to the platform stuff: I don’t know what the major JRE’s depend on (archicture details etc) and how complicate it would be to port them to new other architectures. Since the JRE 1.5 beta is available for a greater variety of OSes (or OS variants) and architectures (eg x86_64, sparc64) than any of the VMs before I suppose Sun has made their homework well. But thats not enough.
Why I dare to say that? Simple enough: gnome runs on more platforms.
“huh?” You might wonder what the gnome desktop has to do with Java and you are right I have not mentioned that until now: The gnome desktop is written in large parts in C.
As we all know who escaped C successfully to live in the world of fine interfaces, compatibility to the max and all that, C is a hell to maintain.
Such a large project as the gnome desktop is considering to write future parts of that project in a managed language. And now guess what is my favorite? And how could Java be that language if it does not run where the gnome desktop already does …

Oh and gnome is THE showcase project of the gnu and GPLed.

Relating to gnome I find this a paradoxon:

  • Sun is involved in gnome development (just check the network applet’s about box :slight_smile: )
  • Sun uses the gnome desktop for its own Linux distribution called JavaDesktopSystem
  • Ximian/Novell (who are involved in gnome too) plead for C# as the language of choice and Miguel de Icaza seems to be pretty sure that he can convince the gnome people to do so …

uhm what?
A gnome desktop using a CLR on Java Desktop made by Sun?

headcrash

java.lang.UnsupportedOperationException: Can’t think of that!
at java.util.prefs.FileSystemPreferences.removeNode(FileSystemPreferences.java:659)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at

Hmm. It doesn’t scare me. Primarily because I could (potentially) build a JVM with the latest versions of GCC + whatever other libs I’ve got on my box that are about 50 steps past the lowest common denominator Sun is building with, and undoubtedly see a performance improvement. Cool/geekness factor mod+1.

However I do see your point in regard to VMs running on customer machines that have been patched with some dodgy-ass version of Java. But your example is …somewhat… spurious if the ‘GNU JVM’ (or whatever) isn’t allowed to call itself Java unless it’s been TCK tested.

Developer: This software needs Java 1.7 to run.
Customer: It doesn’t work on my machine.
Developer: What version of Java are you using?
Customer: Ermmm… GNU NotJavaBecauseWe’reNotAllowedToCallItThatCauseWeChangedSomeStuff.
Developer (reaching for gun): start running…

You don’t necessarily have a pantheon of VMs just because it’s been open sourced. Actually let me rephrase: you might have a pantheon of VMs but they won’t all be allowed to call themselves Java.
And let’s face it, developers are the only ones who are going to bother to install a custom VM with weird patches. Standard consumers are going to download an official build and it’ll be business as usual. And if you’re developing for the normal market, you’re not going to use a patched VM anyway (unless you’re nuts).

I could see Enterprises using patched VMs. Probably using patches support clustering or some other technology that has been developed but not (yet) incorporated into the official version. And I see that whole idea working better in an open source java world.

…or a testament to the fact that they weren’t open source (?? correct me if I’m wrong. I do recall trying out the DOS VM at one point but I doubt it was source-based), weren’t updated often enough, so no one using those platforms felt motivated enough to use them…?

[quote]And let’s face it, developers are the only ones who are going to bother to install a custom VM with weird patches. Standard consumers are going to download an official build and it’ll be business as usual.
[/quote]
Just like they download and install a “Standard” version of Linux right now :)?

Let’s face it Sun’s Java has bugs… other JVMs that pass the compatibility tests will have bugs - likely different bugs. Already there are bugs in Apple’s 1.4 that they won’t fix on-purpose so that they are compatible with Sun’s bugs!

How many ‘users’ have IBM’s JRE installed? Multiple JREs are fine… but the more that there are the more important it becomes to control the JRE that you deploy your application with if reliability is a concern.

I think ultimately it would be in the best interest of Java developers if the JRE development remained focused on a small number of implementations. With a ‘standard’ version to measure against. I think me have that now. Open Source java exists already in the sense that the GNU project is Java that can’t call itself Java yet. The Open Source community can flock to that implementation and finish it off, make it rock… and I’m SURE they will be able to come up with the money to get it tested if they get it to a point where it would be practical to think that they would pass.

It’s “agree to disagree time”, because I don’t think a disparate project like Linux the OS (as opposed to Linux the kernel) compares to a Java the platform open source project – where compatibility would have to be proven in order to allow usage of the brand.

In Linux we had LSB (linux standard base) well after the fact. In OS Java we have TCK (and the JCP) before the fact.

Obviously you’re right though. If GNU classpath was completed we’d potentially have open source Java right now – I guess what we’re really arguing about is that the official Java implementation (i.e. Sun’s) along with HotSpot VM and so on, be made open source. I realise that there are numerous issues on that front (ala McNeilly’s “we’ll do it when IBM opens DB2” comment)…

…however it’s hard not to get starry eyed over the potential benefits to me personally (and of course, I am the centre of the universe ;D )

On re-reading what I wrote, I think it sounds harsher than intended (perhaps that fear of the hell of x-platform testing temporarily took hold of my sense? ;D).

I phrased them in an extreme sense to try and make the points as clear and obvious as possible - for instance, it’s not fair in such a discussion to be contemptuous of the GNU jvm work (even though today it really is crap) because we’re talking about the future, and they could theoretically have it perfect by then. But in terms of explaining the POV that many people have that is against os-ing java, spelling out a potential yet realistic doom helps make it easy to understand, I think.

I’m actually pretty confident that Sun understands well the issues I’ve outlined above, and that they won’t os java. At least, not without some major protective layers. Java is a major (indirect) contributor to their bottom line, and I hope they can’t risk doing something to java that causes enterprise contracts (hardware, software, and services) to desert them even in small numbers (when a contract is worth multiple millions, losing just one is devastating ;)). I could be completely wrong - maybe Sun’s execs are weaning themselves off java dependency - in which case I really am scared (time to start learning C#, methinks…)

everyone is thinking about applications etc, but as this is a “gaming” forum, il put my voice in. Whats going to happen to applets if Java was opensources? Forking…etc would virtually shatter applets because they need libAlakazam to work, others need Jave (Notice the E instead of an A :D) in order to work.

My 2 pence,
DP

[quote]Whats going to happen to applets if Java was opensources? Forking…etc would virtually shatter applets because…
[/quote]
Oh, man - forget everything I said!

Open source java NOW!!!

(do the world a favour - kill applet games)

:wink: OK so they aren’t necessarily a bad thing, but 90% of applets should not be applets IMHO, they should be webstarted applications.

I can see your point blah, but that means java loosing against the imaginary battle (yes, I have it everyday with a friend) against flash and directory.

From what I can see, every single flash animation/game has an equal if not better applet out there.

APPLETS MAKE THE WORLD GO ROUND

but then again, this is my opinion and I wouldn’t wanna be the next guy along who favours flash over java

Applet - Webstart (I prefer JNLP :stuck_out_tongue: ) are not mutually exclusive. I hope anyone knows that. In fact I think that this

meant: Power up your applets by jnlp!

A big corporation from Redmond created the biggest fork of Java (named .NET) ever which is gaining popularity day by day and you feel threatened by someone’s personal Java deformation experiments which will vaporware for years …

Our do you think that the advent of mono will bring massive diversification in the .NET world?

In some earlier posts someone said it would be better to have a relatively small amount of JVMs to support. If you want that then learn C#. Its syntax is extremely similar and you can code for one platform only for years without worrying to exclude a vast userbase.

IMHO Java is THE answer to monocultural software. It stands for ubiquity and diversity. It makes software engineering and development enjoyable and I am sure the majority of Java enthusiats would punish a non-conforming VM with legitimate ignorance - just as it was done with the MSJVM.

JasonB said this already but it seems that some people did not get it: There is a difference between an application claiming to run Java Bytecodes and a TCK (test compatibility kit?) approved JVM. The first is not allowed to call itself a true Java VM and any opensource VM will have that fate for a really long time. Same goes for anyone who releases a modified Sun-based VM (assumed its opensourced).

[quote]In some earlier posts someone said it would be better to have a relatively small amount of JVMs to support. If you want that then learn C#. Its syntax is extremely similar and you can code for one platform only for years without worrying to exclude a vast userbase.
[/quote]
I meant on a per-platform basis. I didn’t mean to imply that Jaca should only support a small number of platforms, just that a zillion JREs for Linux is likely to result in a lot of wasted effort as well as potential nightmares for Java delevopers.

Forking: http://www.linuxworld.com/story/45121.htm.

No decision on Open Source Java: cpilive.net

Ha ha…

…and hear hear!

And to darkprophet: see previous (and subsequent) points about forking and TCK tested JVM’s. As for applets, I’d say the battle was already lost.
I’d be darn surprised if anyone is doing anything -serious- these days using applets (and by serious, I mean professional, paid development), whereas there’ll be plenty out there being paid to do flash, shockwave, etc. Even if I’m wrong I’d put money down that it’s in the minority.

How about the live results pages for the recent French Tennis Open (done by IBM)? That seemed to be using an applet. It worked very well.

I have read the “previous (and subsequent) points about forking and TCK tested JVM’s”, and what im saying is that applets are very frigile, I agree that java has lost the battle in interactivity in webpages, but why should applets cease to exist? On what merrit can you tell the people of IBM your out of business, go develop the open french tennis thing in shockwave?

[quote]java has lost the battle in interactivity in webpages, but why should applets cease to exist? On what merrit can you tell the people of IBM your out of business, go develop the open french tennis thing in shockwave?
[/quote]
Yeah, I allowed that 10% of applets are appropriate because there are situations for which they are perfect (and I’m thinking specifically of complex games/apps, not the crummy pong applets etc).

E.g. summitsoccer.co.uk is a web-based football game. It was deliberately done this way even though the game needs a custom GUI eventually becuase this allows a cunning rapid development cycle:

  1. Write all logic in the server, save 6 months by NOT writing a GUI client, and just use HTTP for communication - everyone has a web-browser already!
  2. Create individual parts of a GUI client as applets, and gradually replace chunks of runtime-generated HTML + javascript + multiple pages with single applets
  3. …carry on until most things have an applet, and have been running live and debugged for an extensive period of time; feedback from players has shaped each individually.
  4. …gradually convert the individual applets from using HTTP (inefficient protocol) to proprietary and/or standard gaming protocols (much more efficient)
  5. Take the source from the applets, create a java GUI app. Amount of coding required to create the app is now minimal - especailly since you have already done months of unit testing, and your bugs will be much much easier to locate.

There are just as many good applets out there as there are flash animations…etc

RedLine Rumble == Z-Tron
Most Flash/Shockwave == javaonthebrain.com

Infact, those applets are better than their flash/shockwave counterparts.

http://www.dnainternet.fi/pelit/english/ this game is by far the best game on the internet, its flash/shockwave counterpart is: http://www.fjallbrynt.nu/mountainclimber/game.asp

Now you tell me which game is best??

Applets are a serious environment in game development or otherwise. And I dont want to see this market go due to the opensourcing of java.

If and only if the opensourcing of java was to occur, there must be a central place (Sun?) where applet techonology and developed. TCK is not enough to ensure that this occurs.

To be honest I think Sun really lost out with applets. Once applets appeared in browsers there should have been no point to many of the other plugins - most of them should have been implemented AS applets. It’s a shame it didn’t work out that way.

I stand corrected. :-X But I still think applets are in the minority these days, compared to shockwave & flash. I also think Flash has a considerable advantage because of download size.

To darkprophet: the TCK is only part of the equation. The JCP wouldn’t go away just because the main JVM was open sourced.

Forget about the open tennis thing, look at all the other applets I should you.

Dont mean to sound stupid, but whats JCP?