O co vlastně jde
OpenStep for Windows, v4.2
OpenStep v užším slova smyslu je -- jak již jeho název naznačuje -- otevřeným stadardem, veřejnou specifikací objektově orientovaného API vyšší úrovně, implementovatelného nad libovolným operačním systémem, který splňuje určité minimální požadavky. Tento standard vyvinuly v roce 1994 firmy NeXT Software (dnes součást Apple Inc.) a Sun. Konkrétně se vlastně jedná o sadu knihoven, uspořádaných do dvou větších celků ApplicationKit a FoundationKit, plus systém PostScript. FoundationKit poskytuje základní objekty jako jsou pole, řetězce atp. ApplicationKit pak obsahuje bohatou sadu objektů uživatelského rozhraní, připravených k použití. Základním zobrazovacím prostředkem OpenStepu je PostScript, který je jeho nedílnou součástí. OpenStep v širším slova smyslu zahrnuje navíc objektový runtime a programovací jazyk Objective-C. OpenStep for Enterprise je pak konkrétní implementací tohoto standardu pro operační systémy Windows NT a 95.
K čemu je to dobré?
OpenStep představuje dnes pravděpodobně nejlépe a nejkompletněji navržené API. Při vší své bohatosti je přitom velmi konzistentní, díky čemuž se snadno učí a ještě snáze používá. Většina OpenStepovských programátorů "své API" doslova miluje. Pokud se k tomuto skvělému základu přidá luxusní a uživatelsky přítulné vývojové prostředí obdobné tomu, které dodává dnes firma Apple (ještě se k tomuto tématu vrátíme), bude výsledkem mnohem rychlejší a pružnější vývoj aplikací, než mohou dnes poskytnout jiná klasická či objektová prostředí.
V souvislosti s OpenStepem se často mluví o přenositelnosti -- ta je opravdu jednou z nosných myšlenek původního projektu. OpenStep zajišťuje stoprocentní přenositelnost na úrovni zdrojového kódu, a omezenou přenositelnost hotových přeložených aplikací (na rozdíl od interpretovaných systémů, jako např. Java, OpenStep využívá nativního kódu cílových strojů a tzv. fat binaries). Přenositelnost OpenStepu si autoři sami mnohokrát ověřili -- např. přenesení hotové aplikace obstarávající část agendy burzy cenných papírů, vytvořené pro OpenStep for MACH, na Windows NT s OpenStepem si vyžádalo pouze změnu cesty pro ukládání dat (z '/LocalLibrary/dataProBursu' na 'C:/bursa.dpb') a překompilování zdrojových kódů. Samozřejmě, pokud by se jednalo o komerční aplikaci, vyžádala by si celá operace více "kosmetických" úprav -- novou "windozeovskou" logiku rozmístění položek v menu aplikace, převedení nápovědy z HTML do windowsovského helpu a podobně.
Proč dát OpenStepu přednost před interpretovanými řešeními, jakými jsou například SMALLTALK nebo Java? Je vícero důvodů. Jedním z nich je výkonnostní hledisko, dalším je ve srovnání s Javou mnohem větší spolehlivost a stabilita, velmi dobře vyřešená podpora vícejazyčných aplikací a lokalizace, dostupnost téměř dokonalého vývojového prostředí atd. V neposlední řadě pak již zmiňovaná technická dokonalost a relativní vyzrálost návrhu celého API.
Suma sumárum, z libovolné implementace OpenStepu budou asi nejvíce profitovat firmy a organizace, které mají velkou potřebu vyvíjet a měnit vlastní aplikace, jež chtějí provozovat případně na více platformách. Malým vývojářům může pak OpenStep dát možnost díky zvýšené produktivitě práce konkurovat větším softwarovým domům: hezkým příkladem je www prohlížeč OmniWeb od firmy Omni Development, na kterém pracují dva lidé na částečný úvazek, a přesto je jejich produkt v mnoha ohledech lepší než ten, který vyrobil za roky vývoje tým programátorů firmy Netscape.
Samozřejmě se najdou oblasti, ve kterých OpenStep využití zatím nenajde. "Holý" OpenStep nepokrývá například problematiku zpracování zvuku, animací, nebo třeba oblast 3D grafiky (poznamenejme, že firma Apple, která nyní pracuje na rozvoji OpenStepu, připravuje také patřičná rozšíření).
Enterprise Objects Framework, WebObjects, ...
Ačkoli je sada služeb OpenStepu, jak uvidíme v dalších kapitolách, nesmírně luxusní, existují i některé zásadní oblasti, které nepokrývá. Dvě nejdůležitější jsou práce s databázemi a protokol HTTP. Proto existují standardní nadstavby, které služby OpenStepu rozšiřují o databázové služby a o komunikaci s využitím HTTP: jedná se o Enterprise Objects Framework, obvykle označovaný zkratkou EOF, a o systém WebObjects.
Oba systémy by si zasloužily samostatné články; proto se o nich zmíníme jen letem světem: EOF je vlastně middleware, které umožňuje využít obecně libovolný databázový server -- základem jsou samozřejmě výkonné servery, jako SyBase nebo Oracle -- jako základ plně objektového tříúrovňového databázového systému. Kromě luxusních knihoven máme navíc k dispozici nesmírně silné prostředky pro visuální programování; chceme-li např. zobrazit vybraný pohled na data v tabulce, nemusíme napsat ani řádek kódu -- stačí v InterfaceBuilderu (se kterým se podrobněji seznámíme v kapitole, věnované API) propojit tabulku se zvoleným pohledem; o vše ostatní se postará runtime.
Na podobně luxusní úrovni jsou i služby nadstavby WebObjects. Velmi zhruba řečeno, WebObjects umožňují vzít libovolnou aplikaci -- ať již šitou problému na míru, nebo již dávno hotovou -- a vybavit ji uživatelským rozhraním reprezentovaným zvnějšku protokolem HTML (z hlediska aplikačního programátora se samozřejmě jedná o plnohodnotný objektový systém). Díky tomu se pak vlastně libovolná aplikace může stát WWW serverem; uživatelé, kteří s takovou aplikací budou chtít pracovat, nepotřebují nic jiného, než přístup k síti, a zcela libovolný WWW browser. WebObjects jsou k dispozici v několika různých balících, které se liší mírou luxusu nabízených služeb; ten největší nabízí i dokonalou spolupráci s databázemi, odpovídající systému EOF. V něm pak je možné vytvářet interaktivní WWW aplikace, využívající velkých firemních databází: presentace výrobků, on-line obchodování, systémy rezervace letenek a podobně.