Open Source strikes back
Published: 24 Jan 2001 15:42 GMT
These are primarily Perl and Python -- and cross-platform components such as Mozilla's XPCOM and GNOME's (GNU Network Object Model Environment) lightweight CORBA (Common Object Request Broker Architecture). By taking the high road, these technologies are gaining ground.
This war of attrition is currently being played out across a murky, trench-laden, scorched-earth battlefield. The bodies strewn across the wasteland are wide-eyed, stubbly-faced kids right out of Developer U. Because they were drunk with zealotry, they never knew what hit them.
How will we end this destructive cycle of continually re-inventing the wheel with a new "one-off" dialect? For one, the libraries we currently have need to be stable and useable so we grow fond of them instead of putting up with them. A good Java package is both single-purpose and high-quality. We don't need anymore "Swiss army knife" APIs. (For more on quality APIs, see my earlier column on Sun's Java Community Process.)
We also need meta-libraries, the software embodiment of "think globally, act locally." A meta-library is a library that stretches globally to span diverse systems (thinks globally) and repackages them to appear the same as local libraries and objects (acts locally). If implemented in the Java Virtual Machine, meta-libraries would allow you to instantiate Python objects or invoke .Net services in a way comfortable (and transparent) to Java programmers. A good example of this is the JDOM API that tailors the global Document Object Model (DOM) API to the Java perspective. Other emerging examples of meta-libraries are Jython (formerly JPython) and Open Office's Universal Network Objects (UNO).
These early attempts are just the tip of the iceberg. The logical goal for meta-libraries is a global, seamless set of libraries accessible from any language and focused around the creation, exchange, and manipulation of XML. Such meta-libraries are not just a pipe dream, because the enabling technologies behind meta-libraries are the increasingly popular software execution engines: virtual machines, interpreters, containers, and runtimes. All these software programs can be engineered to work together. Just as Enterprise Java Beans sets standards for server-side Java software containers, the software industry now needs standards between runtimes, interpreters, and virtual machines.
The end of this war is in sight: Platforms and languages that don't "think globally and act locally" are heading for defeat.
To have your say online click on TalkBack and go to the ZDNet forums.


