WordType Designs
Driven To Distractions©
The Sound of One Hand Clapping©


A rchive Date
[ 27-01-2001 ]
Category
[ Information Technologies ]
sub-Categoy
[ Microsoft ]

      [Libraries are dead -- long live meta-libraries!
      By Michael C. Daconta, ZDNet Business & Technology
       
      For more than two decades, Microsoft wielded its DOS, Windows, and Win32 APIs as weapons to foster the Windows/Office duopoly. Industry reaction to this extremism was to fight fire with fire. Competing developers created an explosion of alternate APIs in every language, operating system, windowing system, application server, and Web service.

      Though growing exponentially in both number and size, programming libraries are obsolete as political weapons. They have been steadily marginalized as competing dialects of the same mother tongue. Developers must reject this parochialism and demand meta-libraries: Libraries that span existing, disparate libraries in a transparent manner.

      There are currently three distinct powers in the library war: the Java camp, Microsoft, and the open source community. Each army approaches the battlefield with the rallying cry, "Who controls the API, controls the universe!"

      Sun struck a blow against Win32 with Java's Write Once, Run Anywhere (WORA) which promised a single API that could span all operating systems. IBM, Oracle, and other anti-Wintel forces quickly joined Sun to support and improve the Java platform. Unfortunately, Java developers have locked themselves into one programming language in the same way that Microsoft's APIs locked them into an operating system.

      Microsoft responded to Java with a three-pronged attack: C#, which Microsoft touts as a superior programming language; .Net, which attempts to give developers a cross-language library; and the Simple Object Access Protocol (SOAP), which provides both cross-language and cross-platform network services. A problem with all three of these today is that they are all immature. Another problem is the general mistrust of Microsoft's motives. For example, can developers trust that the .Net platform will be truly cross-language and not favor Microsoft-supported languages like Visual Basic and C#?

      The open source community's answer to the other camps is open source language alternatives - 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.

      Michael C. Daconta is the director of Web and technology services for McDonald Bradley, Inc. where he conducts training seminars and develops advanced systems with Java, JavaScript, and XML. ]
      Cross-Indexed:

      New document Icon


Some pages may require Adobe Acrobat Reader



Copyright and Fair Use Information: The contents of this web site is protected by international copyright laws and may not be reproduced in any form or manner whatsoever, if for the purpose of resale or solicitation of a donation. The essays included here, may be reproduced only if: 1)They are not altered in any way; 2) reproductions must be accompanied by this copyright page ; and 3) it is given freely and without charge.
Fair use: The fair use of copyrighted work, including such use by reproduction in copies or phonorecords or by any other means specified in above sections, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright. In determining whether the use made of a work in any particular case is fair use the factors to be considered include : (1) the purpose and character of the use, including whether the use is of a commercial nature or is for nonprofit educational purposes; (2) the nature of the copyrighted work; (3) the amount and substantiality of the portion used in relation to the copyrighted work as a whole, and; (4) the effect of the use upon the potential market value of the copyrighted work.

Home | About Narrative? |Contact
Copyright © 2025. All Rights Reserved
HAG122125 (1998 -2026)