News: Java versus ActiveX

Jonathan, Jeon (hollobit@kisco.co.kr)
Thu, 5 Sep 1996 10:04:32 +0900

HyperNews notification. Reply via:
http://www.kisco.co.kr/HyperNews/get/intranet/60/6.html

Original SunWorld Page[1]

Java versus ActiveX

The marketing war is on, but which offers the better technology?
By Robert E. Lee
-----------------------------------------------------------------------
Abstract

The debate of whether ActiveX or Java is the way to develop
Internet solutions is a misunderstanding of the terms and the
technologies they represent. Rather than one or the other, the
two actually intertwine in a complementary role (at least for
Windows users). Before you embark on your development project,
take the time to understand where each technology fits and what
each requires of you.
(2,300 words)

T he battle lines are drawn and combat is being waged on many fronts.
The problem for us innocent bystanders is picking our way through the
marketing barrage in an attempt to find the Internet programming
technology best suited for our own (and our users') needs. But before we
can pick the best programming axe we need to understand the stakes in
the larger marketing war.

In the spring of 1995, before Microsoft began to comprehend the
Internet's implications, Sun Microsystems released and announced (yes,
in that order) the Java programming language. Microsoft responded with a
half-hearted repositioning of its OLE (Object Linking and Embedding)
controls (known as OCXes) as the ideal platform to develop client/server
applications. On the defensive for the first time in its existence,
Microsoft recognized it had to control the battlefield. Microsoft
created the brand ActiveX to represent the generic term for distributed
client/server objects on the Internet. While technology is an issue,
Microsoft sees terminology as the battle to be won. Whoever owns the
terms, according to Microsoft's marketing chiefs, owns the market.

JavaSoft, the Sun Microsystems company responsible for Java, recognize
this too. JavaSoft is protecting Java through the trademark process and
aggressive enforcement of its rights in this area. In an open letter to
the Internet community, JavaSoft president Alan Baratz presented the
same reasoning that Microsoft has for wanting to own the general term
and for also controlling the implied quality the term represents.
JavaSoft intends to limit the use of Java to describe only those
solutions that meet its licensing standards -- to provide "assurance
that the application will run across all platforms or that the platform
is compatible with the (Java) technology."

So where does all this marketing leave you? For starters, most analysts
and users believe the market will embrace what both companies provide,
for better or worse. Sun created the market. The move by Microsoft this
spring to license Java is doing two key things for its strategy: It
placates Windows users and developers by assuring Microsoft products
will run the de facto Internet programming standard Java, and it allows
Microsoft to try and place Java technology in the role of an ActiveX
component technology. With Windows developers committing to both
technologies, the decision on which platform to adopt becomes motivated
by non-technological factors.

ActiveX defined
To compare the two technologies, it helps to understand what really
defines ActiveX. The term is intended to brand an entire line of Windows
technology. The technology can exist within the framework of an Internet
browser or a standalone Windows application. Existing programs and
technologies can be considered ActiveX-capable based on some of the key
technology foundations of ActiveX, like OLE controls now marketed as
ActiveX Controls.

So extensive is this framework of technologies, hundreds of developers
jumped on board when ActiveX was announced in March 1996. Many of these
companies, like Metrowerks which is co-developing with Microsoft an
ActiveX and Java capability for the Macintosh through the Microsoft
Internet Explorer, are planning to build software using Java and ActiveX
components. NCompass Labs worked with Microsoft to co-develop an ActiveX
plug-in for the Windows version of Netscape's Navigator, allowing the
browser to run ActiveX components.

Microsoft concedes that Java is a powerful procedural programming
language. Microsoft agrees with Sun's Eric Schmidt, chief technology
officer, who describes Java as a "C plus-plus-minus-minus" language,
encompassing the best of C++ without the overhead. Further insight into
the minds of Microsoft reveals that it sees Java as "an awesome tool for
creating server applications." A white paper on the integration of Java
and COM (Component Object Model), on which the OLE technology has been
built, expresses Microsoft's belief in leveraging the Java programmer
base and the inherent compatibility between Java and COM to build a
robust market for ActiveX technologies. This white paper is available at
http://www.microsoft.com/visualc/jakarta/whitep/JavaCOM1.htm . It is
short, to the point, and worth the quick visit to better understand
Microsoft's position here.

Cross-platform support
>From a Windows developer's perspective, what is Java up against? Today,
Java competes with Microsoft Visual C++ and Visual Basic, Borland
Delphi, and any other programming resource capable of producing
platform-specific code that can call ActiveX components. Microsoft has
delivered its Java development environment Visual J++, to add to the
development tools list. Visual J++ promises a single toolkit to develop
Java and ActiveX-based applications.

At the recent WWLive event presented by Microsoft in July, the chief
technology officer for Starwave commented that the Microsoft Java
virtual machine is the fastest implementation in the industry today.
This assertion is bolstered by the CaffieneMark benchmark results that
Pendragon Software has compiled from hundreds of users on the Internet.
This benchmark currently shows that the Microsoft Java VM outperforms
Netscape by nearly two to one across almost all categories.

