Java
General Comments:
 | De facto standard for web programming -- depending on who you are talking
to - many companies have had mixed successes. |
 | Created by Sun Microsystems |
 | Original purpose: created a universal cross-platform language (write once,
"compile"-once, run on any architecture, e.g., Unix, Windows, Mac) |
 | "Killer App" has yet to be delivered, that is, major general
desktop and server applications are still written in C/C++, Visual Basic,
PowerBuilder. |
 | Key use seems to be for server-based applications with an eye towards
multiple platform (Apache, IIS, Netscape on Unix/Linux, Windows/NT operating
systems) delivery. |
How Does Java Differ
 | Computer applications are either compiled or interpreted:
 | Interpreted: source code is executed at run-time via an
interpreter; advantages: easy to modify, can be adaptable (LISP, Prolog,
JavaScript, VBScript); disadvantages: slow, lack of security, dependence
on interpreter. |
 | Compiled: source code is compiled and linked into machine
language; advantages: fast, efficient, secure, potentially little/no
dependence on supporting software; disadvantage: strong platform
(processor and operating system) dependence, difficult to port to other
platforms. |
|
 | Java does it differently! Source code is compiled into
"bytecode" which can be run on any platform machine with a Java
Virtual Machine (JVM)
 | Java is kind of a quasi interpreted compiled language. |
 | Bytecode is "cross-platform"! |
 | Advantages: cross-platform - write once, run many |
 | Disadvantages: true cross platform Java applications often cannot take
advantage of platform specific capabilities. |
 | "Flavors" of Java are being developed that optimize to one
platform or another, sometimes making specific implementations
incompatible with other platforms. |
 | JVM's are starting to be different across platforms leading to
delivery and even legal issues. |
|
 | Java can run three ways:
- Standalone
- Client applets in web browsers.
- Server applets
|
Java Notes
 | Java is very C++ like--an object oriented language. Does not have
the memory management issues of C. Syntax is C like--quick learning
curve for many programmers. |
 | Java is multi-threaded. Multiple processes can be instantiated to
create efficient programs. |
|