Kylix 2 a Delphi 6

Delphi a Kylix jsou známá a populární vývojová prostředí, která umožňují velmi rychlý a efektivní vývoj aplikac...


Delphi a Kylix jsou známá a populární vývojová prostředí, která umožňují velmi
rychlý a efektivní vývoj aplikací jak pro Windows, tak i pro Linux v jazyce
Object Pascal. V současné době je na trhu jejich šestá, resp. druhá verze obě
nabízejí řadu vylepšení a rozšíření.
Pro instalaci jsem použil počítač s procesorem AMD Athlon K7 taktovaným na 1
GHz s 256 MB RAM, operačním systémem Mandrake Linux 8.2 (pro Kylix 2) a Windows
2000 (pro Delphi 6). Cross-platform aplikace
Mnoho vývojářů pravděpodobně zajímá především vývoj aplikací nezávislých na
platformě tedy s použitím knihovny CLX a případně i migrace stávajících
aplikací využívajících knihovny VCL na CLX.

Knihovna CLX
Nová verze této knihovny přichází s určitými vylepšeními mnoha komponent i
řadou nových nevizuálních komponent, nicméně vývoj vizuálních komponent
nedoznal žádných výraznějších pokroků. Přestože Borland zpřístupnil zdrojový
kód a jeho vývoj formou open source na serveru SourceForge, neprobíhá vývoj a
ladění tohoto kódu tak rychle, jak by si nejspíše mnoho vývojářů přálo, a podle
všeho je to způsobeno především chybějící aktivitou Borlandu v rámci tohoto
projektu. Jak jsem si ověřil, nedošlo k žádné změně v kódu od prosince minulého
roku, přestože požadavky a příspěvky stále přibývají.
Konverze vizuálních aplikací do CLX: Bohužel neexistuje žádný jednoduchý
nástroj ani jednoznačný postup, jak převést grafické VCL aplikace na CLX
platformu. Je to způsobeno nejen tím, že je CLX mnohem chudší knihovnou než
VCL, ale také určitými odlišnostmi v jinak skoro stejných komponentách.
Proto přichází velmi vhod skutečnost, že alespoň formát definice formulářů je
nezměněn. Pro odlišení CLX a VCL formulářů je namísto přípony DFM (ve VCL)
použita přípona XFM (v CLX).

XML komponenty
Nové nevizuální komponenty jsou zaměřeny především na práci s XML a s ním
souvisejícími technologiemi SOAP a web services. CLX obsahuje celkem dobře
zpracovanou knihovnu tříd, které implementují standard DOM (viz odkazy) pro
práci s XML prostřednictvím hierarchie paměťových objektů. Architektura této
knihovny umožňuje použít různé implementace standardu DOM; veškeré implementace
jsou přístupné přes výchozí třídu TDOMVendor a proměnnou DOMVendors. Tím je
umožněno relativně snadné vytvoření obálky pro další implementace tohoto
standardu. Delphi obsahuje dvě implementace obálku pro MSXMLDOM ActiveX
komponentu od firmy Microsoft a implementaci firmy IBM; Kylix samozřejmě nabízí
jenom implementaci IBM, protože technologie ActiveX není na Linuxu (běžně)
dostupná. Alternativní možnosti zpracování XML souborů nabízí open source
projekt Libxml2 for pascal (viz odkazy).

Novinky v IDE
Nyní uvedeme výčet některých zlepšení, jichž doznalo vývojové prostředí (IDE):
- Okno "Object TreeView" umožňuje velmi rychle analyzovat strukturu vyvíjeného
formuláře, protože obsahuje hierarchii komponent na něm umístěných, a to včetně
položek menu. To znamená, že u jednodušších oken, kterých je ve velkých
aplikacích většina, stačí jediný pohled k získání přehledu o obsahu příslušného
unitu.
- Definovatelné proměnné prostředí Tools | Environment Options | Environment
Variables je okno velmi užitečné pro ladění. Umožňuje nastavit obsah proměnných
prostředí platný při spuštění aplikace přímo z vývojového prostředí.
- Technologie BizSnap, DataSnap a WebSnap jsou nyní dostupné nejen v Delphi,
ale i v Kylixu (pro verzi Enterprise), a patří k nejdůležitějším novinkám obou
produktů, neboť výrazně usnadňují vývoj databázových aplikací (podporovány jsou
všechny důležité databáze), webových aplikací či služeb atd.
- Jazyková rozšíření nejvíce mne potěšila přítomnost některých klíčových slov.
- "varargs" umožňuje volání externích funkcí s proměnným počtem parametrů;
neumožňuje takové funkce implementovat, ale to většinou ani není potřeba,
protože Object Pascal má jiné prostředky pro práci s proměnným počtem argumentů.
- "deprecated" označuje funkci, která byla při vývoji nahrazena jinými
funkcemi. Trochu mi chybí možnost takto označit i jiné entity, zejména
konstanty, proměnné, třídy a typy; nicméně i tak je přínos této novinky značný.
- "platform" označuje symboly, které vnášejí do projektu závislost na
platformě. Díky tomu je možné snadno se těchto závislostí vyvarovat překladač
hlásí (pokud mu to nastavíte) použití takto označených symbolů při každém
překladu.

