KylixDelphi pro Linux

Po dlouhém a napjatém očekávání uvedla před nedávnem firma Borland na trh vývojové prostředí Kylix. Jedná se o v


Po dlouhém a napjatém očekávání uvedla před nedávnem firma Borland na trh
vývojové prostředí Kylix. Jedná se o vůbec první a vlastně dosud jediné RAD
(Rapid Application Development) prostředí určené pro tento operační systém,
takže si určitě zaslouží podrobnější pohled.

Tento nástroj může pro mnoho vývojářů znamenat jednoduchý přechod k Linuxu a
vývoj platformově nezávislých programů, které běží v nativní podobě tj.
přeložený program je interpretován přímo procesorem, nikoli virtuálním strojem,
jako je tomu například u javovských aplikací. Vzhledem k tomu, že se jedná o
nástroj, který svojí filozofií vychází z Delphi, nebudeme se v následující
recenzi vyhýbat jejich vzájemnému srovnávání. Instalace
K testu byl použit počítač s procesorem AMD Athlon K7/1 GHz, 256 MB paměti RAM,
distribuce Mandrake Linux 7.2 s jádrem 2.2.17 a KDE 2.0.
Kylix umožňuje 2 typy instalace: z účtu běžného uživatele (pokud jej chcete
provozovat na počítači, který nemůžete administrovat, je tato možnost jistě
vítaná), nebo z účtu administrátora (zřejmě běžnější případ, který jsem také
použil při testování). Instalaci jsem prováděl podle návodu na instalačním CD a
během ní jsem nezaznamenal žádnou situaci, která by nebyla zdokumentována.
Instalovat lze v textovém i v grafickém módu; oba způsoby proběhly bez
problémů.

Kompatibilita s Delphi
Pokud jde o samotné prostředí, vývojáři zběhlí v práci s Delphi 5.0 zaznamenají
jen minimum změn: lĘchybí funkce pro práci s Type Library (kvůli závislosti na
OLE) lĘněkolik známých klávesových zkratek koliduje s klávesovými zkratkami
prostředí KDE a X-Windows (namísto kláves F12, Ctrl+TAB, Ctrl+F9 jsem ve KDE
musel používat příslušné položky menu) Všechny ostatní prvky "look&feel" z
windowsové verze jsou totožné včetně občasných chyb (kdy prostředí samo způsobí
GPF General Protection Fault, většinou nereprodukovatelné) a občas chaotického
chování při "dockování" oken.

Integrace s Linuxem
Mezi základní požadavky, které od překladače jazyka většinou očekáváme, je
možnost vytvářet sdílené knihovny, které jsou pod Windows známé jako DLL
soubory a pod Linuxem jako Sdílené Objekty (shared objects, *.so soubory). Ty
lze v Kylixu vytvářet stejně jednoduše jako ve Windows tím, že překládaný
soubor uvedeme deklarací library namísto unit. Další oblasti zahrnují i podporu
jednobajtové reprezentace standardu Unicode (UTF-8), COM, WWW, databáze a také
inline assembler. COM objekty a rozhraní: Přestože to dokumentace příliš
nezdůrazňuje, je v Kylixu v maximální možné míře zachována kompatibilita se
specifikací COM. Chybí ovšem OLE Automation a vše, co se toho týká, tj. není
zde žádná podpora pro dispatch rozhraní, a ve zdrojovém kódu RTL jsou veškeré
části související s implementací IDispatch interface deaktivovány direktivou
{$IFDEF WIN32}. Vše ostatní je ale opravdový COM a nic na tom nemění ani
skutečnost, že Kylix zavádí pro bázi všech rozhraní název IInterface namísto
známého IUnknown ve skutečnosti jde o pouhý alias a lze rovnocenně používat oba
názvy. Rozhraní známé pod Windows (COM) jsou v Kylixu pod stejnými názvy a
samozřejmě i jejich GUID identifikace je odpovídající. Apache: Pro vývoj
serverových webových aplikací má Kylix zabudovanou podporu Apache, a to
způsobem téměř k nerozeznání podobným implementaci pod Windows. Pokud tedy máte
hotovou ISAPI nebo CGI aplikaci, bude vaše úsilí zúročeno pod Linuxem téměř bez
námahy je ovšem potřeba vědět něco málo o konfiguraci Apache, nebo to vyčíst či
"vykoukat" z přiložených demo programů a jejich popisů.

