What's the easiest way to make ten million dollars?" goes the old joke. "First, get a million dollars," is the old answer. Success breeds success, and in the software business success is measured as much in market share as in revenue. Market share is an awesome but fickle force. In the Internet today, there are major market share leaders: Netscape in Web browsers, and Microsoft in everything else. As a new set of de facto standards evolves in the next few years, market share as much as technological elegance will enable dominance.
While most people are focused on the Internet, Zona Research, IDC, and other industry analysts forecast that the majority of corporate IT spending will be on intranets. Forecasts vary, but nearly every analysis predicts at least three to five times more spending on intranet versus Internet sites. Many thoughtful studies, including those from InfoWorld ("The Internet in the Enterprise," November 1995) and Zona, conclude that the corporate intranet will provide more than just information retrieval; it will become the preeminent platform for distributed computing.
Life behind the corporate firewall is different. While most corporations are creating new content for the Internet, they expect to reuse existing content on the intranet: documents, databases, programs, and programmers. Reuse of existing components will be a key factor for corporate intranet developers.
Apples and oranges
In the overhyped world of the Internet, verbs have no tenses and words have no fixed meaning. This has lead to some significant confusion over the potential competition between Java and ActiveX for the development of distributed software. The technologies overlap significantly, but they also evidence major differences. Technically, ActiveX refers to a software component written in a language like Visual Basic, C++, or Java that conforms to a specific Microsoft API. Technically, Java refers to an object-oriented programming language and an associated execution environment. As such they are as different as apples and oranges.
In the practical world of corporate computing, however, Java and ActiveX are only as different as Cortlands and Macintoshes. The words "Java" and "ActiveX" have expanded meanings that include many associated APIs, technologies, and concepts. The following table summarizes those that are common today.
|Development Language||Java||Visual Basic, C++, Java|
|Execution environment||Virtual machine||Internet Explorer, Window|
|User interface||Browser, viewer||Internet Explorer, Window|
|Component API||Java Beans||ActiveX|
|Computer platform||Any||Wintel, Macintosh|
|Security||Sandbox, signed code||Signed code|
|Distribution API||IIOP (Internet Inter-ORB)||DCOM (Distributed COM)|
ActiveX and Java mean many things to many people, depending on background and environment. Some of these common meanings confuse "Netscape" and "Microsoft" with "Java" and "ActiveX," and therein lies the real story. As Netscape and Microsoft battle for Net dominance, both Java and ActiveX are key pieces on the board.
ActiveX has made its mark as the heir of OCX, one of the world's most popular components for implementing business logic. Java has been most successful as an applet-building language. Both Microsoft and JavaSoft have been active in filling in the holes in their visions. Microsoft has been getting Java tools to market, and making sure Java applets can execute in its browsers as easily as ActiveX components. JavaSoft has announced Java Beans as its attempt at beating ActiveX in building components. Microsoft has turned to standards organizations in an attempt to put a more pleasing face on its very valuable monopoly. While Microsoft pushes DCOM as a solution to distributed computing, Netscape has licensed Java-based Internet Inter-ORB Protocol software from Visigenics as a standard component for its browsers.
Whatever the connotations of the words themselves, Java and ActiveX will be major components in distributed computing. Picking a winner in the Internet is easy; it's Java. Both technologies have their strengths and weaknesses, but the major factor leading to Java's Internet dominance will be its most elemental one: cross-platform execution. The defining characteristic of the Internet is the impossibility of mandating a standard client environment. Different browsers, operating systems, and hardware will be in use. Applications will need to execute on Netscape and Microsoft browsers as well as on a variety of computers and Internet appliances. Software developers recognize this fact and are moving rapidy to Java as the best environment for heterogeneous computing.
In late July, Microsoft announced its intention to transfer ownership and future development of some portion of its ActiveX technology (especially DCOM) to an outside, but as yet unnamed, standards group. This move may ultimately lead to a heterogeneous definition of ActiveX. Even if this comes about, however, Java has a technical lead and enough market momentum that it will be hard to beat in the Internet
The intranet is where the action is, and here there is no obvious winner. Behind the firewall, corporations can mandate something close to a homogeneous computing environment. In fact, many of them already have. Windows clients are by far the preferred choice on corporate desktops, while Windows NT, Unix, and IBM dominate on servers. Corporations have made a tremendous investment in desktop and client/server software and they expect to reuse it in their intranets. Most of the desktop content and a growing percentage of the server content is already Windows-based. This gives ActiveX a significant lead on the intranet client.
The first promise of ActiveX is that it will let developers publish new and existing OLE content in browsers, or more specifically, in Microsoft's Internet Explorer. Live Excel spreadsheets, PowerPoint presentations, and other popular desktop formats will be available through Internet Explorer. ActiveX's other major promise is that it will provide an easy migration path for existing business logic conforming to the existing OCX API. When one considers the large body of OCXes written in Visual Basic or C++ that exist in many companies, and the large base of corporate developers conversant in these languages, this is a major advantage for any beleaguered IS staff.
However, these advantages come with some tradeoffs. As a practical matter, users may have live Excel spreadsheets available in their browser as long as the browser is Internet Explorer, the operating system is Windows, the platform is Intel, and either Excel or an Excel runtime is available on their client machine. Publishing live OLE content in the browser is a significant advantage for ActiveX, as long as a company can maintain a homogeneous Microsoft environment. Netscape calls ActiveX "CaptiveX." In this context the term is not far from the truth.
The issue of migrating existing OCXes and programming staffs into the intranet may be the defining one. Most companies have a tremendous sunk cost in existing business logic and overworked programming staffs. Reusing existing logic and programmers may well make ActiveX a standard behind the firewall.
Clients and servers
Business logic must execute somewhere. When it must execute across both clients and servers, Java has the edge. Java has the best hope of providing true platform-independent computing. On the server, in particular, Java has a real opportunity to shine. As JDBC database connectivity becomes prevalent, as Java finds its way onto virtually every computer architecture and operating system, and as better development tools find their way to market, Java will have removed all technical obstacles from its path to becoming the king of serverdom.
No matter how successful Microsoft is in making ActiveX an industry standard, it does not have the potential to be a major player on non-Wintel servers. Windows NT is rapidly making inroads into the market for corporate servers. However, Unix and IBM platforms like the AS/400 will continue to command significant market share in the corporate intranet. Unless and until ActiveX becomes a cross-platform standard, it will always have a problem in dominating the intranet.
Java is a winner in the Internet, where heterogeneous computing is mandatory. Both Java and ActiveX have major advantages in the intranet. The next several years will see many ups and downs for both technologies. Market share will be as important as technology in determining the victor. Only Netscape's 40 million browsers have a chance of competing with Microsoft's enormous installed base.
It's still too close to make a call in the intranet. If Java wins, the most important reason will be this: The best, most portable, most heterogeneous ActiveX component in the world is a Java applet.
Learn more about this topic
- For a discussion of the Java/ActiveX "collaboration," see the article Opening the ActiveX files in the September issue of NetscapeWorld.
- For the story on NCR's use of ActiveX in its products, see NCR adds ActiveX capabilities to TOP END in the September issue of NetscapeWorld.
- SunWorld Online's current issue features a story on Java versus ActiveX.