Borland Kylix Milovníci PASCALU ve světě Linuxu Kylix můžeme jednoduše přejmenovat na "Delphi for Linux". Jde o nástroj pro vývojáře, kteří pracují s objektově orientovaným programovacím jazykem Pascal. Na jaká úskalí se budete muset připravit při jeho instalaci a při práci s ním? Kylix je první výkonný nástroj pro rychlý vývoj aplikací typu RAD (Rapid Application Development) přímo pod operačním systémem Linux, který slučuje intuitivní vizuální vývojové prostředí, optimalizující kompilátor, interaktivní ladicí prostředek a obsáhlou sadu komponent pro tvorbu běžných desktopových aplikací, databázových aplikací i internetových aplikací pro systém Apache. Většinu původně napsaných aplikací pro operační systém Windows (pokud nepoužívají velké množství přímých volání Win API nebo jiné závislé funkce Windows - práce s registry atd.) můžeme snadno, zpravidla jen s malými úpravami převést pod operační systém Linux. Pro nové aplikace, které budou využívat novou knihovnu vizuálních komponent CLX (odpovídá známé VCL pod Windows), je potom přenositelnost Linux - Windows na úrovni zdrojového kódu zaručena. Pro kompilaci na platformě Windows bude potřeba využít Delphi verze 6, které rovněž bude podporovat novou knihovnu CLX. To tedy znamená, že budeme moci vyvíjet aplikace, které budou současně dostupné pro Windows a Linux. Kylix je nativní linuxová aplikace, tzn. nepoužívá žádný emulátor. Používá optimalizující překladač, který produkuje nativní linuxový kód (žádný pseudokód). Dále využívá nové knihovny platformově nezávislých vizuálních komponent (CLX). Objevují se zde nové nástroje pro práci s databázemi (dbExpress). Aplikace můžeme vyvíjet pro různé manažery (KDE, GNOME, WMAKER) současně. Lze snadno vytvořit konzolové aplikace, internetové aplikace pro server Apache nebo sdílené objektové knihovny (.so) atd. Kylix má vysoce přizpůsobitelné pracovní prostředí IDE (Integrated Development Environment), které se velmi podobá tomu z Delphi, takže vývojáři přecházející z Windows nebudou mít problémy s adaptací na nové neznámé prostředí. Aplikace můžeme doplnit nápovědou. Sami můžeme využívat nápovědy Kylixu, nechybí tištěná dokumentace v angličtině. Součástí dodávaného kompletu jsou tři CD (Kylix - Server Developer, Kylix - Companion Tools a SuSE LINUX 7.0 Evalution version) a tři manuály (Developer's Guide Kylix, Language Guide Object Pascal a Quick Start Kylix) a také mapa s hierarchií objektů v Kylixu (Kylix Object Hierarchy). Na prvních dvou CD najdete vlastní aplikaci, množství ukázkových příkladů, velký počet komponent a nástrojů od nezávislých dodavatelů, které usnadní první práci s Kylixem. Na posledním CD najdete zkušební verzi linuxové distribuce SuSE LINUX 7.0. Ve třech manuálech najdete rychlý úvod do programování v Kylixu pod Linuxem (Quick Start Kylix), popis programovacího jazyka Pascal v jeho objektově orientované verzi (Language Guide Object Pascal) a podrobný popis všech funkcí Kylixu s detailním popisem výroby jednotlivých druhů aplikací (textové a grafické editory, databáze, internet atd.). Pusťme se do práce K testu byl použit počítač s procesorem Pentium Celeron 333A, 192MB pamětí RAM, linuxová distribuce Debian Potato 2.2 s jádrem 2.2.18 a windowsovým manažerem windowmaker. Po přečtení souboru "INSTALL" s podrobným popisem procesu celé instalace jsem zjistil, že Kylix umožňuje dva typy instalace - pod uživatelem root (mohou využívat všichni uživatelé serveru) nebo pod normálním uživatelem (může využívat jen tento uživatel). Oba typy instalace mohou běžet v grafickém či textovém režimu. Vybral jsem si variantu root a spustil soubor "setup.sh". Výsledkem bylo zjištění, že nemám odpovídající verzi knihovny GLIBC (Glibc version....FAILED). Kromě souboru setup.sh naleznete na CD další spustitelný soubor "testsystem". Jak už název napovídá, po jeho spuštění se dozvíte, jestli je váš systém připraven na instalaci aplikace Kylix. K podporovaným distribucím najdete opravenou verzi knihovny glibc přímo na tomto CD v adresáři patches/. Pro opravenou knihovnu glibc pro distribuci Debian jsem musel na internet na adresu http://www.teatime.com.tw/~tommy/debian/. Později jsem se dozvěděl, že upravenou knihovnu glibc můžete najít i na internetové adrese http://hlubocky.del.cz/downloads/libc6. V krátké době se určitě opravené verze glibc objeví i na oficiálních stránkách Kylixu (http://www.kylix.cz). Bude se tak stávat s postupným navyšováním počtu podporovaných distribucí Linuxu produkty firmy Borland. Po instalaci příslušných knihoven jsem pokračoval v instalaci. Testování systému již proběhlo bez problému a po výběru instalovaných částí se rozběhla instalace. Nepokračovala však dlouho a skončila chybou "Error -10" a konstatováním, abych se obrátil na technickou podporu firmy Borland. To se mi vůbec nechtělo, a tak jsem se pokoušel dál. Několik následujících pokusů nepřineslo žádný obrat k lepšímu. Až ten, kdy jsem se Kylix pokusil nainstalovat jako normální uživatel, byl úspěšný. Na mém domácím počítači to rozhodně není na závadu. Na serveru, kde by vývojový nástroj využívalo více uživatelů, by to byl jistě problém. Takto proběhla instalace na nepodporované distribuci Linuxu Debian Potato 2.2. Instalace na podporovaných distribucích je bezproblémová. Alespoň to jsem se dozvěděl z několika diskusních skupin okolo Kylixu. Stačí postupovat podle návodu uvedeného v souboru INSTALL, a případně přeinstalovat stávající knihovny těmi, které jsou přímo dodávány na přiloženém CD. Linux kontra Windows Nyní se podíváme na problematiku přenosu aplikací mezi operačními systémy. Už na krabici s Kylixem najdete nálepku "Delphi Compatible", ale stoprocentní kompatibilitu rozhodně nečekejte. Alespoň ne s verzí Delphi 5, možná se dočkáme ve verzi Delphi 6. Výsledné aplikace není možné přenášet mezi operačními systémy přímo ve spustitelném kódu, jako je tomu např. u interpretované Javy. Aby byly funkční, musejí být pro daný systém překompilovány, tzn. přenositelnost je zajištěna na úrovni zdrojového kódu. Problémy s přenosem aplikací původně určených pod Windows budete mít převážně tehdy, pokud používáte technologie, které Linux prostě nepodporuje - COM (Component Object Model), ActiveX, OLE, ADO, Corba, záležitosti okolo systémových registrů, ovládacích panelů a systémových zpráv. Dále se dostanete do potíží, pokud ve svých aplikacích používáte datové jádro BDE (Borland Database Engine), které již zastaralo natolik, že jej Borland nehodlá nadále podporovat a rozhodl se ho vyměnit novým systémem dbExpress. Dále si při převodu zdrojového kódu z Delphi do Kylixu musíme dát pozor na rozdílnost souborového systému (Linux rozlišuje velká a malá písmena a úrovně adresářů odděluje normálním lomítkem "/" místo ve Windows používaným "\"). Delphi pojmenovávají unity s příponou .res, ale do zdrojového kódu zapisují {$R *.RES}. Navíc jména jednotlivých odpovídajících unit si stoprocentně neodpovídají. Např. unitě form v Deplhi odpovídá qform v Kylixu atd. Příslušnou konverzní tabulku naleznete v nápovědě. Jedná se především o doplnění písmena q před jméno unity. V případě převodu zdrojových textů z Linuxu do Windows můžete na změnu normálních a zpětných lomítek zapomenout, Windows si s normálními lomítky poradí (při převodu Windows - Linux musíte důsledně dodržovat lomítka normální). Další problémy vznikají v rozdílech mezi knihovnami VCL a CLX. Úplně náhodou jsem objevil rozdíly u komponenty TspinEdit a TtrackBar, kde chybí vlastnosti maxlength, maxvalue, minvalue a místo nich jsou tu vlastnosti max a min. Tohoto nejspíše neúmyslného přejmenování vlastností u komponent bude asi více, ale víc se mi jich nepodařilo objevit. Překvapilo mě, že není žádný problém v kódování češtiny. Když otevřete soubor z Delphi pravděpodobně v kódování Win1250, dojde k automatickému převodu do ISO-8859-2. Závěrem lze tedy říci, že pokud máte pro Kylix k dispozici potřebné knihovny komponent, je převod programu z prostředí Delphi do prostředí Kylix proveditelný relativně snadno. Pokud příslušné knihovny nemáte, budete mít problémy podstatně větší, neboť za dlouhou dobu působení Delphi vzniklo nepřeberné množství knihoven, které jsou pochopitelně četně využívány. Kylix je na trhu velmi krátkou dobu na to, aby vývojáři komponent mohli dostatečně reagovat. A především převod knihoven již není zdaleka tak bezproblémový, jelikož zde se vývojáři mnohem více obrací na WinAPI a vlastní jádro Windows. Při vývoji komponent bude vyžadována mnohem větší znalost jádra Linuxu a mnohé knihovny bude zřejmě nutné přeprogramovat zcela. Spolupráce s databázemi Jednou z nejdůležitějších částí každého vývojového produktu je práce s databázemi, protože dnes se vše točí kolem databází a internetu. Kylix navazuje na osvědčený model komponent z Delphi, ale namísto rozhraní BDE využívá novou knihovnu dbExpress, která zpřístupňuje mnoho známých databází (MySQL, Oracle, DB2, InterBase atd.) a svou otevřenou architekturou umožňuje i vytváření ovladačů pro další, dosud neimplementované databáze. Vývoj aplikací pro internet Zde je patrný asi největší posun v porovnání s Delphi. Vývoj aplikací pro internetový server Apache posunul programování pro internet do jiné roviny. Práci s internetem pokrývají vlastně dvě sady komponent a funkcí. První z nich NetCLX obsahuje nástroje pro vývoj serverových aplikací pro webový server Apache. Tím je zajištěna plná podpora rychlého vývoje dynamických webových aplikací. Druhou sadou je soubor komponent Internet Direct (INDY) od společnosti Nevrona, který zprostředkuje přímo práci na úrovni různých internetových protokolů typu HTTP, FTP, SMTP, NNTP atd. Zkušenosti Pokud mám v několika větách shrnout zkušenosti s Kylixem, pak řeknu asi toto: Po problematické instalaci, které budete na podporovaných distribucích ušetřeni, jsem dostal do ruky výkonný prostředek pro vývoj aplikací pod Linuxem. Konečně budou moci do světa Linuxu naplno vtrhnout milovníci Pascalu, když nyní je Linux doménou C/C++. Překvapila mě rychlost kompilace - při první jsem si myslel, že se vůbec neprovedla. Za dva měsíce, co jsem měl možnost Kylix využívat, jsem ocenil jeho stabilitu, což úzce souvisí s operačním systémem Linux. Trošku mě překvapilo, že Kylix nevyužívá přímo souborového dialogového okna Linuxu, ale má vlastní dialog "File Open", ve kterém nelze např. provést mazání souboru. Pokud chcete využívat nástroje pro internet a server Apache, pak vám nezbývá nic jiného než sáhnout po verzi Kylix Server. Pokud jste méně majetní a jste příznivci myšlenky "Open Source", pak sáhněte zdarma po verzi Kylix Open Edition. Kompromisem mezi oběma je verze Kylix Desktop. Petr Souček Borland Kylix Nástroj pro vývoj aplikací v operačním prostředí Linux. Doporučené systémové požadavky: Intel Pentium 200 MHz (doporučuje se aspoň 400 MHz), 64 MB RAM (doporučuje se 128 MB), 175 MB na disku pro plnou instalaci, CD-ROM mechanika, VGA, SVGA nebo lepší monitor, myš nebo jiné polohovací zařízení. Výrobce: Borland Zapůjčil: Borland, s. r. o., Praha Cena: Kylix Desktop Developer 8990 Kč (verze pro školy za 4990 Kč), Kylix Server Developer 77 500 Kč (verze pro školy za 17 900 Kč a pro majitele Delphi 6 za 59 990 Kč). Ceny jsou uvedeny bez DPH. Srovnání jednotlivých kompletů Kylix Desktop Developer - základní verze produktu, umožňuje vývoj aplikací s grafickým uživatelským rozhraním i konzolových aplikací. Součástí je i napojení na databáze MySQL a InterBase. Pochopitelně je možný též vývoj vlastních komponent. Aplikaci lze šířit v rámci licence GPL (General Public License), jiné obecné licence nebo jako klasické komerční programy. Kylix Server Developer - nejrozsáhlejší verze produktu. Oproti verzi Desktop obsahuje zejména možnost vývoje serverových aplikací pro Apache (včetně nástrojů pro snadný převod z ostatních HTTP serverů na platformu Apache), podporu databází Oracle a IBM DB2. Kylix Open Edition - jedná se o nejjednodušší verzi, která nebyla k dispozici od začátku, ale její zveřejnění se protáhlo až k 25. 7. 2001. Od tohoto data si tuto verzi můžete zdarma stáhnout na serveru společnosti Borland na adrese http://www.borland.com/downloads. Na adrese http://www.borland.com/kylix/openedition se dozvíte podrobnější informace, jak produkt stáhnout. Nejdříve je nutné vyplnit registrační formulář a na jeho základě vám e-mailem přijde sériové číslo a aktivační kód. Potom již budete moci produkt Kylix Open Edition plně využívat. Tento produkt je určen výhradně pro vývoj aplikací typu "Open Source", šířených spolu se zdrojových kódem. Kylix Open Edition umožní linuxové komunitě rychle a snadno vytvářet sofistikované, volně šiřitelné aplikace s vysoce vizuálním grafickým rozhraním (GUI) a usnadní vývoj aplikací za použití mechanismu drag and drop. Kylix Open Edition dodává širokou sadu více než 100 znovupoužitelných, přizpůsobitelných a rozšiřitelných komponent FreeCLX pro vývoj volně šiřitelných linuxových aplikací. Tato verze je ochuzena o některé pomocné nástroje a vývojové komponenty pro server Apache. Aplikace budou obsahovat speciální "vodoznak", tj. razítko kompilátoru příslušného vývojového nástroje. Instalace KOE a jeho samostatná recenze je součástí Chip CD 10/01.