Jan 96 Factory Floor
Volume Number: 12
Issue Number: 1
Column Tag: From The Factory Floor
Java Talk 
By Dave Mark
You, the MacTech readership, have been long asking for a Metrowerks presence in the
magazine. This is the first in a brand new series of articles by longtime MacTech
columnist Dave Mark. Dave recently joined forces with Metrowerks to produce a series
of CD-ROM based programming products. This month, Dave interviews Greg Galanos,
president and CEO of Metrowerks, about Metrowerks’ recent announcement on their
new Java development environment.
Dave: Metrowerks just announced the first Mac-based Java development
environment. What can you tell me about it?
Greg: We’ve been tracking Java for over a year now, noting the developments in the
field and the positioning of the language with respect to Internet development. A little
over four months ago, we initiated contact with Sun and developed a complementary
position in order to properly support Java programming and Internet development
within CodeWarror.
The Sun deal was signed a couple of days before Comdex. It is both a licensing and
a development deal where Metrowerks will license compiler technology, runtime
interpreters, Java classes that support cross platform development, as well as the
HotJava browser. These technologies will be seamlessly merged with the CodeWarrior
Development Environment in order to bring them to our user base as a first developer
release in May. This means we’ll support source-level debugging, browsing and
compiling as if you were working with C/C++ or Object Pascal within the IDE.
Dave: If you want to produce Java applets, you’ll have to learn the Java programming
language, something akin to learning C++. Do you think Metrowerks will ever offer a
way for non-programmers to produce Java applets?
Greg: Ahh, the holy grail.... Metrowerks is committed to building better,
easier-to-use tools. I suppose the cryptic response would be to say that we will
support Java in much the same way that Borland will support Java.... The answer here
is that we will strive to do so but it’s not a short-term proposition. This will take
time, but yes, we are moving quickly towards that goal and will be taking Constructor
down that road.
Dave: What is Sun’s role in all this?
Greg: Sun has been working on different manifestations of Java for about 5 years. It
came out of some pretty serious R&D efforts into embedded appliance systems. It was
found at that time that C++ was not ideal for embedded, secure development because of
what Sun calls unsafe language features: pointers, operator overloading, multiple
inheritance and the absence of garbage collection. (Note: multiple inheritence is
available in the Java interface, but not in the classes themselves). Java is a language
that is very close to C++ without the features that are considered insecure or
dangerous, especially for a languge designed for building programs that are downloaded
to your desktop machine and which will then run there.
Sun is doing some very interesting things in order to nurture Java and
cross-platform Java implementation. For instance, they are licensing their technology
and working with strategically chosen desktop partners in tools (Metrowerks,
Borland), communications (Netscape, Spyglass), content development (Macromedia,
others). But they are also controlling the technology and the language standard until
the language is embedded, so to speak, in Internet development in order to stave off the
featuritis that comes from standards committees (I point to C++ as a specific example
of this). This is a good thing - actually the reverse of what usually happens with a new
language.
Finally, Sun is controlling and furthering the security technology that will
guarantee that a Java applet is, in effect, secure. Part of the technology licensed from
Sun addresses the areas of security and validation, what is applied to the Java byte code
stream once it passes the threshhold of your particular desktop machine.
Metrowerks and Sun have teamed up to ensure that Macintosh plays an important
role in Java development. This relationship is both one of making the tools available to
our customers in a timely manner (WWDC) and also working with Sun on
market-creation strategies. MW has licensed all the Sun technology and will be rolling
new technology into its Java products as time progresses. Of course, Metrowerks will
also be developing new technology for Java, optimization techniques for runtime
improvements, AWT (abstract windowing toolkit) support, interface building tools,
etc. This is a long term play for us and we intend to support our customers in their
quest to program the net and increase their own revenues.
Dave: Will developers have to pay any royalties on applets they build using
JavaWerks? Are there any licensing issues developers need to be aware of?
Greg: Wow, “JavaWerks”! Quick, let’s get a trademark! Seriously though, applet
developers shouldn’t have to worry too much about licensing issues unless they are
also shipping the byte code interpreters. Sun is striving to make this technology an
open platform; therefore there are no direct royalties or other costs associated with
developing and shipping applets. Java implementers such as Metrowerks and the other
Java official licensees bear the burden of the royalties in a distributed manner, so it
makes a lot of sense from a developer’s standpoint. The implementers are held to a
very high standard and must pass all sorts of validation suites before shipping their
toolsuite. This is because Sun absolutely wants Java to be cross-platform, and for this
to be achieved much more validation must be applied to the tools to ensure that the
compilers generate the proper byte code for any particular release.
Dave: What impact do you think Java applets will have on more mainstream
application development? For example, do you think we’ll ever see a Java word
processor or spreadsheet applet? If so, how will folks pay for it?
Greg: I think there are really two markets here. The first is the development of
applets or small applications that live on a Web server and execute a specialized
function that an end-user wants to acquire. I’ll take the easy example: Imagine a
specialized applet that implements peer-to-peer communication with a stock quote
server (local Java applet talks to remote Java applet) and warns you when you should
buy or sell. An end user is likely to see value in this applet and be prepared to pay a
price of (let’s say) $9.95 a month for this service. Result: applet developer sells to
end-user without traditional distribution channel. There are many, many examples of
this from gardening, to cooking, to special travel deals, that a consumer will be
interested in procuring in the home directly from the service provider.
The second market is for today’s applications vendors (our customers) to
hotwire their application to the Internet either by implementing applets in their
application suite that can be sent off across the net to “do something” or by embedding
applet technology in their application to host applets that are downloaded from the net.
This could be as simple as running the applet in a web browser, or as complicated as
allowing the applet to actually “plug in” to the application itself. Again, the consumer
could then choose from any specialized applet that is destined to work with
ClarisWorks or FreeHand or Illustrator, to give a few examples. Look at the Java
runtime model as a very lightweight, multi-threaded container architecture without
SOM and the fragile base class problem that happens to be the Achilles’ heel of C++.
This is a powerful concept.
Dave: Java is normally compiled into byte-code, then interpreted. Will there ever be
a fully compiled Java with no interpreter in the loop?
Greg: Essentially, the byte code runs on the Java virtual machine (the interpreter)
which translates the byte-code into native instructions. I think you’ll see both
just-in-time compilers and hybrid dynamic/intepreted compilers that will be
necessary to speed up local execution. So the answer is Yes. The real question is:
“When?”
Dave: Where can people go to get more information?
Greg: Well, the fastest way to get to all the hot Java sites is to go to
http://www.metrowerks.com. We have a full hookup to licenses sites, user sites,
Sun’s numerous sites. The other place you can go is to http://java.sun.com (but we
point there too!). There’s also the newly created newsgroup news:comp.lang.java which
has nearly as much traffic as comp.sys.mac.programmer.codewarrior. The Java
newsgroup is nearly absent of Mac programmers, who have not had the tools to date.
We definitely are going to change this. You can also send email to
java@metrowerks.com to receive info on beta testing.
Dave: Who the heck is Duke, and why is he stealing Ahnold’s limelight?
Greg: Hey, Duke’s cool. He’s the Java mascot, a molar-shaped imp with a red nose
carrying a surfboard. I can just see Arnold surfing the web jolted out of his brain on
this Java stuff. Arnold and Duke are buddies. Arnold is Duke’s protector. Like
Terminator II, yeah.