Differences between version 12 and revision by previous author of Java.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 12 | Last edited on Sunday, October 26, 2003 7:54:23 am | by AristotlePagaltzis | Revert |
Older page: | version 10 | Last edited on Saturday, October 25, 2003 6:32:09 pm | by StuartYeates | Revert |
@@ -1,24 +1,25 @@
-Java is a cross-platform ProgrammingLanguage that has an extensive API
created by [Sun|http://java.sun.com
].
+[
Java]
is a cross-platform ProgrammingLanguage created and controlled
by [Sun].
-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]
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 : Binaries are
machine-independant ByteCode
, the intention being "write once, run anywhere"
. This usually works for non-windowing, non-audio applications. It
means [
Java] binaries need
a special run time environment to run.
+;
Huge standard [API] : It
is enormous and
does ''
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]
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]
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]
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]
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).
+[
Java]
applets allow [
Java]
programs to be written and run
in [WebBrowser]s
. 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 WebBrowser
. 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
+!
! 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.
@@ -30,10 +31,12 @@
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
+
+''Lots to be refactored here. AddToMe.''
+
----
-CategoryProgrammingLanguages
+CategoryProgrammingLanguages, CategoryImperativeProgrammingLanguages, CategoryObjectOrientedProgrammingLanguages