Contents | < Browse | Browse >
Java: What Role Will it Play in the Amiga's Future?
David Prime email@example.com
Copyright 1997, David Prime
For years the Amiga has struggled to establish itself in the world of
personal computing. Now a new operating system independent software
platform has arisen to challenge Microsoft Windows for dominance of the
desktop. This new software platform is Sun Microsystems' Java. Java is
not a competing operating system, it is a development platform that allows
Java software to run on any operating system that supports a Java run-time
environment. If Java is a success it could have a powerful effect on the
future of the Amiga. The nature of this effect is not yet clear.
The heart of Java is a powerful object oriented language that is very
similar to C++. What makes Java more than just a programming language is
the Java Virtual Machine (VM) run time environment. The Java VM simulates
a computer in software. A Java VM can be written for current operating
systems but the VM environment remains independent of both the host OS and
the underlying hardware. Compilers for ordinary computer languages
generate executable binary code that is specific to a particular
microprocessor and operating system. To make such code portable requires
that all platform specific code be rewritten and that the code be
recompiled for the new platform. Java compilers, on the other hand,
convert source code into Java byte code that can be executed without
modification on any machine that has an implementation of the Java Virtual
Machine. The Java VM run-time environment manages all interaction between
Java programs and the underlying operating system and hardware. This
allows developers to master only one programming environment (the Java VM)
and produce code that will run on any Java capable platform.
There are two types of Java programs, internet applets and stand alone
applications. Internet applets are small programs that are embedded in web
pages and are run on the viewers machine in a secured manner (limited
access to system resources i.e. the hard disk) by Java capable browsers.
These applets are increasing in popularity and are used to enhance the
appearance and/or functioning of a web site. This type of internet use is
a natural for Java because the web page author generally has no control
over the type of operating system that the viewer is using. For the applet
to function only requires that the viewer be using a Java capable browser.
The second type of Java program, stand alone applications, is much more
interesting. The Java language and run time environment are sophisticated
enough to allow for the creation of any software application that does not
require low level operating system or hardware access. This includes most
off the usual desktop applications such as word processors or spreadsheets.
Stand alone Java applications could be distributed on standard ISO 9660
format CD-ROMs and installed on any Java capable machine, be it Unix,
Windows, Mac or Amiga based.
Java does have its down sides and limitations, however. Java is still very
new and its development tools are immature compared to those of other
languages and platforms. Also programmers have less experience with
developing software for Java. These two facts are likely to change
rapidly. Developers are adopting Java at an unprecedented rate and Java's
similarity to C++ reduces the learning curve.
A second limitation of Java stems from the same source as its greatest
strength. Java's portability results from the VM isolating the program
from the underlying OS and hardware. This means that Java programs can not
fully utilized specific OS or hardware features without sacrificing cross
platform portability. Also portability is not perfect because Java run
time environments on different platforms do not implement all features in
an identical manner.
The third significant limitation of Java is that Java code is not as fast
as native code. Java byte code is interpreted and converted into machine
code on the fly during program execution by the Java run time environment.
For this reason C and C++ code can execute an order of magnitude faster
than Java code. One method to speed up Java code that has been introduced
is Just in Time (JIT) compilers. JIT compiler interprets byte code during
execution like a regular interpreter but the resulting machine code is
cached in memory during program executing. If a piece of code is needed a
second time the cached machine code is executed. JIT compilers can
execute Java code at approximately 50% the speed of native code.
The future may also see static Java compilers for specific platforms. This
would allow Java applications to achieve almost C or C++ speed. In my
opinion the best option would be a compile on install option. Java byte
code could be distributed in a platform independent manner and the
individual Java implementations could compile the byte code into native
machine code during installation to the hard drive. This method would
retain portability and provide good performance. I know of no Java
implementation that supports this feature.
Also as computers continue to improve in speed, the importance of highly
efficient code will decrease for most application. C and C++ have already
supplanted assembly code for most application development. Even high level
languages and authoring systems, such as Visual Basic and AmigaVision, are
being used for some professional application development.
Despite its current limitations Java is receiving tremendous support and is
being heavily promoted by Sun. Apple, IBM, Microsoft, Novell, Silicon
Graphics, Sun and others are all integrating Java run time environments
into their OSes. Because of this Java could become the worlds largest
software platform. The number of Java capable machines could out number
any of the platforms that support it, even Windows. Developers have
largely been drawn to DOS and Windows because these two environments were
the most wide spread. If in the near future Java becomes dominant will
developers switch to give it primary support? This remains to be seen.
The first general purpose business applications for Java are already being
developed by Corel. Corel Office for Java includes a WordPerfect based
word processor, a Quattro Pro based spreadsheet and other applications.
The performance, portability and commercial success of this product maybe a
critical test of Java.
The uncertain future of both Java and the Amiga make it hard to make any
predictions as to how Java will impact on the Amiga. Because the Amiga OS
is currently in financial limbo there is no official development of Java
for the Amiga. However, an independent project named P' Jami is porting
Sun's Java Development Kit and the HotJava web browser. Another group is
porting Kaffe a freely distributable Java VM that includes JIT compilation.
If mainstream software applications become available for the Amiga by way
of Java it could strengthen the platform by retaining and attracting users.
Unfortunately, the speed issue is especially problematic for Amigas because
of the relatively slow 68K series processors they use. However, a native
PowerPC implementation of a Java run time environment could give excellent
performance on a PowerUp card even if the OS has not been completely
ported. The wide spread availability of Java applications could also hurt
the native Amiga developers who know the machine best and can get the most
out of it. If these developers lose their market to Java applications then
the Amiga will die as any but a Java host. I doubt the platform would last
long on that basis.
If Java succeeds to the extent that some people predict the only
applications not written in Java will be speed critical or specialized
applications which require specific OS or hardware resources. If this
comes to pass, OSes of the future may be judged by their ability to
effectively run a Java VM.
For more information:
The Java Web Site: http://java.sun.com/
The P'Jami Site: http://www.sss.co.uk/~nt/hotjava.html
[Please note that Kaffe is now available through the ADE project. Check
Aminet in ftp://wuarchive.wustl.edu/pub/aminet/dev/ade/kaffe.lha to
experience it for yourself. Also, Finale Development at
http://www.finale-dev.com promises a Java implementation and Java-aware
browser for the Amiga in the near future. -Jason]