Wieloplatformowe środowisko programistyczne C++BuilderX oraz plany rozwoju standardu ANSI C/C++ to ukłon firmy Borland w stronę największej na świecie grupy programistów.

Spis treści

Wieloplatformowe środowisko programistyczne C++BuilderX oraz plany rozwoju standardu ANSI C/C++ to ukłon firmy Borland w stronę największej na świecie grupy programistów.

Nowoczesne narzędzia programistyczne przebyły długą drogę od lat 80., kiedy ich zadaniem było umożliwienie zbudowania w ogóle czegokolwiek. Od tamtego czasu nacisk był kładziony kolejno na zapewnienie dostępu do baz danych, uzyskanie większej produktywności (narodziny środowisk typu RAD), umożliwienie budowy większych i bardziej złożonych rozwiązań (technologia obiektowa), podniesienie ich wydajności (aplikacje skalowalne i systemy rozproszone), wreszcie kontrolę procesu produkcji oprogramowania (modelowanie UML, praca grupowa, zarządzanie wymaganiami) aż do obecnej filozofii określanej jako Agile Programming.

Z jej założeń wynika, że wyznaczone cele powinny być osiągane szybko i przy wykorzystaniu najbardziej wygodnych narzędzi. Na dodatek, powstające rozwiązania powinny być elastyczne, wielokrotnego użytku i łatwe do zaadaptowania do nowych warunków - niekoniecznie znanych na etapie produkcji.

Konieczność optymalizacji procesu produkcji oprogramowania wymusza wykorzystanie już istniejących rozwiązań i skoncentrowanie wysiłków jedynie na dodaniu nowej funkcjonalności. Jeżeli kod został już napisany i działa poprawnie, to nie ma powodu, żeby go tłumaczyć na inny język, który w danej chwili jest faworytem. Przeciwnie, trzeba umożliwić jego wykorzystanie i konserwację, a nawet stworzyć warunki do dalszego rozwoju.

Dlaczego C++?

Pełna synchronizacja kodu i modelu. Borland C++BuilderX i Borland Together pracują razem nad wspólnym projektem dzięki technologii LiveSource.

Pomimo silnej konkurencji, język C/C++ jest wciąż najbardziej rozpowszechnionym narzędziem do rozwiązywania problemów z najróżniejszych dziedzin. Jego ewidentne zalety, tj. wysoka wydajność budowanych aplikacji, mały rozmiar kodu, bezpośredni dostęp do sprzętu sprawiają, że jest chętnie stosowany w nauce, przemyśle, produkcji, finansach...

W C/C++ napisano też większość systemów operacyjnych oraz aplikacji (zwłaszcza do systemów Unix), ponieważ instrukcje języka C/C++ dają się precyzyjnie odwzorować na kod maszynowy procesora. Fakt ten ma szczególnie duże znaczenie w przypadku wszystkich systemów działających w czasie rzeczywistym, gdzie np. niedopuszczalna jest hipotetyczna sytuacja, w której wątek obsługi przerwania musi poczekać, aż znany z Javy lub platformy .Net Garbage Collector, uporządkuje pamięć i dopiero przekaże sterowanie do procedury obsługi.

Ze względu na swoje charakterystyczne właściwości, język C/C++ znalazł zastosowanie w najróżniejszych systemach operacyjnych i platformach sprzętowych. Doczekał się wielu środowisk programistycznych, kompilatorów i bibliotek funkcji - niestety nie do końca ze sobą zgodnych. Jednak teraz, gdy pojawiła się potrzeba budowy rozwiązań luźno związanych z platformą, a najlepiej całkowicie od niej niezależnych, unifikacja tych środowisk projektowych wydaje się wręcz koniecznością.

Firma Borland, dostarczając środowisko C++BuilderX, chce uniezależnić kod języka C/C++ nie tylko od platformy, ale i konkretnego kompilatora, zlikwidować niezgodności wynikające ze stosowania wąsko specjalizowanych narzędzi i rozwinąć sam standard języka C/C++. Odpowiedni moment na taką akcję standaryzacyjną jest chyba właśnie teraz, zwłaszcza w kontekście coraz większej aktywności C/C++ na rynku urządzeń mobilnych.

Platformy i kompilatory

Zintegrowane środowisko projektowe (IDE) systemu C++BuilderX samo w sobie jest niezależne od platformy i zgodnie z założeniami ma zapewnić programistom spójny interfejs do narzędzi programistycznych. Wspólne metody zarządzania projektem i sposoby realizacji zadań związanych z budową aplikacji mają zapewnić łatwiejsze przenoszenie kodu między platformami i wyeliminować konieczność stosowania takich rozszerzeń kompilatorów, które są specyficzne dla środowiska docelowego.

Środowisko systemu C++BuilderX pracuje na platformach Windows, Linux i Solaris i do nich też można dostarczać aplikacje. Dostępne kompilatory często obsługują więcej niż jedną platformę, a w konsekwencji, w obrębie jednej z nich można korzystać z kilku kompilatorów, co najwyraźniej widać w przypadku platformy Windows.

