Hlavní navigace

Kylix 3

Radek Červinka 4. 10. 2002

Co nového přináší programátorům Kylix ve verzi 3? Namátkou například podporu nových verzí databází, podporu pro Pentium 4 v integrovaném assembleru, nový WebAppDebugger, přibylo několik programů atd. Více se dočtete v dnešní recenzi.

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.



    WebAppDebugger při práci

  • 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/pre­viewers.



    Nový TOpenDialog s implementovaným náhledem na soubory rpm

  • 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,TFi­leIconView, TFileEdit, TFileHistoryCom­boBox, 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
Našli jste v článku chybu?

28. 7. 2004 0:02

Mrazman (neregistrovaný)

Caute urobil som si jednoduchu aplikaciu (skusobnu)
v kylixe 3. Problem je ze v Kylixe ju pustim a slape v pohodicke, ale jakmile ju chcem spustit priamo z Linuxu zahlasi mi, ze nevie najst spustaci subor. Neviete co s tym?


7. 10. 2002 10:33

PeZ (neregistrovaný)

Docela by me zajimalo, jak je to s instalaci aplikaci v Kylixu vytvorenych, vim ze druhda sem zkousel verzi 1.0 a tam bylo potreba i k jednoduchymu programku pridat jeste hromadu nekolika MB knihoven a pri instalaci sachovat s LD_LIBRARY_PATH, a staticky se mi to nikdy prekompilovat nepodarilo. Takze nevite nahodou nekdo jak je to u 3-ky ?

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami