Internal document from Sun

Here’s a bit of an interresting read:
http://www.internalmemos.com/memos/memodetails.php?memo_id=1321

It’s nice of them to admit they’ve made every single fuckwitted mistake with Java that they could have done - and this is only bitching about the Solaris implementation!

Hehehehehe.

Will they listen to us now?

Cas :slight_smile:

No more needs to be said really, it’s pretty much an admission that the jvm is way too fat, which is what everyone else has been saying for ages.

Not only fat but fat and unreliable. I’m having terrible headaches with 1.3 bugs. I can’t incrementally patch it to 1.4, we have to do a huge rollout to thousands of PCs with 1.4 now because it’s easier than working around all the 1.3 bugs.

Just give me a bare VM & free license to distribute it, and break J2SE down into hundreds of little versioned JARs with proper dependencies and an auto-download feature and I think a lot of troubles will go away.

Cas :slight_smile:

Better don’t post that link somewhere else, for we don’t want to let somebody else suspect there might be any unconvenience or even a problem around Java…

;D

Hmm, me thinks that is already too late!!! Its on /. :slight_smile:

Stu

Hmmm…
I sense a growing feeling of frustration with java in general on this board (Including myself sometimes; especially at this momement, just coming to the conclusion at work that Xalan is mostly useless because it’s so slow it’s not even funny).
Can someone please explain again why we are still bothering with it?
I’m losing faith here ::slight_smile:
and that document is feeding that feeling :stuck_out_tongue:

I think it is because it is such a convienient language. It is very readable, and it kinda feels nice. Can’t quite explain it! Also I think everyone on this board wants to prove the point that it can be done, and everyone is very persistent. I suspect Sun is going to pull the finger out soon (hopefully), because at the moment I can see C# becoming more successful than Java, unless Sun do something! Lets hope they make the right decision :slight_smile:

Stu

[quote]I think it is because it is such a convienient language.
[/quote]
That’s just because we are used to it, isn’t it?
I mean, I was very feeling very convenient with assembly once until the cpus I learned it on became obsolete and I lost interest in programming for a while.
Isn’t C++ convenient as well once we get to know it well? It is the way that most people went (as far as game programming is concernced), so there’s much more knowledge available.

I have to say that C++ is looking more convenient by the day. But I’ll stick with Java for the time being, and if it doesn’t get any better, I’ll jump ship.

Cas :slight_smile:

Hrmmyes… That wasn’t exactly what I wanted to hear, but it’s close to my own feelings although I suppose I have a lot less insight (even my skills in C are rusty :P).

Although I still find java nice for the projects I’m working on at the office, I don’t think java is that great for making games other than small applets or small web-start distributed games (for that kind of thing java is probably the only good option still, until M$ has stolen and improved those ideas too).
Web Start is still cool 8) but I doubt it will save java.

;D ;D ;D And now something positive about java gaming, please ;D ;D ;D

I think I pointed that out in other threads as well: if you go for mainstream games in Java, you will loose. Did I mention that? Did I say that there’s barely a reason to to step aside the well-established C++ path (except of having a nice language)? I think I did.

Anyway, there are still good reasons for games in Java.
The main points are the availability of a rich, free, well-integrated and thus usable set of technology right in place at your fingertips.

  • 3D engine
  • sound
  • media access
  • database (XML?)
  • GUI
  • speech synthesis

Other points are high availability (e.g. by WebStart) from everywhere and, corresponding to that, network-awareness.

And scalability! Java apps may scale from action frontends over server components down to mobile applications. Same time, same technology.

All these connected by a nice, garbage collected language that easily integrates components (try to use a couple of different C+±libs! Go! Do it!) and makes them work together. All these supported by 1st-class devtools - you really have the choice!

Cross(client)platform doesn’t really count. On the desktop there is nothing but windows (although I’ve heard the Mac is very strong in the US, it’s a real pitty that Java is so far back on MacOS).

All we need is a game concept that is able to exploit these things! That’s the difficult point and not done until today.

So people here should just stop performing benchmarks all the time. They are worthless. Java is fast enough if you have the right, outstanding concept for an appropriate game.

So - seldom enough - mine is the positive part today.

I haven’t got much of an issue with speed any more! Especially since eschewing all the standard libs that came with Java. But I’ve been having a right gnashing-of-teeth over how much more complicated it is to do some of the most important things in Java compared to C++.

Trouble is I’m addicted to serialization and garbage collection. Amongst other niceties.

Cas :slight_smile:

There are GCs for C++ around… ::slight_smile:

[quote]- 3D engine
[/quote]
You don’t mean java3d, do you? I mean, it’s nice but games using it will always look a bit outdated. And I suspect slowish too.
I never saw something using java3d that ‘felt good’, and believe me, I searched.

[quote]- sound
[/quote]
javax.sound? Aargh!

[quote]- media access
[/quote]
hmmm ok

[quote]- database (XML?)
[/quote]
Nah, XML is useless for games. Especially the standard implementation in J2SE. Xerces/Xalan is an extremely slow and memory hogging piece of code. If you want visible gc, go for XML.
But JDBC is nice, although I’m not quite sure how well that (or databases in general) fits in a game.

[quote]-Other points are high availability (e.g. by WebStart)
[/quote]
That’s only true when WebStart will be sitting on most desktops. That’s hardly the case atm.

