StormC 1.05 - 1.1

Pavel Čížek

Jak jste se mohli dočíst v dubnovém čísle AMIGA Review, objevilo se na Amiga scéně nové vývojové prostředí StormC. Nyní máte možnost seznámit se s plnou verzí tohoto produktu.

StormC je vývojové prostředí od firmy HAAGE & PARTNER. Uved“me na úvod několik základních informací. StormC existuje v německé a anglické verzi, probíhá lokalizace do francouzštiny a italštiny. Koncová cena produktu je 598 DM, studenti mohou uplatnit 100 DM slevu. K dispozici je i tzv. cross-upgrade při přechodu z jiného komerčního kompilátoru. V tom případě vám „postačí“ 400 DM. Kromě finančních požadavků je nutno přihlédnout i k požadavkům na systém - jako minimální (ale téměř nedostačující) je uváděna 3 MB RAM a 5 MB místa na harddisku. Pro slušnou práci lze doporučit minimálně 6 MB (raději však 8 MB) paměti, rychlejší procesor (nejlépe s MMU) a také větší harddisk.
Následující popis se bude týkat verze 1.05. K ní však jsou již k dispozici na Internetu patche a v současné době přichází na trh verze 1.1, o které se zmíním později.

Dodávka, instalace
Za onu „směšnou“ cenu dostanete několik disket, manuál a registrační kartu. Hned v úvodu bych se chtěl zastavit u manuálu - naleznete v něm vše, co je potřeba pro práci s vlastním vývojovým prostředím. Co se týče jazyka C++, naleznete jen soubor odkazů na literaturu. Co mne však zarazilo, bylo to, že popis knihovních funkcí StormC je uveden pouze v AmigaGuide souboru - tedy pouze v elektronické podobě. U tohoto produktu bych (vzhledem k ceně) očekával nejenom referenční příručku k ANSI C++ a jeho funkcím, ale vzhledem ke stávající situaci na Amize by vítaným doplňkem určitě byl alespoň stručný přehled systémových funkcí Amigy...
Vlastní instalace, která zabere pouhých 6 MB na harddisku (v porovnání se stovkami megabytů na PC), je snadná a pohodlná. Kromě vlastního prostředí, příkladů a jednoduchého Screen Manageru získáte také PhxAss (neregistrovaná verze) - poměrně dobrý sharewarový assembler. Samotná nápověda k němu dodávaná může být zdrojem mnoha užitečných informací.

Jazyk
StormC nabízí programátorům na Amize úplnou implementaci jazyka ANSI C a C++ 3.0. Chybí pouze některé nejnovější prvky jako prostory jmen apod. Přínosem určitě je možnost práce s objekty a s nimi související dědičnost, podpora výjimek, šablon, inline funkcí, přetěžování funkcí a mnoha dalších prvků tohoto dnes tak moderního programovacího jazyka. Tento, dnes stále se vyvíjející jazyk, má skutečně co nabídnout. Jedním ze sporným rysů StormC je přesné dodržování normy ANSI v oblasti nabízených knihovních funkcí. To na jednu stranu zajišťuje přenositelnost na jiné kompilátory (a naopak možnost kompilace libovolného ANSI kompatibilního programu), ale na straně druhé je tím komplikován přenos programů využívajících některá (poměrně běžná) rozšíření jiných kompilátorů. Důsledkem je také absence funkcí specifických pro prostředí Amigy.
Co se týče klíčových slov, která se týkají přímo Amigy nebo se vyskytují v některých již existujících produktech, jsou k dispozici běžně užívané identifikátory jako „_far“, „_near“, „_chip“ apod. Nicméně některá klíčová slova byla opomenuta (například _saveds, ale i některá další) – to samozřejmě způsobuje problémy při přenosu již existujících projektů. Ve verzi 1.1 by některé z vážnějších problémů (především kompatibilita se SAS/C) měly být odstraněny.

