[2972] in java-interest

home help back first fref pref prev next nref lref last post

Dynamic libraries, security, and extensibility

daemon@ATHENA.MIT.EDU (ser@jersey.uoregon.edu)
Tue Oct 24 16:09:23 1995

From: ser@jersey.uoregon.edu
To: java-interest@java.Eng.Sun.COM
Date: Mon, 23 Oct 1995 23:49:53 -0700

In the throes of a sudden desire to have an attractive, predictable user
interface for HotJava applets, I sat down with a friend to write wrapper
classes for the Tk libraries.  Surely, we thought, since the number of
platforms that Tk exists on is a superset of the number of platforms that
Java exists on, this would be a useful excercise.  Having ignored all of
the discussion in this mailing list about dynamically loaded libraries we
began to peruse throught the FAQs, list archives, and documentation for
information.  Well, after discovering what we frankly considered to be a
rather backwards way of accessing dynamically loaded libraries (write the
application first, and *that* defines what your library functions will be 
called), we ran into a more serious problem: Java applets do not have access 
to external C code, and with very good reason.  There is a nasty can of 
security risk worms that gets opened when you allow access within 
distributable code to what Java calls "native" code.  This has the rather 
unfortunate and potentially seriously hindering side-effect of crippling the 
functionality of Java.

Do we expect everyone to port their libraries to Java code so that we
can have access to the wealth of already implemented software that saturates
the world of computer science?  Are we living in a pipe-dream?  Tk is the 
smallest of losses.  Even if Tk, or some other well-defined user interface
toolkit gets co-opted by Java, it will only grow and improve so fast as
the Java Development Team works on it, and they certainly have too much
to do as it is.  This problem is compounded by the shear number of libraries
that are, by the same token, lost to us.  How about SQL, or compression, or
graphics libraries?  One of the key places where Java was hoped to prove 
useful is now being exposed as inefficiently handled: for every library on 
your system, you have to have it twice if you want to use it with Java 
applets.  Its the lost law of code reusability.

This is A Real Bummer.

For the life of me, I can't see an answer.  We can't simply allow access
to external libraries from within applets; what's to keep people from
using well-known and generally globally extant library function calls to
implement the very viruses that the nature of Java so cleverly denies?
But how can we live with a language which doesn't, in its primary 
capacity as that of distributable software, support DLLs?

---
Sean Russell               \   It's OK to judge a book by its cover,
ser@cs.uoregon.edu          \  as long as you understand that most of
http://zebu.uoregon.edu/~ser ) the cover artists
Finger Me for PGP Key       /                have never read the book.
NeXTMail Welcome!!!        /   

-
Note to Sun employees: this is an EXTERNAL mailing list!
Info: send 'help' to java-interest-request@java.sun.com

home help back first fref pref prev next nref lref last post