Jan 96 Factory Floor
|Column Tag:||From The Factory Floor
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: Weve 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 well 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, youll 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 its 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 Suns 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, lets get a trademark! Seriously though, applet developers shouldnt 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 developers 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 well 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. Ill 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 (lets 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 todays 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 youll 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, Suns numerous sites. The other place you can go is to http://java.sun.com (but we point there too!). Theres 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 email@example.com to receive info on beta testing.
Dave: Who the heck is Duke, and why is he stealing Ahnolds limelight?
Greg: Hey, Dukes cool. Hes 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 Dukes protector. Like Terminator II, yeah.