[MUD-Dev] Web vs. Java client

ceo at grexengine.com ceo at grexengine.com
Tue Oct 28 11:29:35 New Zealand Daylight Time 2003

Note: This message was written via the list web archives.  There is
no guarantee that the claimed author is actually the author.
Original message: http://www.kanga.nu/archives/MUD-Dev-L/2003Q4/msg00130.php

On Mon, 27 Oct 2003 21:41:40 -0800
"Christopher Allen" <ChristopherA at skotos.net> wrote:
> Christopher Kohnert wrote:

>> But, on the whole, you can get quite a lot of functionality out
>> of a 1.1 Java applet and be pretty sure it'll work almost
>> everywhere. There are tons of tiny discrepancies, but they are
>> easily worked around.

> Our experience has been entirely the opposite. We even have a Sun
> engineer who is a player who has been helping us, and he'd been
> having a hard time.

Sun's support for 1.1.x has been shamefully poor ever since 1.2
debuted. Major known bugs (especially in the windowing system, AWT)
in 1.1 classes have persisted for more than 5 years without a fix -
even in the current versions of java (I noticed one of my hated bugs
from 1.1.x was finally fixed in 1.4.2 earlier this year!)

However, it's worth trying to understand why this has happened: each
new major release of java has been a gigantic leap. 1.1 -> 1.2 made
java a "real" language in terms of standard lib support (added basic
things like List classes!). 1.3 changed the execution system
massively, IIRC - and (IIRC) has paved the way for many of the lower
level improvements in 1.4 and 1.5. 1.4 has completely revolutionized
java as a systems language by allowing it to interact directly with
the OS - and even hardware - in 100% pure java (YMMV: you usually
need a one-line piece of C/C++ code to grab a pointer to your shared
memory, but after that it's all java).

So, you can see why Sun has done this. I am afraid I have no
sypmathy (any more) for anyone who tries to make a "1.1-compatible"
java app - 1.1 is not supported on most platforms any more (...so
why try and make a 1.1 comaptible app?), and it constrains you to
using bad API's (that were completely replaced in later versions
because - with hindsight! - the original API design was so poor). I
used to do 1.1-compatible apps, when I was trying to support apps on
certain niche platforms that didn't have any reall ongoing JVM
developers...so I also know well how painful it is.

About 3 years ago I realised that if a platform didn't have a 1.2
JVM then it's 1.1 JVM was so unsupported/under-developed that it
probably wasn't worth bothering any more...

> The biggest problem is the Macintosh, which is the most important
> platform other then Windows. We constantly have to fight scrolling

AFAICS, Java only finally became a realistic prospect on Mac with
Java 1.4.x / Mac OS X. I've heard a lot of 1st-hand reports of
complex apps working perfectly on Apple's 1.4.x implentation,
although there are still considerably more bugs than on Sun's
windows/solaris/linux JVM's. But Apple is doing a great job right
now (especially compared to the bad old days of "Java 2.xx" on Mac,
which wasn't even 1.2.x compatible (it was semi-compatible, IIRC !).

> Our linux java clients work acceptably, but not as nice and clean
> as our windows native ActiveX client. Our mozilla/javascript based
> client is on par with our native ActiveX client, with much less
> development time.

..and for all that I've said above, I agree that Moz's UI stuff is
probably best for your uses.

But many people may want to reconsider in 3-6 months time - Sun are
putting OpenGL support into the core libs for 1.5, and the linux JVM
is (almost) guaranteed to use OGL for *all* it's GUI rendering
code. Unsurprisingly, there is considerable clamour from win32 devs
who would like the win32 GUI code to also run on OGL (it currently
"partially" uses DirectX...i.e. it doesn't make use of all the
acceleration that it could do).
MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list