Lotus předvedl nedávno své Lotus Components. Bylo to působivé. Tyto komponenty jsou nádherným únikem před objemným, pomalým a k chybám náchylným systémem OLE nebo před omezeními na připojování velkých tabulkových kalkulací k dokumentům Lotus Notes.
Základní souhrn komponent obsahuje tabulkové kalkulace, diagramy, prohlížeč souborů, plánovač projektů, nástroje na kreslení a připojitelné poznámky. Nenajdeme zde jemnůstky, jako je např. zvukový přehrávač. Jsou k tomu dobré důvody, ale k tomu se dostaneme za chvíli.
Co se mi na Lotus Components skutečně líbí, je, že jsou dobře vyladěny na snadnost přechodu od starších monolitických aplikací. Komponenta tabulkových kalkulací např. interpretuje data z různých zdrojů. Dokonce vám umožní používání některých konvencí na vstup dat z Excelu kromě toho, že funguje jako Lotus 1-2-3.
Dobré, špatné a pěkné
Lotus Components jsou překrásným příkladem komponentů s hrubou granulací. Problém je, že potřebují ActiveX, který opakuje některé typické problémy monolitického softwaru, které měly Lotus Components vyřešit -- omezenou podporu různých platforem, veliké nároky na paměť a nafouklé funkční celky.
Vezměme např. paměť. Umístíte-li do dokumentu aktivní komponentu ActiveX, neuloží se pouze data -- uloží se i kód ActiveX. Lotus říká, že průměrná velikost dodaná do dokumentu Notes je 150 KB pro každou komponentu, kterou přidáte, a to před vstupem dat.
Oproti tomu OpenDoc ukládá data, nikoli kód. Výkonný kód pro každou komponentu žije ve tvaru lokálního nebo vzdáleného prohlížeče (který by měli dát prodejci k volnému použití, aby se na dokument OpenDoc mohl podívat každý), nebo jako editor částí (za který by se mělo naopak platit).
Ať s OpenDoc nebo s ActiveX, jednou umístíte tabulkovou komponentu a zjistíte, že chybí právě ta vlastnost vizuálního objektu, kterou potřebujete nebo chcete. Naneštěstí nejsou části ActiveX kontejnery, takže nelze dodat, co potřebujete, zahrnutím další části (z toho plyne nedostatek drobně granulovaných komponent v suitě komponent).
Můžete zavolat k Lotusům a chtít na nich, aby tuto schopnost do komponenty tabulkových kalkulací přidali. A předpokládejme, že by to i udělali. Přidají vaši funkčnost spolu s 500 dalšími vymyšlenostmi, které požadovali jiní uživatelé. Verze 2.0 komponenty tabulkových kalkulací dnes přidá k vašemu dokumentu Notes půl MB nebo víc, jakmile ji tam umístíte. A jste zpátky u monolitického modelu.
Oproti tomu byl OpenDoc vystavěn právě pro podporu takové úrovně neomezené granularity a modularity. Do své komponenty OpenDoc pro tabulkové kalkulace umístíte jinou část OpenDoc, která přidá právě jen tu jedinou funkci, kterou v daném okamžiku potřebujete. A co je nejlepší, zítra se můžete rozhodnout, že ji vypustíte.
Takto se bude realizovat skutečný potenciál komponentového softwaru -- abyste mohli vzít komponenty různých velikostí a kombinovat je jakýmkoli způsobem, který povede k vykonání vaší práce. A co je nejlepší, i když bude někdo tak hloupý, aby navrhl část OpenDoc jako monolitickou aplikaci, pořád se přidá k cílovému dokumentu jen o málo víc, než je velikost dat.
Skutečnost, že OpenDoc ukládá pouze data, má i vedlejší výhodu, že si totiž příjemci mohou zvolit editor částí, je-li jich k dispozici víc. Jsou-li data tabulky ve všeobecně používaném formátu, není žádný důvod pro to, aby každý nemohl používat svoji oblíbenou tabulkovou komponentu OpenDoc. Protože OpenDoc ukládá pouze data, je vyloučeno proniknutí virů nebo trojských koní při sdílení dokumentů.
Co se týká nezávislosti na platformě, všechny tyto komponenty dnes rovnou poběží na Windows 95 nebo Windows NT. Lotus neplánuje převod těchto komponent na Windows 3.1. Microsoft slibuje podporu ActiveX pro Macintoshe, avšak dostane-li některý z uživatelů Notes ve Windows 3.1, na Macintoshi, v Unixu nebo v OS/2 dokument s komponentem ActiveX, vše, co dostane, je renderovaná grafika v místě, kde má komponent být.
To je další důvod, proč měl Lotus použít OpenDoc. Volba Lotusu vyvíjet cílový produkt pro Notes s ActiveX neguje jednu z nejsilnějších stránek Notes -- podporu široké platformy.
Za všechno může načasování
Předvedl jsem tyto argumenty lidem od Lotusu a bylo zajímavé, že se nebránili, ani neměli námitky. Rozhodnutí jít s ActiveX nemá žádnou souvislost s technologií, nýbrž s časem.
OpenDoc si vede dobře na Macintoshi s vynikající internetovou suitou CyberDog od Apple. Dokonce i Spyglass převádí svůj prohledávač na množinu dokumentů OpenDoc (ironií je, že na tento prohledávač má licenci Microsoft pro Internet Explorer). Ale OpenDoc ještě není hotov pro Windows a pochopitelně by to pro Lotus vypadalo bledě, kdyby zaostal za jinými dodavateli windowsovských aplikací, kteří připravují komponenty s ActiveX.
Naštěstí pro Lotus jsou jeho komponenty na povrchu tak přitažlivé, že se budou určitě prodávat. Lotus Components budou uživatele seznamovat obecně s touto technologií bez ohledu na nedostatky ActiveX. Je otázkou, zda se lidé přeorientují na OpenDoc, když se dostanou do úzkých a bude jim obtížné tahat se s ActiveX. Budou-li velké komponenty OpenDoc pro Windows k dispozici dřív, než se ActiveX ujme, nemám žádné pochybnosti, že komponenty s ActiveX selžou. Technologická propast mezi oběma přístupy je totiž příliš velká.
Nebude-li tomu tak, stane se ActiveX standardem de facto navzdory předpovědi, kterou jsem právě udělal. Bohužel do doby, kdy si lidé začnou uvědomovat, jak je technologie ActiveX špatná, může už být stejně všudypřítomná jako Windows. Stejně jako u Windows se jí většina uživatelů nezbaví -- budou trpělivě čekat, že se zlepší.
Stane-li se to, dosáhnou komponenty svých možností o tři až pět let později, než by mohly -- ale věřím, že se do tohoto stavu dostanou. Samozřejmě se uživatelé OpenDoc budou vytahovat, že byli první, a budou obecně považováni za nekonformní (stejně jako jsou dnes posuzováni uživatelé OS/2 a Unixu); "realisté" na ně budou pohlížet shovívavě, protože nikdy nepochopí, proč nemohou být technicky zaměření lidé spokojeni s tím, co je dost dobré. I když je to pořádně špatné.