| 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.
Connolly
$Id$