Co je to Kylix
Kylix je RAD (Rapid Application Development) programovací nástroj od firmy Borland, nyní už ve verzi 3. Nechci zde psát znovu všechny podrobnosti, a proto laskavého čtenáře odkazuji na můj předchozí seriál na tomto serveru.
Proto jen ve stručnosti:
- jednoduchý návrh GUI aplikací
- nezávislost výsledné aplikace na Gnome a KDE
- používá opravenou knihovnu Qt (viz dále)
- jednoduchý vývoj databázových a internetových aplikací, včetně webové služby pro webový server (lze je i naklikat)
- nativní kompilátory Delphi a C++
- komponenty pro XML a SOAP
- vcelku obrovská knihovna tříd a funkcí (CLX)
- atd.
V tomto článku se budu dále věnovat hlavně nové verzi.
Všechny v článku uvedené názory jsou moje a veškeré výtky padají na mou hlavu.
Copak je nového
Hlavním tahákem nové verze je přítomnost druhého programovacího jazyka, a to C++. Nový jazyk (prvním je Object Pascal, v nové verzi přejmenovaný na jazyk Delphi) má vlastní IDE (Integrated Development Enviroment) s prosvěcováním syntaxe, nápovědou a doplňováním kódu, které je tomu z Delphi verze podobné jako vejce vejci. Kylix se tudíž stává produktem se dvěma nezávislými IDE. Všechny informace (pokud nebude uvedeno jinak) platí pro obě verze.
V oblasti databází se aktualizovala podpora nových verzí databázových strojů:
- MySQL (verze 3.23.49)
- PostqreSQL (nezjistil jsem)
- Interbasi 6.5 (včetně Firebirdu)
- DB2 7.2
- Informix 9.21 server a Informix 7.2 SE
- Oracle 9i
V oblasti Internetu je podpora pro Apache ve verzi 1.3.9 a pozdějších (kromě řady 2.x).
Novinky s QT
Jak jsem uvedl, používají aplikace napsané v Kylixu pro zobrazovnání upravenou knihovnu QT 2.3.0. V nové verzi došlo k určité změně v chování.
Aby nedocházelo ke konfliktům s originální libqt.so, došlo k přejmenování zmíněné knihovny na libborqt.so. V předchozí verzi byly knihovny dvě, libqt.so a libqtinf.so, kde druhá jest rozhraním k první.
I teď lze používat uvedenou variantu, ale je nutno pro Delphi definovat za běhu proměnnou prostředí CLX_USE_LIBQT. Pro C++ je to realizovatelné podmíněnou kompilací se symbolem stejného jména.
Tímto způsobem lze také použít v systému nainstalovanou libqt.so verze 2.3.x. Ale jak jsem slyšel, je možné, že potom bude padat tisk.
Novinky ohledně Delphi verze
- V integrovaném assembleru je podpora pro Pentium 4.
- dcc (Delphi command line compiler) umožňuje nahradit implicitní dynamický zavaděč (/lib/ld-linux.so.2) za jiný (přepínač -dynamicloader), což se může hodit.
- U kompilátoru je možno nastavit, aby produkoval místo .dcu objektové soubory (.o), a to buďto pro C, nebo pro C++.
- Kompilátor se hlásí jako Borland Delphi for Linux 14.5 (předchozí verze jako 14.1), tj. je definován nový symbol pro podmíněnou kompilaci.
C++ verze
- IDE umí volat externí nástroje podle koncovky (platí pro Professional a Enterprise)
- IDE umí přímo volat kompilátor Delphi pro soubory .pas (ó jaká nespravedlnost), takže C++ projekt může být složen jak z C a C++ souborů (a formulářů), tak i z delfáckých formulářů
Ohledně posledního bodu: nikdo nikoho nenutí to používat! Ale jak já říkám: Nikdy neříkej nikdy.
Přibylo několik programů:
- bc++ – terminálová verze kompilátoru
- bcpp – preprocesor
- bpr2mak – konvertor z XML projektu do formátu pro GNU make
- ilink – inkrementální linker
- resbind – umožňuje vypsat nebo upravit v ELF souborech informace
Projektový soubor je na rozdíl od Delphi uložen v XML a dá se exportovat do tvaru pro GNU make (toto je součástí i Open Edition, i když to srovnávací tabulky uvádějí až pro verze vyšší).
Pozn.: Používaní pascalovských formulářů zajistí IDE pomocí maker:
USEFORMNS("Unit1.pas", Unit1, Form1); USEFORM("Unit2.cpp", Form2);
Rychlost buildu (Duron 650, 128 Mb) jednodušší grafické aplikace (textového editoru v rozsahu vylepšeného geditu) v C++ asi 5 sekund (pro srovnání v Delphi verzi něco pod sekundu).
V IDE lze povolit nebo zakázat konkrétní varování kompilátoru a linkeru.
C++ Kylix obsahuje (kromě CLX) implementaci STLPort4.5, což je free a open source projekt podporovaný několika kompilátory a platformami. Jeho licence je ve stylu BSD. Domovská stránka je www.stlport.com.
Abych předešel dotazům: Jádro se mi přeložit nepovedlo a ani to asi nejde a nepůjde. Jeho překlad opravdu zůstane doménou gcc.
Zkoušel jsem překlad jednoduchého gtk programu a po přidání pár cest kompilace proběhla, ale pohořel jsem u linkování (gcc překlad proběhl v pořádku). Osobně si myslím, že to byla má chyba (nezapomeňte v projektu zaškrtnout Force C++).
Jinak C++ verze samozřejmě umí překládat i ne CLX aplikace, ale jak je to s kompatibilitou ohledně syntaxe jazyka, přesně neřeknu a nechám laskávého čtenáře, ať si to zkusí sám. Mám jisté pochybnosti ohledně stupně standardizace jazyka C++ a jeho nuance neznám.
Ještě malá poznámka ohledně kompatibility s gcc: v gcc je u parametrů -I, -L a -o možno před jménem souboru použít mezeru. U Kylixu to nelze. Dále musí být na rozdíl od gcc všechny parametry uvedeny před prvním jménem zdrojového souboru.
Ostatní novinky
- Nový WebAppDebugger (dostupný z obou IDE) umožňuje monitorovat HTTP komunikaci (např. maximální nebo minimální dobu odezvy) a tím zjednodušuje vývoj webových služeb – mělo by to být dokonce i ve verzi Professional. Dále zobrazuje typ (např. text/html) a velikost odpovědi a návratové kódy protokolu http.
- Jsou určité novinky v práci s webovými službami, které některé věci zjednodušují nebo zlepšují. Hlavní změnou je, že část komponent ohledně SOAP a XML je dostupná už ve verzi Professional. Dále přibyla nová komponenta TXSLPageProducer, která by měla umožňovat vytváření HTML stránek za pomoci XSL transformace (Enterprise).
- Byly markantně upraveny komponenty dialogů TOpenDialog a TSaveDialog, takže jsou hezčí a účelnější (více se podobají těm z KDE 2 a umožňují např. vytvoření adresáře). Kromě toho umožňují implementovat náhledy (pomocí vláken). Hezký příklad je v adresáři examples/delphi/previewers.
- Komponenty Indy (síťové komponenty) se dočkaly nové verze, ale jelikož je nepoužívám, tak k tomu nemohu více říct (Professional a Enterprise). Pro mne bude důležitější nová verze Synapse.
- Rozšíření Open Tools API (API, které umožňuje rozšířít IDE) – detaily jsou dostupné na Internetu
- V paletě komponent přibyla záložka System, která obsahuje šest nových fakt šikovných komponent: TDirectoryTreeView, TFileListView,TFileIconView, TFileEdit, TFileHistoryComboBox, TFilterComboBox, které slouží pro jednodušší práci se soubory (hlavně č.1,2).
- Integrovaný help se mi subjektivně zdá rychlejší a stabilnější (i když to pořád není ono). Vůbec celé IDE se mi zdá celkem svižné.
Dokumentace
V OpenEdition je pouze elektronická verze (v pdf) příručky QuickStart, která nyní obsahuje informace i o C++ verzi Kylixu, a navíc je k dispozici v pdf i návod na naprogramování dvou aplikací, a to jak v Delphi, tak v C++ verzi. Jedná se o textový editor a o databázovou aplikaci (32 a 22 stran). Kromě toho je v pdf plakát hierarchie všech tříd barevně odlišených podle edice.
Ve vyšších edicích je dokumentace tištěná a obsahuje i Developer Quide (cca 800 stran).
Instalace
Instalace proběhla na mém MDK 8.2 bezproblémově. Oproti minulé verzi se zjednodušila registrace. Nyní je registrační kód zaslán na zadaný e-mail zároveň se začátkem stahování. Celý e-mail se pak zkopíruje do domovského adresáře, kde je programem zpracován.
Certifikované distribuce
- Mandrake 8.2
- RedHat 7.2
- SUSE 7.3
Pro ostatní distribuce je v balíku testovací program (viz seriál). Ohledně RedHatu 7.3 jsou jisté informace v souboru PREINSTALL a kromě toho jsem něco našel zde: www.linuxworld.com.
Edice
Jak jsem již uvedl v seriálu, je Kylix dostupný v různých (a různě drahých) edicích.
Open Edition
Tato edice je dostupná zdarma z domovské stránky. Je určena pouze pro vývoj GPL aplikací. Obsahuje trochu očesané IDE a neobsahuje podporu DB ani Internetu (existují ale komponenty). Jedná se o 90 Mb balík (po uvedení měl 300 Mb, ale to obsahoval i patche do distribucí). Obsahuje jak Delphi, tak C++ verzi IDE a kompilátorů.
Professional
Podle mě docela správná varianta za rozumnou cenu. Obsahuje plné IDE, komponenty pro DB (MySQL, PostqreSQL, Interbase + Firebird a měla by obsahovat i jednoduchou technologii pro lokální DB MyBase), komponenty pro Internet (jedno, jestli modul Apache, nebo CGI). Dále by měla obsahovat možnost napsat SOAP klienta, něco ohledně XML a WebAppDebugger. Píši měla, protože jsem ji zatím neměl v ruce a srovnávací tabulky se trošku odlišují.
Výsledná licence GPL nebo komerční.
Enterprise
Má být určena primárně pro e-byznis. Tomu odpovídá cena, ale také skladba komponent: obsah Professional + SOAP, XML, zjednodušený návrh webových aplikací. Kromě toho obsahuje možnost připojení k Oraclu, DB2 a Informixu.
IDE shodné s předchozím.
Výsledná licence GPL nebo komerční.
Proč a kdy používat Kylix?
Na tuto otázku si každý musí odpovědět sám. Není to program pro každého (jako ostatně žádný).
Tedy jinak: pro koho není vhodný? Pokud neprogramujete v C++ nebo Delphi, pokud programujete jádro nebo pokud milujete vi a plně vám vyhovuje. Určitě je zajímavý pro programátory tvořící GUI aplikace nebo internetové serverové služby.
Proč ale třeba nepoužít KDevelop a spol? Protože na rozdíl od Kylixe umožňují vytvořit pouze GUI a navíc svázané s konkrétním správcem oken (KDE, Gnome). Kylix je podle mě ideální na linuxový terminál (pracovní stanici) s jednoduchým WM.
Kromě návrhu GUI, což je samozřejmostí, nabízí Kylix další věci jako vizuální návrh databázových programů, kdy např. lze zkoušet připojení k databázi přímo v návrhovém módu a zároveň už fungují DB ovládací prvky, takže programátor neztrácí čas kompilací. Dále jsou tam komponenty pro Internet, které zapouzdřují i různé protokoly (já ale používám jiné).
Poznámky
Vzhled výsledné aplikace lze vylepšit změnou stylu QT (někdy i stylu programování) třeba takto (syntaxe Delphi):
Application.Style.DefaultStyle:=dsQtSGI
Každému zájemci doporučuji zkusit trial nebo open edition, a dále, aby si porovnal jednotlivá balení.
Požadavky
- operační systém Linux na platformě IA32
- grafické prostředí (např. XFree)
- diskový prostor OpenEdition 200 Mb, Professional 350, Enterprise 450 Mb
- procesor 350 MHz
- operační paměť 128 Mb
Cena
- OpenEdition – volně ke stažení (manuály v elektronické podobě)
- Professional – 8600 Kč (akce) +5 % DPH
- Enterprise – 66000 Kč +5 % DPH