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.