Jak dál ve vývojových nástrojích

Směry v oblasti vývojových nástrojů programátora.
Martin Beran: Ještě před pár lety se programátoři dělili na „céčkaře“, zastánce Pascalu a zarputilé uživatele Basicu. Dnešní „informační věk“ na nás však chrlí takové množství technologií, že se v nich začínají ztrácet už i ti, kteří se vývojem aplikací zabývají.

Vývojové nástroje můžeme v zásadě rozdělit na tři skupiny: na nástroje generující nativní kód, na nástroje generující javový bytecode a na vývojové nástroje pro web. Některé nástroje zapadají i do více těchto skupin současně. Skupinu vývojových nástrojů generujících nativní kód by bylo možné dále dělit na nástroje založené na proprietárních jazycích (Visual Basic, Delphi apod.) nebo na standardizovaných jazycích (obvykle C++). Všechny renomované firmy, které se zabývají tvorbou vývojových nástrojů (Microsoft, Oracle, Sybase, Inprise a mnohé další) mají ve svém portfoliu zástupce všech výše jmenovaných skupin.

Všechny nástroje generující nativní kód podporují bezpečně dvaatřicetibitová Windows na platformě Intel. Dále bývají podporovány systémy Alpha, Macintosh, různé druhy Unixů a tu a tam ještě i šestnáctibitová Windows. Některé vývojové nástroje pro tyto „exotické“ platformy negenerují klasický přeložený kód proveditelný přímo procesorem, ale interpretovatelný p-code.

Poslední dobou je patrný trend přesunu zájmu od generátorů nativního kódu k vývojovým nástrojům založeným na Javě a vývojovým nástrojům pro web. Dodavatelské firmy dělají kolem těchto nástrojů velký humbuk, neboť zde mají příležitost získat dosud neokupovanou část trhu, ovšem klasické generátory tvoří stále jeho velmi významnou část.

Uvedené skupiny vývojových nástrojů jsou určeny pro tvorbu vrstvy uživatelského rozhraní a vrstvy aplikační logiky. Vývoj databázové vrstvy je záležitostí poněkud odlišnou. Systém řízení báze dat (neboli „databázový stroj“) se používá v zásadě libovolný obecně dostupný a vyvíjí se pouze datová základna. K tomu se používají různé vizuální návrhové prostředky.

Namaluj mi …
Dnešní doba přeje vývojovým nástrojům typu RAD. Ty umožňují vizuální tvorbu dialogových oken, menu, nástrojových lišt a jiných „viditelných“ částí aplikace. Umějí také automaticky generovat kostry pro ošetření událostí (klepnutí na tlačítko, vybrání položky z menu apod.), do kterých stačí jen dopsat vlastní kód. Některé vývojové nástroje jdou v tomto směru ještě dále a programátor-vývojář si potom jen vybírá z rozsáhlého seznamu akcí, které mohou být vloženy do kódu – např. uložení obsahu editačního políčka do proměnné nebo zaškrtnutí checkboxu. Tyto úkony se ještě obvykle dále parametrizují.

Vývoj aplikací samozřejmě není jen kreslení, propojování a kopírování několika řádek kódu z ukázkových aplikací. Tuto iluzi se jen snaží vytvořit firmy dodávající vývojové nástroje. Pokud mají aplikace vypadat tak, jak chcete vy (a ne tak, jak chtěli autoři vývojového nástroje), je to stále poctivá dřina. V okamžiku, kdy je třeba optimálním způsobem (co do pracnosti a rychlosti) naprogramovat určitou část obchodní logiky v konkrétním technologickém prostředí, se teprve ukáže, kdo je opravdový programátor.

Aplikace v nativním kódu
Aplikace v nativním kódu jsou vývojářům důvěrně známé, mají však společný kámen úrazu. Dobrá aplikace totiž musí být šitá na míru operačnímu systému. Aplikace by měla správně reagovat na události od operačního systému – žádosti o odpojení „docking station“ od sítě, žádosti o přepnutí do „power save“ módu, podpory více monitorů (s různým rozlišením a barevnou hloubkou), zasunutí nového zařízení plug-and-play, změnu systémového data nebo času a podobně. Je až neuvěřitelné, kolik aplikací podobné události naprosto ignoruje!

