Java /
For more information see Sun's Java site.
What's Java?
Java is a programming language, very Similar to C++.
What's HotJava?
HotJava is a Web browser.
What's their relationship?
While Java can be used to write stand-alone programs (applications), it can
also be used to write "applets" which are embedded in HTML documents. These
applets "live on the web" and tag along with the HTML documents to be
executed on the client machine.
Java
(See
"The Java Language: A White Paper" for details. Also see
"Trail Map: Java/HotJava Programmer's Guide" (draft))
Simple, Object-Oriented, Distributed, Interpreted, Robust, Secure,
Architecture Neutral, Portable, High-Performance, Multithreaded, Dynamic
Simple: it's C++--!
Minus: operator overloading (but does have method overloading),
multiple inheritance, some auto coercions.
Plus: garbage collection
Small: 40K for interpreter and class support; +175K for
standard libraries and thread support
Object-Oriented
OO a la C++
Dynamic method resolution borrowed from Objective C
SI class hierarchy, MI interface hierarchy (Objective C)
Distributed
Large library for TCPP/IP protocols (HTTP, FTP...)
URLs as easy as file opens
Interpreted
Bytecode is "executed" on any machine
Compile-time info embedded in bytecode stream
Robust
Explicit declaration
No pointers ("true arrays")
Java does the memory managment
Secure
Authentication (public-key encryption)
Architecture Neutral
Bytecode system (like P-code)
One source/all platforms
Portable
No implementation-dependent aspects in the spec (int=2's complement 32 bit integer, always)
Library includes GUI
Portable boundary ~= POSIX
High-Performance
Bytecode can be translated to machine (specific) code
Bytecode-to-machine code is comparable to C++ or C
Multithreaded
Hoare monitor and condition variable paradigm
Dynamic
Late dynamic binding means apps don't have to relink with changed libraries
Interfaces a la Objective C
Metaclasses
(See
"The HotJava Browser: A White Paper" for details. Also see
"HotJava User's Guide")
Why is HotJava Different from a conventional browser?
Interactive Content
Like OODBs are supposed to be
Dynamic types
Other claims
Dynamic protocols allow for proprietary protocols using HotJava
Freedom to innovate
kremer@cpsc.ucalgary.ca