[375] in java-interest

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

The 4 Layer Java Cake

daemon@ATHENA.MIT.EDU (Dave McDorman)
Fri Jun 16 21:22:05 1995

Date: Fri, 16 Jun 1995 17:35:19 -0700
From: David.McDorman@West.Sun.COM (Dave McDorman)
To: java-interest@java.Eng.Sun.COM

Java group-mind,

NOTE: I'M SPEAKING AS A JAVA FAN! NOT AS A SUN EMPLOYEE. IF I'M OUT OF LINE
      ON THIS ALIAS, I CAN QUIT.... I HAVE NO PARTICULAR JAVA ASSIGNMENTS
      FOR SUN. I JUST CAN'T STOP TELLING THE STORY... It's a hobby really.

   I like to explain Java to the un-initiated as FOUR distinct layers:

     1. the Java "percolator" - a small portable, platform independent, thread
        handling executable. It can be ported to a variety of hardware/software
        enviroments.

           The "bean" is the KEY TO PORTABILITY and the vast potential
           of the project. It could be hosted in a variety of application
           uses. It has all the baggage of Modern OS'es removed to
           make a fast, efficient hardware "abstraction" to support the upper
           layers.

     2. the Java "beans" - a collection of platform specific objects to
        map the multimedia, networking and OS functions to the underlying
        hardware/software host (with Sun doing Win 32, Mac and Solaris 2.x
        as products). HOw many Sun products put "alpha" code on the internet and
        supply source to stimulate additional investment. Organized "chaos"...

           This area is exciting because it makes the hard coding aspects of
           networked multimedia available to a midnight wanna be hacker
           like me! Animations, audio, Threading, network protocols all
           publishable on the WWW...

           "beans" can be put on any mass storage technology: disk, CD-ROM,
           tape, network servers, firmware ROM's, cartridges, etc.
           (Sneak peek at layer 4... apps are collections of "beans"!)

     3. the Jav "lingo" - C++ "fixed" for the 80/20 rule of software "bugs"

           It builds on the abstractions of layers 1 and 2 to support
           "gaming", object-oriented thinking in design, extensibility to
           aid simple maintenance updates, etc. EVEN BETTER, I CAN ACTUALLY
           MAKE SOMETHING INTERESTING WITH THIS OBJECT ENVIRONMENT and
           the financial impact to my checkbook and the "portability"
           or my "skills development" makes me comfortable (vs. pure
           Mac or Win 32 study...)

     4. the HotJava "Browser" - the first commercial venture using this
        new object oriented, Internet technology

           I can make software at home on a PC and bring the compiled "beans"
           to work and run it there (I use a Sun at work...). I can also
           enjoy the work of coders with NT and potentially many more
           platforms: 

             "Oh please do Nintendo next... put it on a cartridge"

           Now that's the volume platform folks... Of course the cartridge
           would need a 14.4 modem capable phone jack :^)

        "Bolting Java Layers 1-3" into an existing product could be a complex
        assignment (IMHO, remember I'm a non-coding wanna be'). Building on the
        essential "percolator" and implementing pure "beans" makes more sense.

    Most of the discussion regarding Java starts with Level 4 and then needs
to drill into the lower layers to explain the complete details. I prefer
reversing the discussion building up understanding as you layer new
ideas on the previous layer:

     Percolator -> ground "beans -> custom "bean" making -> cup of Java apps

    Along the way, I explain that HotJava is just one of an infinite number
of Java-based executables. The Java compiler is essentially a Java app too!
At the base of most java functionality is a script that invokes the
percolator with a chosen "main bean". HotJava "boils down" to:

    java  browser.hotjava 


   To avoid confusion the layers need distinct names. Otherwise,
Java is:

      o a platform independent virtual machine

      o a language

      o an Internet programming technology

      o a plot to invade you computer with executable content

      o the potential technology that can free the computer world to innovate
        rapidly on the emerging network opportunities

      o a potential nomadic "executable" object that can be launched into
        the "ether" to do one's bidding... assuming an infrastructure of
        internet daemons based on the "percolator" technology develops:


     javad           NNNN/udp                        # "java-app" daemon/manager

   If an MIS-type saw the idea of "code" wandering around, it could start
legislation in congress to halt the whole parade, so I don't push that idea.
But I do tell "software managers" that Sun has a new programming GUI that
allows developer's to pick their preferred platform and to publish product
for Win 32, MMac and Unix without modification. It gets their attention rather
than telling them that they might see "Myst-like" games running from some remote
WWW server next year, written by clever college students.

   I haven't been this excited about the potential for "group innovation" since
someone showed me Unix in 1983. If it makes this much sense, it must be worth
learning more about...

Dave McD.



-
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