Java
Java se stala jedním z fenoménů světa informačních technologií. Je ovšem nutné od sebe oddělit dvě věci – Javu jako programovací jazyk a Javu jako platformově nezávislý bytecode. Je třeba si uvědomit, že zdrojový kód v Javě není nutné vždy překládat do platformově nezávislého tvaru (ale třeba i do nativního kódu) a naopak, javový bytecode nemusí nutně vzniknout překladem zdrojového kódu v Javě (ale třeba překladem jiného programovacího jazyka). Názory na Javu jako programovací jazyk se různí – ačkoliv ne každý jí hned přijde na chuť, má mnoho příjemných vlastností, které z ní mohou učinit rozšířený jazyk.

Význam Javy jako bytecodu je však v dnešním „okenním“ světě poněkud nejasný. Ačkoliv představa, že jeden kus kódu je možné spustit na všech počítačích a operačních systémech, je úchvatná, je třeba se ptát, jestli je to nutné.

Java původně začínala na straně klienta a byla určena zejména pro tvorbu uživatelského rozhraní. Zde byla zdůrazňována hlavně myšlenka její platformové nezávislosti. Obávám se ale, že z vrstvy uživatelského rozhraní bude Java dříve nebo později vytlačena webovými aplikacemi s rozhraním v HTML. Je třeba si totiž uvědomit, že uživatelské rozhraní v dynamickém HTML s využitím nějakého skriptovacího jazyka je zcela dostatečné a v podstatě se vyrovná možnostem Javy.

Java se v současnosti přesouvá do tzv. střední vrstvy, a to zejména proto, že zde neexistují dostatečně zaběhlé standardy a vývojářům přijde vhod platformová nezávislost. Na střední vrstvě je ale typicky vyžadován velký výkon, což není silná stránka Javy – ta zde bude proto svádět velký boj s generátory nativního kódu.

Hlavním přínosem Javy v současnosti je její schopnost integrovat prakticky jakékoliv technologie mnoha platforem od mnoha výrobců. Je však otázka, jak často je něco podobného potřeba.

Java je často kritizována pro svůj výkon, který je nižší než u klasického nativního kódu. Vlastní výkon – vyjádřený např. počtem transakcí za sekundu – není ale až tak důležitý. Mnohem důležitější je schopnost výkon škálovat. Tedy, jestli je možné jiným technickým vybavením systému výkon zvyšovat, a to pokud možno lineárně. Tato vlastnost zdaleka není vlastní všem systémům! Přitom je-li výkon škálovatelný, je dosažení požadovaného počtu transakcí jen záležitostí peněz a technologie. A ty jdou raketovým tempem kupředu.

Na rozdíl od mnoha jiných nevidím Javu jako alfu a omegu pro informační systémy příštího desetiletí. Do javových technologií bylo investováno mnoho finančních prostředků a ty zatím nepřinesly kýžený výsledek. Ostatně nejeden velký projekt v Javě byl zastaven nebo „odsunut na neurčito“ – za všechny bych jmenoval Corel Office for Java. Java totiž obvykle nepřináší žádné zvláštní výhody pro koncového uživatele a často mu naopak působí dokonce jisté problémy. Obávám se proto, že pokud se Java vbrzku nevzchopí, přestanou manažeři informačních systémů Javu podporovat. Java je více nahraditelná, než si většina lidí myslí!

Aplikace pro web
Aplikace pro Internet jsou a budou velmi významné. Jejich použití je výhodné všude tam, kde existuje velké množství klientů z různých platforem a počítačů. Velkou výhodou těchto aplikací je, že na klientskou stranu není třeba aplikaci instalovat.

Pro tvorbu webových aplikací se v současnosti většinou požívají různé generátory dynamických HTML-stránek. Za problém současných generátorů považuji, že uvnitř kódu neoddělují uživatelské rozhraní od obchodní logiky. Tomuo by mohlo napomoci využití standardů XML, které umožní separaci uživatelského rozhraní stránky (tj. části stránky, která se nemění) od dynamické části stránky, která bude generovaná aplikační logikou na straně serveru a doručována na klienta formou XML. V současné době ale neexistuje dostatek kvalitních nástrojů, které podporují XML – ať už to jsou prohlížeče, generátory dynamických stránek nebo vývojové nástroje.

Je také třeba se zamyslet nad tím, jak vypadá obchodní logika (střední vrstva) aplikací pro web. Pod tímto pojmem si obvykle představíme nějaký generátor dynamických stránek (Active Server Pages od Microsoftu nebo PHP). Střední vrstvu mohou také tvořit v zásadě jakékoliv komponenty, které jsou schopné generovat HTML. Protože ale generovat kompletní kód HTML je obvykle pracné, dává se obvykle přednost výše zmíněným generátorům dynamických stránek.

Je třeba si uvědomit, že přechodem na technologie XML se tento model změní. Na vytváření dynamických souborů XML nebude potřeba žádný speciální generátor. Tyto soubory bude stejně dobře možné generovat z Visual Basicu jako z Javy. Pro generování se budou používat také vhodné objektové knihovny, které toto generování zjednoduší. V tom model XML smyje rozdíly mezi nativními klienty, javovými klienty nebo klienty HTML. Obchodní logika navržená speciálně pro webové aplikace de facto zanikne.

V čem vyvíjet?
„Globální aplikace“ (tedy ty, které bude používat větší okruh předem neznámých uživatelů) je třeba vyvíjet tak, aby se daly snadno šířit a aby pracovaly efektivně na co největším počtu počítačů. Z tohoto důvodu se v současnosti používají generátory nativního kódu, neboť nativní kód je nejméně závislý na dalším instalovaném programovém vybavení. Pokud se v budoucnosti Java zbaví svých dětských nemocí a objeví se dostatek ne-windowsových zařízení, začne se pravděpodobně k jejich vývoji častěji používat Java.

Jestliže vaše aplikace potřebuje manipulovat s daty, pro nativní platformy je k dispozici řada „jednoduchých“ (malých) databázových strojů. Tyto databázové stroje, které často zvládají i velkou zátěž a podporují transakce, je obvykle možné distribuovat s aplikacemi zdarma. Pro Javu zatím podobné databázové stroje neexistují, což je v současnosti jistě velkou brzdou. Přístup k datům z Javy je řešen vesměs přístupem na vzdálený (i lokální) počítač, kde pracuje databázový stroj v nativním kódu. Tuto mezeru by také mohlo v budoucnu zaplnit XML.

Poměrně perspektivní oblastí jsou aplikace na poskytování různých elektronických služeb. Jedná se o různé jízdní řády, informační databáze, prodej zboží apod. Základním znakem těchto aplikací je, že jsou vždy distribuované (musí komunikovat s jakousi datovou základnou, společnou mnoha uživatelům). Pro tento typ aplikací se ukazuje naprosto ideální prostředí Internetu. Web klade na klienta minimální nároky: jak výkonově, tak požadavky na programové vybavení a správu. Veškeré nároky jsou zde přeneseny na střední vrstvu a případně na vrstvu datovou.

Na poli podnikových informačních systémů se na vrstvě uživatelského rozhraní i obchodní logiky používá prakticky vše. Je třeba vybírat pouze podle speciálních nároků konkrétního podniku na jednotlivé vrstvy informačního systému (zejména s respektováním záměrů do budoucna).

Kam se povine?
Je omletá pravda, že informační technologie se posouvají kupředu stále rychleji. Při vývoji technologií i konkrétních aplikací je ale stále třeba mít na mysli lidský faktor – tedy že technologie i aplikace musí sloužit v konečném důsledku člověku. Nezaměřujme se proto jen na technologie – se starými technologiemi je často možné dosáhnout mnohem lepších výsledků, pokud jsou použity správným způsobem.

Vítězit nebudou ti, jejichž řešení bude technicky nejelegantnější, ale ti, jejichž řešení bude nejlépe odpovídat požadavkům lidí – konkrétních bytostí s tělem a psychikou. Pamatujte: Jde o služby uživateli, nikoliv o technologie.

Zdroj: Computer

Diskuze (1) Další článek: Cíglerovy Money pro DOS zdarma!

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,