Differences between version 10 and revision by previous author of Java.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 10 | Last edited on Saturday, October 25, 2003 6:32:09 pm | by StuartYeates | Revert |
Older page: | version 1 | Last edited on Tuesday, August 6, 2002 5:40:40 pm | by JaredWigmore | Revert |
@@ -1,6 +1,39 @@
-A
cross-platform easier-to-use programming language
that has an extensive API and can
be embedded
in web pages.
-http
://
java.sun
.com
+Java is a
cross-platform ProgrammingLanguage
that has an extensive API created by [Sun|http://java.sun.com].
+
+Java shares simlar syntax to [C]/[C++], but differs in some fairly major ways:
+* GarbageCollection. The programmer need not worry about memory leaks, at the expense of having a garbage collector.
+* Compiled to ByteCode. Java is compiled to a machine-independant byte code, something similar to an executable but machine/platform independant. This also means Java code needs a special run time environment to run.
+* Huge standard [API]. Java's core API is enormous. It does lots
and lots of stuff.
+
+Java really shines in a couple of areas. Particularly documentation: the documentation of the Java API is excellent. It surpasses the masses of documentation found in Microsoft's [MSDN] in quality and beats documentation I have seen for any OpenSource project to date.
+
+Java makes networking easy as pie. Networking between different platforms wasn't always too easy before Java, but it is very simple with Java.
+
+Java even makes multi-threading easy. And platform independant (the programming is platform independant, but the running is platform dependant, unfortunately).
+
+Java is an example of good object oriented design (generally). Almost all of Java's internal classes are very well defined and all follow a nice naming convention.
+
+Java applets allow Java programs to
be written and displayed
in web pages. Unfortunately, after Java 1.1, Microsoft didn't quite agree with Sun and stopped updating the version of Java that comes with InternetExplorer, the most common web browser. Because of this, most applets you see on the internet today are limited to a very old version of Java and don't make use of all the new features in Java today (version 1.4.1 at the time of writing)
.
+
+[JavaBean]s allow dynamic introspection of software components and streaming of state-full objects across the network without full knowledge.
+
+!Issues
+But Java, like any ProgrammingLanguage, has cons. First, Java's Run-time Environment (JRE) is a big download and is needed for any user wishing to run a Java program. This JRE also incurs quite a large memory penalty, even running a simple application can take quite a large amount of memory.
+
+Java has a GraphicalUserInterface library; in fact it has two. Swing, a high level and well-designed API which is built upon AWT (Abstract Window Toolkit). These work well enough, but don't take the native LookAndFeel of a system (though they can attempt to emulate it), and can look quite ugly. They can also be quite unresponsive.
+
+Java isn't fast. Now, I am not attempting to start a FlameWar. Java can actually perform very well, as fast as C code in many cases. However, especially for [GUI]'s, Java doesn't come out too well. Even on a 650MHz computer, many Java interfaces programmed with the standard Java windowing toolkits will be slow and unresponsive. Case in point
: Sun's own Forte. This is now called [Sun][[tm] One Studio 4, but is a good case of an unresponsive system written in Java that seems to otherwise be very well designed and implemented.
+
+[Java] also has limitations due to it's [ClassFile] format
+
+Sun's JRE (run-time environment) is not [Free]-software (although it is [free] as in $$, and the source code is available). The "other" widely used JRE for [Linux] distributions, blackdown, is based on Sun's code, so therefore isn't Free either. Neither [Debian] or RedHat or many of the other distributions will officially distribute non-Free software.
+
+The popular JREs start a new virtual machine for each
java program, rather than sharing one amongst all programs
. This combined with the large memory overhead can make it impractical on machines more than a few years old
. (AddToMe - is this still true these days?)
+
+The lack of a Free JRE (along with JRE size and speed issues) is probably one of the biggest obstacles to wide-spread adoption of Java on Linux. However, most of the issues mentioned above are implementation issues so could in theory be overcome. For example, the [GCC] project is part-way through a java compiler that would (of course) be licensed under the [GPL].
+
+
+See JavaNotes
----
-''Yesterday it worked.%%%
-Today it is not working.%%%
-Windows is like that.''
+
+CategoryProgrammingLanguages