Microsoft has promised that this virtual machine, which supports the
Internet Explorer browser, will be ported to the Macintosh and Unix
platforms before the end of this year. Bristol Technology and Mainsoft
Corp. have been working with Microsoft for a number of years to create
compatible APIs on various Unix platforms, laying the groundwork for
ActiveX components for Unix. Metrowerks is leading the charge to provide
this functionality on the Macintosh platform, where Metrowerks commands
a 90 percent marketshare among Macintosh developers.

Not to be left out, Windows 3.x will receive a number of Internet
Explorer enhancements, though not the complete set in the 32-bit
operating systems. It should be noted that at present no one delivers a
Java solution in the Windows 3.x environment, although it is expected
that Netscape will have the beta for this platform in September.

The strength of Java comes from the cross-platform support it provides.
In the present form, applets are capable of running on any Java-capable
browser on any operating system supported by that browser technology.
ActiveX, on the other hand, is strongly tied to Windows at the present
because of the reliance on the Visual Basic environment. The porting of
Internet Explorer to non-Windows platforms hints at a movement by
Microsoft to support Visual Basic on these non-Windows machines. If
Microsoft does create Visual Basic Script support on these platforms,
Jeff Morgenthal, Program Manager, Information Highway Initiative at DH
Brown Associates, predicts that VBScript will become the dominate
language of the Internet. Morgenthal sees weaknesses in the VBScript and
Visual Basic environment that places Java on top for enterprise wide
solutions. He concedes, however, that the majority of the market will go
with the Microsoft solution because it will meet their lower-level needs
and can be developed by newer programmers just entering the market.

One of Java's strengths is support of the Java Virtual Machine (JVM) on
virtually every operating system. The JVM is, in effect, an interpreter
that converts Java applet code into something the local operating system
and hardware can understand. It is this approach that has led to the
positive and negative forecasts for the technology. The good news is the
ability of the programmer to develop applications without regard to the
target operating system. But, Microsoft says, this power comes at the
expense of performance. It's here that Microsoft attempts to gain a
toehold.

Microsoft argues that ActiveX programming languages and development
tools are variants on the compiled languages scores of Windows
developers know and love today. The number of experienced Windows
programmers using any of the programming languages capable of invoking
ActiveX controls far outweighs the ranks of Java-capable programmers.

But ruling out Java for reasons of compiled code across platforms isn't
fair today, since Java development tools are available for Windows,
Macintosh, OS/2, and Unix platforms. IBM, Symantec, Microsoft, Sun, and
many others are making sure Java will be supported on the widest range
of systems possible.

Building on COM
The entire software industry recognizes the intense need to truly
deliver COM objects and technologies to release the power of all the
computer systems in the market today. Microsoft has been attempting to
sway the industry toward the OLE model as the foundation for this move,
in part by building ActiveX Controls on a COM foundation. The Object
Management Group and Component Integration Laboratories OpenDoc industry
standard has gained ground as a key competing technology in creating
interoperability and management of complex document objects. At the
JavaOne developers conference in May, IBM announced Arabica, a Java
Beans-based tool, to integrate OpenDoc with Java and provide the
connectivity between Internet applications and the enterprise.

However, the real power of Java and the competing technology comes from
the future potential to develop complete applications. Java is
developing into a complete language that provides developers with the
ability to build enterprisewide solutions from the ground up. But as a
newcomer to the party, there are some inherent problems in this stage of
the game. Many applications already exist in well-established
programming languages. What is the incentive for a developer to port an
application to Java when it is easier to evolve the program to the
Internet? Microsoft is betting that developers will migrate instead of
port.

By building on COM, Microsoft has placed ActiveX at the heart of being
open and accessible to the world. Consequently, this made major
applications open to reuse in the Internet environment. For example,
Lotus will ship a new version of Mobile Web Information Manager, which
promises to be totally integrated with the Internet and will incorporate
ActiveX technology in addition to Lotus Internet technologies. As other
technologies follow, like Lotus components for Notes which provide key
spreadsheet and other functions, developers will have a wide range of
choices for objects to fulfill specific functional needs. Writing many
modules from the ground up will only be done for the more specialized
functions required of applications and for companies that will offer new
generic Java applets and ActiveX objects.

Part of the advantage of Java over ActiveX today is the size of the
objects. Because Microsoft has built its foundation on the old OLE
architecture, it suffers from large components that must exist on the
client machine or be downloaded. Many strategies have been devised to
reduce this overhead, but none yet approach the level Java offers today.
Just like Java though, once a control is downloaded, it remains
available to all other controls that require it, providing the
lightening fast response that a locally-run program provides. Again,
Morgenthal believes Microsoft can gain a leg up on Java if it implements
these controls using DCOM (Distributed Common Object Model), which
Microsoft has not indicated it will do as part of its near-term plans
for the Internet.

Is it in the construction?
Perhaps the last major question is whether the construction of applets
versus objects and ActiveX versus Java applications offers any distinct
advantage over each other. Again, there are no truly defining
characteristics here.

