Sep 97 MacTech Online
Volume Number: 13 (1997)
Issue Number: 9
Column Tag: MacTech Online
by Nicholas C. "nick.c" DeMello <email@example.com>
No coffee jokes. Simply put: it's time to get serious about Java. The promise of Java was that Java compiled code would not be restricted to a specific type of computer. While a C program must be compiled for a single chipset (Power PC, Mac 68k, Pentium, NeXT, etc.), Java was intended to be compiled for a virtual machine. Java virtual machines (Java interpreters) could be created for all platforms, so the program you compile on your Mac could then be copied to -- and run on -- any computer your customer might own.
That was the theory. But before it could happen Mac OS resident Java developers needed a Mac OS virtual machine. We also needed Mac OS Java compilers, sufficient documentation, tutorials and example code to get started. Guess what? The tools are online. Java is ready for us and it's time to get to work.
Sun has put a wealth of Java documentation online, including a description of the history and nature of Java by Jason English -- definitely worth reading. A good starting point for exploring Mac OS Java resources is the Apple Flavored Java pages and make sure to check out the ACM Java Pages by Omar Patiño Sileceo for other valuable links.
At MacWorld this year Apple announced Macintosh Runtime Java 1.0--a Java virtual machine for the Mac. Mac OS 8 will incorporate MRJ 1.02 (available now on Apple's Java site), and Apple is expected to ship MRJ 1.5 (final) one month after Mac OS 8 is released. MRJ 1.5 includes a JIT (just in time) component but is not fully Java 1.1.1 compliant. Early tests indicate MRJ 1.5 will have tremendous performance boost due to its JIT component. Webintosh's JVM Showdown has an excellent discussion of what JIT is and how it effects JVM performance.
- Sun's Java Documentation
- Apple Flavored Java
- The ACM Java Pages, by Omar Patiño Siliceo
- MRJ, Runtime Java for the Mac
- The JVM Showdown
Mary Campione and Kathy Walrath have authored the definitive Java Tutorial, an amazingly deep, multi-layered document that is really five tutorials in one. The five sections offer increasingly challenging content: the basics of Java programs; writing applets; creating a user interface; networking & security issues; and integrating native methods into Java programs. Another good introductory tutorial is Elliote Rusty Harold's "Brewing Java" site.
When you get past the basics check out two advanced tutorials by Stefan Koch and Nelson Yu. Stefan's "KneeDeep" in Java site requires a working knowledge of Java, but will lead you through some very kool projects. The AWT tutorial gets into the details of how to use the abstract window toolkit to manipulate many standard GUI components such as buttons, lists, menus, and text areas. It also requires a working knowledge of Java.
- The Java Tutorial, by Mary Campione and Kathy Walrath
- Brewing Java by Elliotte Rusty Harold
- KneeDeep in Java by Stefan Koch
- Nelson Yu's AWT Tutorial
The Java FAQ at digital focus is host to two essential Java references. Click on the "How do I...?" or "Java resources" links to post and answer Java questions or tour one of the most extensive collection of Java links on the web. Usenet's comp.lang.java newsgroup has recently been divided into eight component newsgroups, but the comp.lang.java FAQ lives on. It is regularly posted to comp.lang.java.programmer, and can also be accessed on the sunsite web server. Looking for example code? Visit the Java Class Warehouse, GeoJava Corner, and Gamelin's Java Tools page.
- The Java Developer FAQ
- How do I ...?
- The comp.lang.java newgroups
- The comp.lang.java FAQ
- The Java Class Warehouse
- GeoJava Corner
- Gamelin's Java Tools Page
That's it for our tour of Java. We'll leave you with a few final links to explore on your own. Keep your eye on Marimba. The Castanet technology is still rough, but very promising...
- Marimba, home of Castanet, Streaming Java, Castanet will be included in Mac OS 8
- WWDC '97, Internet Technologies Track, Where Apple is going with Java