Kompilatory, linkery i debugery wchodzące w skład każdego narzędzia do budowy aplikacji dołączane są do środowiska C++BuilderX w postaci tzw. toolsets. Są to pliki XML z rozszerzeniem które szczegółowo instruują środowisko IDE, w jaki sposób należy z nich korzystać. Podstawowy zestaw obejmuje kompilatory do środowiska Windows, tj. Borland C++ BCC32, MinGW GCC, Microsoft Visual C++ 7.1 oraz - dostępny również w wersji do Linuksa - Intel C++ Compiler 7.1.

C++BuilderX może wykorzystywać dowolne zewnętrzne kompilatory (wystarczy przygotować do nich odpowiedni plik ale dla kilku wybranych odpowiednie pliki XML są instalowane domyślnie. Dotyczy to kompilatora GCC (Windows, Linux, Solaris), Sun Forte C++ (Solaris/SPARC) oraz MetroWerks CodeWarrior C++ (Windows).

Intel silnie reprezentowany

Na razie jeszcze dość skromny zestaw kontrolek wizualnych, ale intensywny rozwój biblioteki wxWindows na pewno zmieni tę sytuację.

W ramach zestawu narzędzi programistycznych firmy Intel dostarczonych w pakiecie C++BuilderX, oprócz samego kompilatora (Intel C++ Compiler 7.1) do budowy 32-bitowych aplikacji (IA-32), instalowana jest także wersja, która umożliwia generowanie kodu do procesorów Itanium. Funkcjonalność ta nie jest jednak na razie dostępna w środowisku C++BuilderX. Zresztą sprawę dodatkowo komplikuje fakt, że aby w pełni wykorzystać narzędzia firmy Intel, konieczne jest posiadanie Microsoft Visual C++ 6.0 lub jego nowszej wersji, co oprócz dostępu do plików nagłówkowych i bibliotek, umożliwia również integrację narzędzi z GUI tego środowiska.

Biblioteki Intel Integrated Performance Primitives oraz Intel Math Kernel Library to z kolei komponenty nieco bardziej związane z konkretną platformą. Są to zoptymalizowane pod kątem procesorów firmy Intel funkcje do przetwarzania sygnałów, kompresji dźwięku i obrazu, szyfrowania danych oraz wydajne procedury numeryczne stosowane nie tylko do realizacji powyższych zadań, ale także na potrzeby nauki teoretycznej. Do dalszej optymalizacji kodu należy posłużyć się narzędziem Intel VTune Performance Analyzer 7.0, które już można zakwalifikować jako bardziej niezależne od platformy, a właściwie procesora, ponieważ pracuje zarówno z procesorami Pentium i Itanium, jak i mobilnymi procesorami Xscale.

C++BuilderX a strategia ALM

W trybie projektowania układ kontrolek formularza jest odwzorowany w pliku XML, który w działającej aplikacji wxFramework zostaje zaszyty w pliku wykonywalnym jako zasób.

Borland C++BuilderX precyzyjnie realizuje postanowienia strategii ALM (Application Lifecycle Management), która zakłada zapewnienie kontroli i sterowania całym procesem tworzenia aplikacji, tj. od zdefiniowania wymagań, poprzez zaprojektowanie, zbudowanie, przetestowanie, wdrożenie, aż do zapewnienia jej sprawnego funkcjonowania w docelowym środowisku. Niestety ścisła integracja środowiska C++BuilderX z innymi narzędziami ALM standardowo dostępna jest dopiero w najwyższej i najdroższej edycji pakietu, a mianowicie Borland Enterprise Studio for C++. Tylko tutaj oprogramowanie Together Edition for C++BuilderX występuje w pełnej wersji. Użytkownicy C++BuilderX Enterprise będą mogli poznać smak tej technologii, dzięki dołączonej do pakietu ograniczonej czasowo wersji demonstracyjnej tego narzędzia. Pozostali nie będą mogli, bez dodatkowych inwestycji, stosować najnowszej metodologii tworzenia oprogramowania, która zakłada wykorzystanie języka UML w budowie aplikacji oraz ścisły związek projektu i kodu aplikacji.

Jeżeli jednak Together naprawdę przyczynia się do zwiększenia produktywności programistów i pozwala im lepiej porozumiewać się z projektantami. Diagramy UML pozwalają jednym i drugim rozmawiać bardzo merytorycznie, a całkowita synchronizacja kodu i modelu sprawia, że wszyscy widzą ten sam projekt. Już na wstępnym etapie projektowania, Together pomaga przewidzieć i zapobiec problemom wydajności i zapewnić wysoką jakość powstającego produktu, a także poprawić komunikację zespołów. Budowa aplikacji za pomocą sprawdzonych wzorców projektowych, wielokrotne wykorzystywanie raz napisanych komponentów, usprawnianie już istniejącego kodu (refactoring), zarządzanie wymaganiami stawianymi aplikacji oraz nadzorowanie implementacji funkcjonalności, która te wymagania realizuje, aż w końcu stosowanie zaawansowanych systemów kontroli wersji do utrzymywania całych drzew projektów to wszystko elementy strategii ALM, której realizację w praktyce zapewniają: Borland StarTeam, Borland CaliberRM i przede wszystkim Borland Together.

Jarosław Kułak
Jarosław Kułak

Leave a Comment