C++ Builder 3.0 stojí za to

C++ Builder 3.0 uvedla firma Inprise (tehdy ještě pod jménem Borland) na letošním CeBITu. Pro odpůrce češtiny na poč


C++ Builder 3.0 uvedla firma Inprise (tehdy ještě pod jménem Borland) na
letošním CeBITu. Pro odpůrce češtiny na počítačích může být zajímavé, že
zároveň přišla na trh i plně lokalizovaná německá verze.
C++ Builder je nástroj pro vizuální programování v C++. Dodává se ve verzích
Standard, Professional, Client/Server a Enterprise; rozdíly se týkají především
podpory databází. My si budeme povídat především o verzi Professional.
Verze Standard umožňuje vytvářet aplikace pracující se stolními databázemi typu
dBase; verze Professional již obsahuje i lokální databázový server Interbase
5.0 a ve verzi Client/Server najdeme plnohodnotnou verzi tohoto serveru. Verze
Enterprise obsahuje navíc komponenty pro spolupráci s aplikacemi vyvinutými
pomocí Entery (to je nástroj pro tvorbu aplikací střední vrstvy, také od
Inprise).
Další rozdíly se týkají podpory programování pro Internet (od verze
Professional), počtu dodávaných vizuálních komponent atd.
C++ Builder vytváří grafické nebo konzolové aplikace, dynamické knihovny,
vizuální komponenty nebo "balíčky" pro Win32. Svými možnostmi je prakticky
ekvivalentní Delphi 3.0; ovšem Delphi umí pouze Pascal, zatímco v C++ Builderu
můžeme vedle C++ používat také Pascal.
Poznamenejme, že chceme-li vytvářet 16bitové aplikace, můžeme použít Borland
C++ 5.02, jehož instalační CD-ROM najdeme v krabici s Builderem jako přílohu.
Programování v Builderu
V C++ Builderu můžeme programovat klasicky, to znamená napsat svůj program
řádku po řádce. Jeho hlavní síla ale spočívá ve vizuálním programování graficky
orientovaných aplikací. Princip je dnes už notoricky známý, a proto jen
stručně: Při otevření nového projektu nám prostředí nabídne základní okno
budoucí aplikace a několik palet komponent, které představují běžně používané
součásti programů tlačítka, dialogová okna a jiné "viditelné" prvky, ale také
časovače, komponenty pro přístup k databázím atd. Potřebné komponenty vybíráme
na paletách, myší je ukládáme do oken aplikace a prostředí přitom automaticky
generuje odpovídající zdrojový program. Vlastnosti komponent, které lze
definovat už v době návrhu, předepíšeme v okně inspektora objektů. Na nás pak
zbude dopsat těla funkcí, které mají na starosti odezvy na události (stisknutí
tlačítka ap.).
Jakmile se ovšem pustíme do konzolové aplikace nebo do programování nových
komponent, musíme postupovat klasicky vizuální programování už použít nemůžeme.
Jazyky
C++ Builder 3.0 obsahuje překladač jazyka C++, jazyka C a Object Pascalu.
Součásti instalace je i překladač 32bitového assembleru TASM32.
Implementace jazyka C odpovídá normě ANSI/ISO 9899-1990 s několika rozšířeními,
z nichž asi nejvýznamnější jsou strukturované výjimky Structured Exception
Handling bez klíčového slova __leave. Vedle toho se tu setkáme např. s
64bitovými celými čísly (typ __int64). Pokud jde o C++, je situace složitější.
Dnes již sice existuje konečný návrh normy, nicméně současné překladače se mu
mohou pouze v různé míře blížit. Implementace C++ v C++ Builderu 3.0 obsahuje
všechny hlavní součásti jazyka, některé však s jistými omezeními. Neumožňuje
např. definovat šablonu jako složku objektového typu nebo šablony objektového
typu, neumožňuje definovat šablonu, jejímž formálním parametrem je opět
šablona, neumožňuje použít blok try/catch jako tělo funkce, postrádá klíčové
slovo export pro označení šablon použitelných v celém programu atd.
Můžete namítnout, že jde o rafinované konstrukce, které při běžném programování
nejsou potřeba. To je samozřejmě pravda, ale ne celá: S mnohými z nich se totiž
setkáme v různých knihovnách, standardní knihovnu C++ nevyjímaje a pak nastanou
problémy s přenositelností programu. K tomu se ostatně dostaneme v následujícím
oddílu.
Svéráznou kapitolu tvoří konstrukce vynucené požadavkem kompatibility s Delphi.
Při běžném programování potřebujeme vědět vlastně jen to, že instance
komponentových tříd smějí být jen dynamické a že výjimky vzniklé v komponentách
musíme v handleru catch chytat odkazem. Vedle toho se ovšem v C++ Builderu
setkáme s řadou nových klíčových slov a konstrukcí, jako jsou ukazatele
obsahující adresu metody a zároveň adresu "jejího" objektu, virtuální
konstruktory pro komponenty atd. Tato rozšíření ovšem potřebujeme jen v
případě, že si chceme napsat vlastní komponentu.
Implementace Object Pascalu odpovídá Delphi 3.0 (součástí instalace Builderu je
překladač DCC32 verze 11.0).
Knihovny
Základem celého C++ Builderu je knihovna vizuálních komponent VCL společná s
Delphi. (Komponenty používané v Builderu jsou napsány v Object Pascalu.) Tato
knihovna je k disposici i v ladicí verzi, která umožňuje krokovat i zdrojový
kód komponent.
Dále je součástí dodávky tradiční borlandská knihovna Object Windows Library
(OWL), která představuje alternativní rámec pro vytváření graficky
orientovaných aplikací pro Windows, a Microsoft Foundation Classes (MFC),
podobná knihovna od Microsoftu. Pro vytváření komponent ActiveX poslouží např.
microsoftská knihovna ATL.
Implementace standardní knihovny jazyka C++ pochází podobně jako v předchozí
verzi od softwarové firmy Rogue Wave. Současná verze není bohužel zcela
kompatibilní s verzí předchozí změnily se např. parametry některých šablon v
knihovně kontejnerů. (Paradoxně jde o důsledek toho, že se překladač C++
přiblížil ke standardu; předchozí verze neumožňovala použít jeden parametr
šablony jako implicitní hodnotu následujícího parametru, a tak to museli tvůrci
knihovny nějak obejít. A nyní to musíme obcházet my při přenosu programů.)
Prostředí
Vývojové prostředí C++ Builderu se podobá prostředí předchozí verze, přináší
ale několik významných vylepšení. Jeho základem je okno s nabídkami,
nástrojovými panely a paletami komponent, které je tradičně v horní části
pracovní plochy. Pod ním je základní okno aplikace a okno inspektora objektů.
Pod oknem aplikace se skrývá okno se zdrojovým textem programu.
Editor nabízí obvyklé služby přetahování označených bloků myší, zvýrazňování
syntaxe atd. Novinkou je Code Insight, nástroj, který umožňuje vkládat do
zdrojového textu kostry příkazů, deklarací a dalších konstrukcí, které si
můžeme sami definovat. Skvělá věc, jen trochu mi vadilo, že jej lze vyvolat
pouze jakousi klávesovou kombinací.
Nepříjemné je, že prostředí nenabízí nápovědu ke standardní šablonové knihovně.
Správa projektů se ve srovnání s předchozí verzí dočkala podstatného vylepšení.
Správce projektů umožňuje sdružovat projekty do skupin a s projekty ve skupině
pracovat zároveň, snadno přecházet mezi soubory apod. Také nabídka voleb pro
jednotlivé projekty je podstatně širší než u předchozí verze; navíc můžeme
nastavovat zvlášť volby pro C++ a zvlášť pro Pascal. Přiznám se ale, že mi zde
chybí možnost nastavovat zvlášť volby pro jednotlivé soubory projektu pokud se
nemýlím, tuto možnost nabízel už překladač Borland C++ 4.0.
Zásobník objektů (Object Repository) obsahuje šablony projektů, aplikací, prvků
ActiveX, dialogových oken atd. Ukládá se do něj také aktuální projekt, a tak
lze některé jeho součásti snadno přenést i do jiných projektů.
Mnohé z vlastností prostředí můžeme uzpůsobit svým potřebám můžeme si
předepsat, která tlačítka chceme na nástrojových panelech, jaké písmo chceme
používat atd.
Ladění
Ladicí nástroje C++ Builderu nabízejí běžný komfort srovnatelný s konkurenčními
nástroji. To znamená, že umožňují krokovat program na úrovni zdrojového nebo
disassemblovaného strojového kódu, sledovat hodnoty proměnných, stavy
jednotlivých vláken, reagovat na vznik výjimek, vkládat do zdrojového textu
zarážky atd. Stejně můžeme ladit i části napsané v Pascalu.
Vzhledem k tomu, že v C++ Builderu můžeme programovat také "klasicky",
postrádám tu možnost používat zarážky vázané na příchod zpráv od Windows. (V
programech založených na komponentách tuto možnost příliš neoceníme, ale v
programu založeném na Windows API je to něco jiného.) Ve srovnání s někte-rými
konkurenčními produkty např. Visual C++ 5.0 zde také postrádám možnost snadného
sledování hodnot vracených funkcemi tedy jejich výsledků a možnost vyskočit z
právě krokované funkce.
Prostředky
Jako prostředky resources označujeme dialogová okna, nabídky a další součásti
grafického rozhraní, které slouží ke snadnému ovládání programů. V C++ Builderu
je velká většina prostředků zapouzdřena do komponent na paletách, a proto není
součástí dodávky zvláštní editor (jako byl Resource Workshop v Borland C++).
Najdeme tu pouze Image Editor, který umožňuje vytvářet ikony, kurzory a jiné
bitové mapy. Kromě toho máme k disposici nástroj pro import tradičních souborů
s prostředky do C++ Builderu.
Databáze, COM, Internet
Nástroje pro vývoj databázových aplikací jsou zapouzdřeny ve skupině komponent,
které se starají o připojení k databázi, o zobrazení dat atd. Jejich základem
je borlandské databázové jádro, Borland Database Engine, které umožňuje
připojení k různým databázím prostřednictvím ODBC. Verze Client/Server a
Enterprise obsahují také SQL linky pro přístup k SQL serverům. Součástí dodávky
je i Database Explorer, který umožňuje editovat databázové tabulky, vytvářet
nové atd.
Dále tu najdeme komponenty, které zpřístupňují Windows Sockets a tak umožňují
psát programy, které komunikují se světem prostřednictvím TCP/IP, IPX/SPX a
některých jiných síťových protokolů. Na paletách
najdeme i komponenty ActiveX představující prohlížeč HTML aj.
V C++ Builderu můžeme psát i aplikace založené na microsoftském modelu COM.
Mezi podpůrnými nástroji najdeme MIDL, překladač jazyka pro popis rozhraní,
dále nástroje pro import typových knihoven atd.
Požadavky
Dokumentace uvádí jako minimální konfiguraci počítač s procesorem Intel 486/100
MHz, 24 MB RAM, grafickou kartou VGA, myší a mechanikou CD-ROM. Dále
potřebujeme alespoň 175 MB volného místa na disku a operační systém Windows 95
nebo Windows NT 4.0 se service packem 2.0.
Tyto požadavky jsou opravdu minimální, rozumnější je Pentium/ 90 MHz s 48 MB
RAM. Také požadavky na diskový prostor mohou být podstatně vyšší záleží na
velikosti clusterů na disku.
Srovnání
Nejbližším konkurentem C++ Builderu je zřejmě Power++ 2.0 od Powersoftu. Při
srovnání těchto 2 produktů mi připadaly důležité následující body:
-Power++ stojí na čistém C++, Builder obsahuje řadu rozšíření (která ale
programátor zpravidla nemusí znát).
-Power++ je nástroj pro C++, nic víc; Builder umožňuje pracovat také v Pascalu
(připouští tedy smíšený vývojářský tým).
-Implementace C++ v Builderu je blíže standardu.
-C++ Builder obsahuje standardní šablonovou knihovnu jazyka C++, Power++ nikoli.
Dojem
C++ Builder 3.0 se zřejmě stává vlajkovou lodí firmy Inprise, pokud jde o C++.
I když mu lze vyčítat různé nedostatky, jde o drobnosti. Je to dobrý nástroj.
8 1894 / or









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