Prostředí
Prostředí StormC je reprezentováno správcem projektu - to je lišta s ikonami, která je však doplněna o poměrně rozsáhlé menu. Z toho správce lze otevírat, modifikovat a zavírat projekty, kompilovat, spouštět a odlaďovat programy, editovat jejich zdrojové texty... Každý projekt je reprezentován oknem, které obsahuje soubory k němu se vážící. Přitom soubory jsou přehledně rozděleny do skupin (C++, assembler, dokumentace, AmigaGuide, programy...). Příslušné soubory lze editovat, popř. spustit. Od verze 1.1 je navíc integrována skupina pro soubory Storm WIZARDu (viz článek v tomto čísle) a navíc lze jednotlivé soubory také prohlížet (například pro AmigaGuide dokument můžete spustit editor a modifikovat jej nebo nahrát MultiView a prohlédnout si jeho finální podobu).
První z činností, kterou začne tvorba programu, je editace. Editor StormED je využíván nejenom k editaci, ale i k odlaďování programů (viz dále). Možnosti StormEDu odpovídají možnostem editorů v integrovaných prostředích - k dispozici je práce s bloky, „nekonečné“ undo a redo, vyhledávání a nahrazování, zvýrazňování syntaxe (včetně systémových funkcí Amigy), od verze 1.1 také kontrola závorek... Kvalit sharewarových programátorských editorů na Amize však StormED zdaleka nedosahuje. Zato pomalostí je určitě překonává. Proto je možno od verze StormC 1.1 používat alternativně také známý GoldED 3.x.
Součástí StormC je samozřejmě kompilátor C a C++. Jeho integrace se editorem je příkladná – chyby a varování se vypisují ve zvláštním okně, volbou dané chyby se otevře editor na správném místě v textu, připraven k odstranění chyby. Vlastní kód generovaný kompilátorem může být určen pro kterýkoliv z procesorů MC 68000 - MC 68060 a může podporovat práci s koprocesorem. Na kompilátor samozřejmě navazuje linker, který je poměrně rychlý. Navíc (od verze 1.1) umožňuje přilinkovat v výslednému programu také binární data - jedná se zatím o data Storm WIZARDu popisující uživatelské rozhraní programu (nemusí tedy nutně být uložena v externím souboru).
Pokusím se srovnat StormC s ostatními již existujícími kompilátory. Kompilátor i linker jsou poměrně rychlé (i v případě optimalizace). Nedosahuje sice takové rychlosti překladu jako DICE (kompilátor C++ je přirozeně složitější), ale výrazně překonávají SAS/C. Výsledný kód je však poměrně velký (i když je to částečně způsobeno rozsahem jednotlivým knihovních funkcí, které zaberou poměrně dost místa - to se samozřejmě při práci na větším projektu ztratí). Co se týče optimalizace, soustřeďuje se StormC na optimální práci s registry (ve verzi 1.1 je optimalizace dále rozšířena a zrychlena), celkově však optimalizace nedosahuje kvalit SAS/C nebo GNU C++. Autoři se patrně zaměřují na tu část optimalizace, která hraje největší roli při vytváření programů pro RISCové procesory - zřejmě tedy stále doufají v přechod na platformu PowerPC.
Na kompilátor zpravidla navazuje debugger, který se snaží hledat, co zbrklost programátora napáchala. Velkou výhodou proti SAS/C je velikost souborů s informacemi pro debugger - tento soubor je externí a je poměrně malý. Zajímavou vlastností, kterou jsem rozebíral již při testování demoverze, je to, že není rozdíl mezi odlaďováním a spuštěním programu; pokud je program spuštěn z integrovaného prostředí, lze ho kdykoliv začít krokovat a naopak. Z toho vyplývá, že StormRun (jak se debugger jmenuje) má stále kontrolu nad činností programu - to umožňuje kontrolovat prioritu aplikace, zasílat ji signály a sledovat na co právě čeká. Navíc je veden protokol o používaných a uvolňovaných objektech (soubory, okna, paměť...) a v případě, že nedojde k uvolnění daného prostředku, je to oznámeno programátorovi. Vlastní odlaďování využívá editoru, v němž je zobrazován text programu a nastavení jednotlivých přerušení. K dispozici je seznam všech aktuálně platných a sledovaných proměnných, seznam modulů, funkcí... Samozřejmě nechybí „inspektor objektů“ umožňující procházet jednotlivé objekty a jejich potomky či prohlížet a měnit hodnoty k (zatím lze měnit pouze hodnoty položek ordinálního typu). K dispozici je také binární editor paměti a od verze l .l i globální okno poskytující kontrolu nad nastavenými přerušeními (breakpointy). Podmíněná přerušení stále nejsou k dispozici. Podrobněji viz dubnové číslo AMIGA Review.
Jedinou nevýhodou debuggeru je, že není příliš stabilní - ve většině případů se však patrně jedná o problémy spojené s nedostatkem paměti (většina testů probíhala na počítači s 5 MB RAM).

Verze 1.1
StormC se jeví jako perspektivní produkt; některé nedostatky, které však v současnosti má, jsou poměrně nepříjemné. Autoři se však snaží nic nezanedbat - proto se průběžně na Internetu objevovaly opravy a výsledkem těchto snah je i nová verze 1.1, která je pro registrované uživatele k dispozici zdarma.
Jedna z nejvíce viditelných změn je patrně spolupráce se Storm WIZARDem. Soubory popisující uživatelské rozhraní mohou být začleněny do projektů, mohou být přilinkovány k programům... Především však bylo předěláno uživatelské rozhraní pomocí Storm WIZARDu výsledkem jsou nejen lepší a přehlednější requestery (viz některé obrázky), ale také výrazně menší StormShell - zmenšil se z původních 500 KB na 300 KB. Správce projektu byl dále zdokonalen v oblasti klávesového ovládání; pokud při akci, která má běžně za následek editaci daného objektu, přidržíme klávesu Alt, dojde ke spuštění prohlížeče - viz také výše.
Editor StormED (jak již bylo zmíněno) může být nově nahrazen GoldEDem. Pro ty, kteří zůstanou u původního editoru, byla doplněna kontrola závorek, lepší nastavování zvýrazňování syntaxe a také možnost používání šablon při vytváření zdrojového kódu nového projektu (podobně jako ve WordWorthu 4 či FinalWriteru 5 při vytváření nového dokumentu). Mezi další novinky patří možnost zákazu inline funkcí (aby bylo možné je odlaďovat) a ignorování výjimek (opět kvůli odlaďování). Kromě toho lze debugger spouštět v několika dalších režimech, lze zakázat kontrolu uvolňování paměti a dalších zdrojů (to se hodí, pokud píšete různé patche). Užitečným doplňkem debuggeru je i historie přerušení (tj. seznam popisující, jak k nim postupně docházelo) a okno pro správu všech přerušení v programu. Doplněn byl také program StormLibrarian, pro snazší vytváření knihoven pro linker.

Závěr
StormC je produkt, který se snaží programátorům na Amize plnohodnotné vývojářské prostředí ve všech směrech. Ačkoli první verze je zatížena chybami, dochází k poměrně rychlému vývoji produktu a eliminaci známých chyb. Nevýhodou je jak cena, tak i nároky na hardware počítače. Pokud se však bude StormC vyvíjet stejně jako doposud, má před sebou jistě dobrou perspektivu.

Storm C

Hodnocení: 8,0 z 10
Autor: Haage&Partner
Cena: DM 598,-
Typ: komerční

+

ANSI C a C++ 3.0, debugger, správce projektu

-

nároky na hardware, cena


Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing