Co se očekává od vývojového nástroje

Vývojářský svět se už dnes nedělí na "bejzikáře" a "anti-bejzikáře" jako v dávné minulosti, ani na "pascalisty" ...


Vývojářský svět se už dnes nedělí na "bejzikáře" a "anti-bejzikáře" jako v
dávné minulosti, ani na "pascalisty" a "céčkaře" jako v minulosti nedáv-né, ale
vyvinulo se několik vět-ví programovacích jazyků a vývojových nástrojů, které
spolu soupeří o dominanci na trhu. Podívejme se na to, jaké vlastnosti by měl
mít kvalitní vývojový nástroj pro desktopové aplikace na platformě Wintel.
Programovací jazyk
O tom, jaký programovací jazyk použít, se vedou debaty od počátků programování.
Nabídka programovacích jazyků je široká, ale ve větším měřítku je používáno
pouze několik druhů.
To, jaký programovací jazyk si zvolit, záleží většinou na uživatelově předchozí
zkušenosti. Ti, kteří dříve programovali v C a C++, budou požívat tento jazyk i
déle, "pascalisté" si svůj ObjectPascal velmi rádi udrží i v Delphi,
obdivovatelé Javy budou programovat v Javě.
Je nutné upozornit, že učit se nový programovací jazyk, zcela odlišný od
nějakého dřívějšího, je přibližně stejně náročné, jako se učit například
angličtinu či němčinu bez předchozích znalostí. Je sice pravda, že určité
postupy, strukturalizace programů, dělení na knihovny, procedury, funkce apod.,
jsou ve všech používaných jazycích řešeny podobně, ale jádra programovacích
jazyků se výrazně liší. Rozhodně se nedá předpokládat, že po dvou týdnech
studia je programátor schopen napsat složité strukturované výtvory.
Vývojové prostředí
Vývojové prostředí je program, ve kterém se vytvářejí nové programy. Pro
naprosté fanatiky může být vývojovým prostředím pouhý hexaeditor, my ostatní
dáme raději přednost něčemu vizuálnímu.
Vývojové prostředí musí být především přehledné a lehce ovladatelné. Všechny
důležité věci, jako jsou parametry objektů, obsluhy událostí a podobně, musí
být lehce přístupny, nejlépe po stisknutí myši. Velmi cennou vlastností jsou
různé automatizace automatická tvorba hlaviček a patiček procedur, generování
struktur podle přidávání vizuálních komponent na plochu a podobně. To všechno
šetří programátorovi nudnou, stereotypní a do jisté míry i zbytečnou práci a
může se tak věnovat skutečné tvorbě programů.
Co se týká vizuálních komponent, jejich palety musí být bohaté a dobře
přístupné. Zároveň musí být umožněna tvorba vlastních komponent a případné
přidávání cizích výtvorů. To je velmi důležité proto, aby se mohly vyvíjet nové
a kvalitní komponenty.
Rozkládání vizuálních komponent na obrazovkové formuláře musí být snadné,
stejně jako jejich rozmisťování podle rastru.
V našich podmínkách je důležité, aby šlo vytvářet aplikace, ve kterých by v
dialozích, v nabídkách menu a v popisech byly použity české znaky. Podpora
českého jazyka je v nástrojích pod Windows 95 zahrnuta na velmi dobré úrovni.
Kompiler
Požadavky na kompilery, tedy části vývojových nástrojů, které realizují překlad
programu do strojového kódu, se za poslední léta vůbec nezměnily. Vyžaduje se
především vysoká rychlost překladu, malá velikost výsledného kódu, velká
rychlost provádění zkompilovaného programu a stabilita. Cenným přínosem je
možnost volit různé cílové platformy pro kompilaci.
Vysoká rychlost překladu se velmi hodí zvlášť u rozsáhlých programových děl s
několika stovkami tisíc programových řádků. Malá velikost programového kódu
trápila vývojáře hlavně v minulosti, dnes, vzhledem ke kapacitám pamětí a
záznamových zařízení, už není takovým hříchem, když program "HalloWorld.exe"
zabírá 300 KB. Některé vývojové nástroje se snaží problém s velikostí řešit
tak, že k výslednému programu typu .EXE přidávají knihovnu funkcí .DLL. Vlastní
program je pak velmi malý, a jestliže vytváříte nebo používáte další programy
vytvořené ve stejném nástroji, stačí vám nové soubory .EXE, zatímco knihovna
.DLL je použita z předchozí instalace. Tento způsob má tu nevýhodu, že vyžaduje
zmíněnou knihovnu funkcí přesunout do adresáře, ve kterém Windows hledají
knihovny, takže program nelze instalovat tak "čistě", bez zásahů do zbytku
systému.
Jiné nástroje kompilují tuto knihovnu rovnou do .EXE. Výsledky jsou tedy větší,
ale při dalším připisování kódu se .EXE soubor zvětšuje jenom velmi pozvolna.
Velká rychlost prováděného programu se může zdát v současnosti, tedy v době,
kdy se kvapem blíží příchod půlgigaherzových procesorů, jako přežitek, vždyť
všechno přece zvládne procesor. To je sice do jisté míry pravda, přesto však je
dobré si připomenout, že ne každý má na stole nejmodernější stroje a ne každý
si bude k novému programu kupovat také nový počítač. Smutným faktem je, že
současný průměr, tedy počítače s pentiovým procesorem a 16 MB paměti s Windows
95, se ještě nějakou dobu udrží a je tedy dobré si rychlost produktu ověřit na
odpovídajícím stroji.
Zásahy do kódu za účelem zrychlit provádění na úrovni strojového jazyka, jsou
sice dnes ještě do jisté míry možné, avšak jejich uplatnění je dost sporné.
Jednak jsou všechny používané kompilery uzpůsobeny na to, aby tradiční problémy
procesorů (jako náhrada xor ax, ax za mov ax, 0) řešily automaticky a snažily
se vytvořit co nejkompaktnější a nejjednodušší kód a za druhé už i procesory
umí dost věcí samy. Vnitřní architektura moderních počítačových čipů totiž
obsahuje obvody, schopné kód vyprodukovaný v podstatě jakýmkoliv kompilerem
optimalizovat tak, aby jej prováděly co nejrychleji. Vývoj ještě není tak
daleko, aby se takhle daly "přepracovat" celé programy, ale 16bajtové části
kódu zvládá optimalizovat pro rychlejší provádění například AMD-K6. Procesory
se totiž přizpůsobily nedokonalostem kompilerů v minulosti a dokáží je,
samozřejmě pouze částečně, eliminovat. Z těchto důvodů je dobré nechat
hard-core optimalizaci kódu na úrovni assembleru kompileru a procesorům. I když
je samozřejmě možné, že funkčně shodný program, zkompilovaný ve dvou různých
nástrojích, bude na stejném počítači pracovat různou rychlostí. Tyto rozdíly
jsou však dány už vnitřní architekturou kompilerů a je dokonce možné, že na růz-
ných rodinách procesorů (AMD/ /Intel/Cyrix) budou rychlosti jednotlivých
kompilátů odlišné.
Stabilita výsledného programu, zkompilovaného určitým vývojovým nástrojem, je z
velké části v rukou programátora i když závažné chyby v kompileru mohou do
výsledku zavléct nepříjemné problémy. Seznamy chyb různých vývojových nástrojů
jsou však dostatečně popsány na Internetu a proto je dobré se s nimi seznámit a
respektovat je při vytváření nových programů.
Debugger "odblešovač"
Debugger, tedy nástroj pro ladění programu, je absolutní nutností. Každý
programátor totiž dělá chyby a správně napsané dílo by mělo výjimek a chyb
vytvářet co nejméně. Debugger by měl být součástí vývojového prostředí, aby šly
průběžně konfrontovat změny v kódu s jejich skutečnou funkcí. Výbornou možností
je také kontrolovat za běhu programu stavy proměnných, vlastností komponent,
výsledky rozhodovacích bloků a podobně. Čím jednodušší je cesta k získání
hodnoty, tím lépe zastavení myši nad místem zdrojového kódu, kde se s proměnnou
pracuje, mi připadá ideální.
Debugger musí být také dostatečně stabilní sám o sobě (to většinou je), ale
také v době, kdy ladí jiný běžící program.
Ostatní nástroje
Mezi ostatní nástroje, které vývojář využije, patří též pomůcky pro distribuci
programů. Známým produktem na tomto poli je InstalShield firmy Stirling
Technologies. Umožňuje připravit hotový program k distribuci buď na disketách,
nebo na CD-ROMu. Kromě rozdělení celého projektu na pakety, aby se případně
program vešel na diskety, umožňuje samozřejmě vygenerovat instalační program.
Ovládání InstalShieldu je velmi jednoduché a pochopitelné, výsledný instalační
program vypadá až překvapivě profesionálně.
InstalShield zapisuje také informace nutné pro deinstalaci produktu, jednak do
báze knihoven .DLL, jednak do záznamů v sekci "Přidat/ubrat programy" ve
Windows 95. Pokud je tedy program korektně nainstalován a korektně odebrán
odinstalační utilitou, nezůstávají po něm zcela žádné stopy ani v systémových
souborech a registrech.
Dalšími pomocnými nástroji jsou různé preprocesory, které upravují (buď přímo
za běhu, nebo na vyžádání) zdrojový kód do tvaru, který je lépe či jednodušeji
zkompilovatelný, nebo prostě lépe formátovaný. Takové změny přispívají
především k přehlednosti a k orientaci ve zdrojovém kódu a zjednodušují také
ostatním programátorům účast na vývoji komplexnějšího projektu.
Podpora
Pro uživatele, který legálně používá nějaký vývojový nástroj, je velmi důležitá
také podpora nejen výrobce, ale i spřízněných vývojářů. Na Internetu lze nalézt
velké množství dodatečných komponent pro mnoho vývojových prostředků, rozsáhlou
dokumentaci, příklady programů včetně zdrojových kódů a resources. Zároveň je
dobré si zvolit takový vývojový program, který má určitou podporu také v
tištěné literatuře. Důležité je to, aby k němu byla dokumentace, nejlépe také v
češtině.
K programování pod Windows 95 je dobré ovládat služby, které poskytuje rozhraní
Win32 API. Dokumentace k němu a podpora jeho služeb přímo, bez prostřednictví
vyššího vývojového nástroje však není na takové úrovni, jak by si Win32 API
zasloužilo.
Závěrem
Dokonalý vývojový nástroj neexistuje a také ani nikdy existovat nebude.
Vývojové prostředky se samy vyvíjejí a modernizují tak, aby odpovídaly
nejnovějším požadavkům uživatelů produktů, operačních systémů, hardwaru, ale i
samotným vývojářům. Smutným faktem je také to, že svůj nejlepší program,
napsaný před několika lety, nemůžete bez rozsáhlejších změn ve struktuře kódu
zkompilovat a už vůbec ne distribuovat dnes. Požadavky na software se posunuly
mnohem dál a to, co v minulosti bylo špičkou, je dnes pomalu zastaralé. To se
týká nejen výsledných softwarových produktů, ale samozřejmě i vývojových
nástrojů jako takových.
8 1358 / or









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.