Well, I don’t want to try to bash your arguments and I do appreciate the positive input. Most of them I even agree with, but I am more than a bit worried about java’s current state of affairs (apart from the technical issues which I suspect every language has).
Maybe a bit too much even, I don’t know ::slight_smile:

Without all of the macros, operator-overloading, and 30-year-old backwards compatibility, Java makes it possible for someone like me who doesn’t work in a technical field or have loads of free time to still accomplish something from time to time. Since I can only code in small installments, working in Java allows me to get more productivity out of my time because there is less overhead from deciphering what some piece of code does. It somehow is many times easier for me to think in Java than in C/++. That’s the reason why I’m here, anyway. ;D

erikd, you didn’t get my point…

Yes, Java3D. Yes, javax.media.j3d.Sound.

Slow? Hm. Outdated? A bit. But you can build highly complex 3D worlds easily. You cannot do that with DX9! (ok, I admit DX is getting stronger and stronger, half a 3D engine meanwhile)

Sure, you cannot do pixelshader stuff. So forget about the jaw-dropper graphics-wise. GameBoy cannot do it neither! Tamagotchi couldn’t as well. PS1/PS2 don’t have pixelshaders. Pokemon is ugly. But they all sell games! Huge numbers!

And who here ever reached the limits of Java3D? Used everything it has? Combined into a real-world gaming framwork?

Why is XML useless for games?? Having a SOAP-based webservice with world rankings that can be queried from everywhere, e.g. with a mobile? Online-rankings are VERY addictive! Yes, combine that with JDBC to feed that server from an action-client. With Java, it’s easy, it’s all right there. Just use it.

And yes, databases can fit in Java games. HUGE databases bc. you can handle them. Combine the game with a HUGE repository of items/things/characters/weapons/ammunition a player can buy online e.g…

Have a flexible, maybe totally mutuable game by providing missions/task/gameplay elements (as XML? From a database?) and new code - this could keep attraction high over quite a long time. Easy in Java (well…).

Don’t do Quake4!!

I think this is a very interesting and important discussion. I don’t have much to add, yet, because as we speak I haven’t gotten to the point where I can speak about my upcoming game.

But I do have this idea to contriubute: I think we are discussing two very different aspects of the same problem. I would like to see if I’m right:

The topic is the internal memo, which is causing some to question Java’s place in gaming. The two sides, though seem to focus on a) the technology, i.e., what Java can do versus what C++ can do, or b) the business of gaming, which is fueled by completely different decisions other than “which language is better suited?”

My question to you is, why are these two topics seemingly mutually exclusive?

Well, everything’s just one big mish mash of stuff really, all inextricably linked in some way or other. My take on this is: I am an engineer - a proper, hardcore software engineer, not a script kiddie, web luvvie, or VB hacker. A hundred years ago I’d probably have been designing suspension bridges or steamtrains.

As an engineer, I’ve only got one thing on my mind: a problem I’m trying to solve, and the set of tools available to me with which to solve it. Now, there’s a famous old saying that when the only tool you’ve got is a hammer every problem looks like a nail.

Right about now Java is looking like that hammer and it’s not giving the optimal solution to solving many of my engineering problems.

Now normally an engineer chucks the tool away and finds a better one, or modifies the existing tools to make them work better for the task at hand. Chucking a tool away and using a different one is usually very high risk because it will bring with it its own set of troubles and of course, a learning curve. Modifying the tool, unfortunately, is not possible, because I do not (HINT) have direct access to some important people in Sun who wish to take the issue up with me and actually have the power to act on it and bring the Java language into the next generation.

There are a lot of language lawyers about, OO purists, "JIT-compilation-will-(theoretically and potentially)-save-the-world"ers, wannabes and general ignoramuses about who will argue about the merits of one syntax versus another or the risk in breaking things until they’re blue in the face. None of these fuckers gets anything done. How long did we wait for generics? Why? And how long before the whole API is rewritten properly to make use of them? I want solutions, and I want them implemented very soon, or I’ll be forced to go back to first prinicples and code the whole bloody lot on my own, as usual. LWJGL is just one symptom.

Cas :slight_smile:

Maybe we should not want to write quake 4, but if we want to write cutting edge games using java it would be nice if we would be able to come close.
It’s true, apart from great gameplay, great visuals sell.

Sure we got some nice tools from Sun, but they really should be(-come) cutting edge.
People running a java game on their PC don’t care that it’s using J3D and that also a gameboy can’t do great looking 3d stuff. They paid big bucks for their PC with fancy 3d card and they want to see it produce marvellous things.
They don’t care about platform independence at all.
We can’t hide behind “but it’s just gameplay that counts, not graphics” crap.

But I get your point though (and I was wrong about the XML/db thing. Actually my own online hiscore server uses XML ;D)

But nevertheless, there is a great gap between what java might be capable of in the future, and what it’s actually good for at this moment.
For me, that is:

  • Java is a convenient highly productive language
  • Networking, serialization, those things are quite easy to do in java.
  • Easy deployment and updating using WebStart for smaller games (well, this will only work if it will be sitting on most desktops). I’ve said it one (okay, maybe twice ;D) but Java WebStart is cool 8)

I personally hope that Sun will improve (fix!) what they have now, and don’t throw just in lots of new technologies. And become a bit more practical before it’s too late.
They’ve come such a long way already.