>From a purely technical point of view, the creation of Java applets is
very similar to the creation of ActiveX Controls. Both are capable of
creating small-code modules for download to the client. Another factor
to consider is the ability of Java code to call ActiveX Controls, since
they appear as COM objects to Java. Microsoft is ensuring that this is a
two-way street by showing Java applets as ActiveX Controls within the
Microsoft Java VM. This part of the Microsoft strategy makes it more
likely that Java programmers will look for and incorporate ActiveX
Controls into their projects.

This open ability to construct ActiveX Controls in the language of your
choice enhances the position that Microsoft has created a more open
system. With three basic environments from which you can develop new
controls, key decisions must be made to control the size of the code.
Standard OLE development can be done in C++ with the Microsoft
Foundation Classes, an approach that can yield code and support DLL
library files that easily exceed one megabyte -- not the best choice for
downloading the first time but is great after that. The ActiveX
development kit provides very small code, but requires greater expertise
with OLE COM and the ActiveX control architecture. The last choice, the
ActiveX template library, is a step up from the second choice, giving
you the benefit of OLE control code in the template.

How about client/server?
With the pending release of the Java IDL (Interface Definition Language)
and Java RMI (Remote Method Invocation) the development of sophisticated
client/server applications is not far behind. This technology opens the
door to keeping significant code functions back on the server -- having
Java code on the client performs only the necessary functions to
interface the user to the core of the application. Enterprise-level
applications using Java may become a reality with this development.

But Microsoft can claim to offer the same functionality within the
ActiveX framework. With the release of NT 4.0 and support for DCOM,
ActiveX controls will enter the same level of advantage Java brings to
the market. The ActiveX Server technologies are going through beta this
fall and show the potential to create powerful client/server solutions
within the framework of the Internet.

One other development from Microsoft, code-named Nashville, is the
Internet Explorer 4.0 product. It is more than a browser. This
technology extends the entire framework of Internet controls and display
controls to the operating system and into application development. With
plans to port this technology to other platforms, organizations will
have the ability to create standard client interfaces for applications
across all operating systems and to allow for customization at a user
level through the familiar HTML framework.

And the winner is
It's still too early to tell. The sure bet is that both sides offer
strong technology platforms. Where JavaSoft has gained the required
support to keep the technology around, in spite of performance or
security concerns, or the need to train programmers in a new language,
Microsoft continues to lumber in and win marketshare by brute force.

In overall standings, Microsoft's approach provides a stronger link to
current technologies and the resource pool of programmers on the market
today. There are also more experts in C++ than Java. Seeing Java
developers add ActiveX to their stable enhances Microsoft's position and
the belief that its approach is sound.

But the most important aspect in this war is the recognition Java is
battling on the level of a language and development tool, while
Microsoft wages the battle a level above. This indicates Microsoft has a
strategy for the entire project, not just for individual programs.

This technology frontier is changing so rapidly -- even a lapse of a few
months puts you behind the knowledge curve. Take some time to visit the
Java site at http://www.javasoft.com and the ActiveX site at
http://www.microsoft.com/IntDev/inttech/ . First, settle into developing
on the platform you have the most expertise. But no matter what you do,
the line will be crossed at some point, and you will end up developing
in one or the other for some aspect of your project. [][2]

About the author
Robert E. Lee is a technology consultant, speaker, columnist, and author
who has been in the computer industry for 20 years. He specializes in
networking, Internet strategies, systems analysis and design activities,
and has participated in the Windows NT and Internet betas since the
start of those products. He can be reached via e-mail at
rob.lee@sunworld.com.

Resources

* Blundon's Corner: Java and ActiveX[3] by William Blundon, JavaWorld ,
September 1996.
http://www.javaworld.com/jw-09-1996/jw-09-blundon.html
* Bristol Technology[4] http://www.bristol.com
* JavaSoft[5] http://www.javasoft.com
* Mainsoft Corp.[6] http://www.mainsoft.com
* Metrowerks[7] http://www.metrowerks.com
* Microsoft ActiveX site[8] http://www.microsoft.com/IntDev/inttech
* Microsoft white paper[9] (Java and COM integration)
http://www.microsoft.com/visualc/jakarta/whitep/JavaCOM1.htm
* NCompass Labs[10] http://www.ncompasslabs.com
* Pendragon Software[11] http://www.webfayre.com

-----------------------------------------------------------------------
[1] http://www.sun.com/sunworldonline/swol-09-1996/swol-09-activex.html
[2] /sunworldonline/icons/dingbat.gif
[3] http://www.javaworld.com/jw-09-1996/jw-09-blundon.html
[4] http://www.bristol.com
[5] http://www.javasoft.com
[6] http://www.mainsoft.com
[7] http://www.metrowerks.com
[8] http://www.microsoft.com/IntDev/inttech/
[9] http://www.microsoft.com/visualc/jakarta/whitep/JavaCOM1.htm
[10] http://www.ncompasslabs.com
[11] http://www.webfayre.com