Databáze
Jednou z nejpodstatnějších součástí Delphi, a tedy i Kylixu, je práce s
databázemi. 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í a svou otevřenou architekturou umožňuje i vytváření ovladačů pro
další, dosud neimplementované. Namísto známých komponent TDatabase, TTable,
TQuery apod. zde najdeme komponenty TSQLConnection, TSQLTable, TSQLQuery atd.,
jejichž vlastnosti a způsob práce se však od svých BDE původců liší jen
minimálně. Flat-file XML databáze MyBase: Komponenta TClientDataset, která je
navržena pro zprostředkování off-line přístupu do databází, má i další možnost
použití umožňuje vytvářet databázové tabulky bez připojení na jakýkoli
databázový server. Tato data jsou pak ukládána ve formátu XML do zadaného
souboru. Podporován je i dříve používaný formát "CDS". Díky takovéto komponentě
lze používat databázové komponenty i na data, která jinak nemají s databázemi
mnoho společného, a to s víceméně minimálním úsilím. XML skýtá v kombinaci s
ostatními technologiemi, jako např. XSLT, XHTML či WAP, rozsáhlé možnosti v
prezentaci a konverzi údajů do různých dalších formátů. Propojování komponent
Komponenty nyní mohou mít i vlastnosti typu IInterface (a samozřejmě jeho
potomků), což přináší autorům komponent mnohem větší volnost v propojování
objektů v době vytváření designu, než když byli omezeni na propojitelnosti
založené pouze na třídách. Knihovna CLX...
...je základem pro vývoj aplikací nezávislých na platformě a nahrazuje
grafickou knihovnu VCL, která pro tento účel nevyhovuje svou provázaností s
Windows. Je implementována pomocí grafické knihovny Qt, která poskytuje
uživatelské rozhraní shodné na obou platformách. CLX komponenty jsou vybaveny
pro práci s COM rozhraními třída TComponent přímo implementuje IUnknown (=
IInterface), čímž odpadá nutnost vytvářet a agregovat separátní objekt s COM
implementací. Pro mimořádně tvůrčí jedince je zde i možnost přispět k vývoji
této knihovny na bázi Open Source, a sice prostřednictvím projektu FreeCLX na
serveru SourceForge.net.

Očekávání
V dalších verzích Kylixu bych dosti ocenil podporu technologie OLE Automation
nebo alespoň takovou implementaci IDispatch rozhraní, která by vyžadovala
minimální úsilí při portování OLE Automation aplikací. Užitečné by byly některé
nástroje, na které jsem si zvykl v Delphi především Database Explorer v nějaké
dotaženější variantě, než je ta v "demo" aplikacích, a hlavně nástroj, který by
maximálně usnadnil konfiguraci databázových parametrů a prostředí. Podle mého
názoru by bylo také užitečné mít od Borlandu i přímou podporu RPM balíčků, tj.
aby si je vývojář mohl jednoduše vytvářet přímo z IDE Kylixu. Významným krokem
ke sjednocení vývoje programů pro systémy Windows a Linux bude vývojové
prostředí Delphi 6.0 (pro Windows), jehož důležitou vlastností bude
kompatibilita s Kylixem a tedy možnost psát programy tak, aby byly přeložitelné
bez nejmenších úprav (a doufejme, že také s minimem IFDEF konstrukcí) na obou
platformách.

Závěr
Kylix je prvním, a podle všeho zdařilým, pokusem firmy Borland o RAD prostředí
na Linuxu. Se svým tradičně rychlým překladačem Pascalu a intuitivním
prostředím umožňuje snadný vývoj aplikací pro systém, kde výrazně převládá C,
C++ a skriptovací jazyky. Produkt se dodává ve variantách Kylix Desktop (níže
uvedená cena platí do konce srpna) a Server, přičemž pro účely výuky obsahuje
nabídka i levnější verze Desktop/Server Classroom včetně licencí pro 11
počítačů. Další zajímavou slevu můžete získat při současném nákupu Kylixu a
Delphi 6 (resp. při podání objednávky na ně). Volně dostupná verze Open Edition
by měla být k dispozici během 3. čtvrtletí letošního roku.

Použité pojmy a zkratky
CLX knihovna komponent navržená pro vývoj přenositelných aplikací v Object
Pascalu (Borland) n OLE Automation technologie pro vývoj skriptovatelných
komponent (Microsoft) n COM (Component Object Model) jedna z technologií
specifikující jednotný model pro vytváření komponent, jejich rozhraní
(interfejsů) a způsoby jejich komunikace (Microsoft)
DCOM (Distributed COM) rozšiřuje COM o možnosti distribuovaného zpracování úloh
na více strojích (Microsoft)
GUID (Globally Unique IDentifier) jednoznačný identifikátor objektu, třídy,
rozhraní či jiné entity používaný v COM (Microsoft)
IDE (Integrated Development Environment) označuje interaktivní aplikaci, která
spojuje prostředky pro vytváření, překlad, ladění a další operace se zdrojovým
kódem

Shrnutí
Borland Kylix
RAD prostředí pro Linux
Plus: kvalitní vývojové prostředí pro vývoj přenositelných aplikací, podpora
databází, otevřená architektura, minimum změn v architektuře knihovny CLX
oproti VCL z Delphi 5.0, elegantní integrace s technologiemi Linuxu
Minus: občas nestabilní, zatím chudé vybavení nástroji
Zapůjčil: Borland
http://www.borland.cz
Cena (bez DPH): 8 990 Kč (Desktop), 77 500 Kč (Server)
1 1056 / wep









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