W3C | Mobile Code

Java

Evaluation with respect to Distributed Hypermedia Applications Development Issues:

Runtime Safety
Yes, with static type checking
System Safety
Yes, with secure loading over the network. They've submitted a paper on their security techniques to the WWW4 Conference.
Cross-Platform GUI API
The AWT is a cross-platform GUI API for everything from menus and buttons to drawing primatives and image processing. It's not as stable as other parts of the Java API, and it hasn't been implemented on the Mac yet.
Concurrency
threads, mutexex, conditions, plus "synchronous" objects/methods. Thread-aware I/O
Type system
smalltalkish, but with static checking by class names, and a few primative (non-object) types. Supports "interfaces," alal Objective C protocols.
Module System
hierarchical "package" space. Workable, but a little clunky.
Exceptions
OK, but no static checking
FFI
pretty expensive FFI. Kinda like an RPC system: marshalls/unmarshalls parameters to overcome garbage collection issues etc. No POSIX API.
RPC
sockets API, but no flatten/serialize support, no mobile closures. I've heard of work on supporting CORBA and ILU.

Licensing and other Intellectual Property Rights Issues

The java VM spec is freely redistributable, though Sun retains change control. The implementation is copyright, and not freely redistributable, but close to it. I expect that Java could be deployed like PostScript, including a clone market. The difference is that the reference implementation would be cheaper, and Sun is letting net.folk get the source code for porting. Open question: how much would Sun's policies have to change to satisfy the W3C membership?

See also: SunSoft's NEO product family for info on JOE, sun's integration of Java with distributed objects.


W3C
Connolly
$Id$