Linux versus Windows
Během testování jsem byl velmi příjemně překvapen tím, nakolik je naplněna
hlavní myšlenka Kylixu a Delphi, a sice umožnit bezproblémový vývoj nativních
aplikací pro oba cílové operační systémy, Linux a Windows. Kromě několika
chybných "platform" hlášení jsem nenarazil na žádné problémy s přeložitelností
kódu na obou platformách.
Určité rozdíly vyplynuly při testování mezních podmínek v některých
komponentách. Tak například vlastnost "SelStart" komponenty "TMemo": Nastavíte-
li její hodnotu tak, aby překročila délku momentálně zadaného textu, dojde na
Linuxu k vyhození výjimky (exception), zatímco Windows verze si poradí i s
takovouto hodnotou. Podobných odlišností je celá řada, ale naštěstí žádná není
tak závažná, aby se nedala jednoduše odstranit.
Poněkud zklamán jsem byl spolehlivostí vestavěného debuggeru v Kylixu.
Programy, které celkem bezproblémově běží, spustíte-li je "rychle", se někdy
chovají velmi zvláštně, když se pokusíte určitá místa krokovat. V zásadě
dochází k problémům dvojího typu při použití funkce "Step Over" nebo "Trace
Into":
1. IDE nahlásí chybu "SEGFAULT", a není jiný způsob jak se jí zbavit, než
aplikaci zavřít; pak ovšem (někdy) celé IDE zmizí a musíte Kylix spustit znova.
2. IDE zmizí okamžitě a bez předchozího varování.
Je možné, že jsou tyto problémy způsobeny použitou verzí Linuxu Mandrake 8.2
není oficiálně podporovanou verzí této distribuce (podporován je Mandrake 8.0).
Nicméně podobné problémy jsem měl i s Kylixem 1 na oficiálně podporovaném
Mandrake 7.2.

WebSnap
WebSnap je sada komponent a nástrojů umožňující rychlé a jednoduché vytváření
webových aplikací. Zahrnuje podporu pro přihlašování a správu uživatelských
sessions, práci s databází, generování HTML stránek, XML transformace,
serverové skriptování atd., to vše s minimální nutností psaní vlastního kódu.
Architektura WebSnap je velmi otevřená, což umožňuje autorům komponent
jednoduše doplňovat další potřebnou funkcionalitu.

Podpora SOAP a WSDL
Web services, technologie která standardizuje poskytování elektronických služeb
(nejen) na internetu, nabízejí mnohem efektivnější výměnu a sdílení informací a
především obrovské možnosti pro poskytování různých služeb, obvykle založených
na získávání informací.
Delphi 6 a Kylix 2 obsahují celou řadu komponent a nástrojů pro práci se SOAP a
WSDL dokumenty. Ty umožňují vytvářet serverové i klientské aplikace a podporují
komunikaci přes HTTP (nejběžnější transportní protokol pro SOAP). Serverovou
část lze integrovat do běžných webových serverů několika způsoby (jako např.
CGI, ISAPI, Apache module atd.).
Oba produkty jsou opět dodávány ve třech verzích. Balík Delphi 6 je dostupný
jako Enterprise, Professional a Personal, Kylix 2 pak namísto Personal nabízí
verzi Open. Pokud jde o cenu (zejména za verzi Enterprise), ta na jednu stranu
odpovídá možnostem obou prostředí, na druhou stranu se dá očekávat, že zejména
open source vývojáři na ni budou reagovat poměrně citlivě. 2 1000 / wepn

Užitečné webové odkazy
Na následujících adresách lze najít mnoho příkladů využití technologií webových
služeb. Jedním z nejzajímavějších bude zřejmě "šachová služba": Informace
najdete na http://www.danmarinescu.com. Velmi populární registr webových služeb
je na http://www.xmethods.org doporučuji jej zvláště těm, kdo se chtějí naučit
vyvíjet klientské SOAP aplikace.
Delphi & Kylix odkazy: http://www.drbob42.com/kylix,
http://sourceforge.net/projects/libxml2-pas, http://www.w3.org/DOM/,
http://www.delphi-jedi.org

Speciální nabídka
Čtenáři Computerworldu mají po předložení tohoto kuponu u firmy Borland možnost
upgradu na Delphi 6 Enterprise + Kylix 2 Enterprise za cenu 46 990 Kč bez DPH.
Nabídka upgradu se týká legálních uživatelů všech předchozích verzí Delphi do
konce června 2002.

Vývojová prostředí
+ využití pro vývoj širokého spektra typů aplikací, přenositelnost aplikací
mezi platformami, podpora XML a SOAPu
- debugger v Kylixu
Zapůjčil: Borland, www.borland.cz
Cena (bez DPH): Kylix 2 Enterprise 66 650 Kč, Delphi 6 Enterprise 110 000 Kč









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