Visual Basic 4.0 kontra Delphi 2.0: którą platformę wybrać

Łatwość obsługi

Jeśli zależy nam na takim narzędziu, które jest łatwo obsługiwać, to powinniśmy się zdecydować na pakiet Visual Basic.

Przed wprowadzeniem pakietu VB na rynek można było nawet przyznać rację znanemu informatykowi E. Dijkstra, który twierdził - "jeśli bogowie chcieliby kogoś doprowadzić do szaleństwa, to zaczęliby go uczyć języka Basic". Opinia ta jest może i prawdziwa w odniesieniu do niezbyt zrozumiałego kodu języka Basic, ale nie do języka VB, który posługuje się technologią obiektową. VB separuje użytkownika od wszystkich zawiłości programowania, udostępniając mu tylko funkcje operujące na samym szczycie aplikacji. Jest to więc język uniwersalny typu "one-size-fits-many".

Delphi jest natomiast produktem opartym na języku Object Pascal, który nie ma nic (lub ma bardzo mało) wspólnego z oryginalnym językiem Pascal opracowanym przez N. Wirtha. Opanowanie języka Pascal i jego rygorystycznej struktury zabiera więcej czasu, ale opłaca się to na dłuższą metę. Jest to doskonały produkt dla tych programistów, którzy zamierzają budować aplikacje od samych podstaw i ingerować głęboko w program.

Oba pakiety pozwalają budować aplikacje w trybie obiektowym, wykorzystując gotowe obiekty. Wybór narzędzia zależy więc od indywidualnych upodobań i potrzeb programisty.

Mówiąc najogólniej, Delphi oferuje wiele zaawansowanych rozwiązań, a VB jest produktem prostym w obsłudze, pozwalającym tworzyć szybko prostsze aplikacje.

Tak VB, jak i Delphi oferują gotowe zestawy znaków graficznych (takich jak przyciski, okienka menu i inne elementy, które można szybko przeciągnąć oraz wbudować w projektowaną aplikację) i wiele programów usługowych.

Delphi jest narzędziem dobrze zaprojektowanym, oferującym wielopoziomowe paski narzędziowe i takie dodatkowe opcje, jak maskowane okienka edytowania, które pozwalają wprowadzać odpowiednio sformatowane dane.

Podsumowując: oba pakiety oferują łatwe w użyciu i przejrzyście pracujące graficzne interfejsy użytkownika, ale Delphi ma tu więcej zalet. Szczególnie jeśli idzie o dostępność wielu symboli graficznych i sposobów zarządzania nimi.

Jeśli idzie o łatwość obsługi, to VB zyskał notę - doskonały, a Delphi - dobry.

Przenoszenie aplikacji z 16-bitowego do 32-bitowego środowiska pracy

Oba produkty pozwalają przenosić aplikacje z 16-bitowego do 32-bitowego środowiska pracy, jednak proponują różne ścieżki przeprowadzania tej operacji.

Microsoft wprowadził do 16-bitowej wersji pakietu Visual Basic specjalne elementy kontrolne VBX (Visual Basic Controls). Od tego czasu wielu niezależnych producentów oprogramowania i programistów opracowało wiele takich elementów. Właśnie dlatego pakiet Delphi 1.0 też wspiera standard VBX.

Z chwilą przejścia na 32-bitowe środowisko pracy Microsoft zrezygnował z elementów VBX, wstawiając w to miejsce elementy OCX (OLE Custom Controls). Visual Basic 4.0 wspiera więc tylko standard OCX, tak samo zresztą jak pakiet Delphi 2.0. Jest to kłopotliwe szczególnie dla tych programistów, którzy używają takich elementów kontrolnych VBX, nie mających odpowiedników w elementach OCX. Jeśli więc komuś zależy na określonych elementach VBX, to nie powinien spieszyć się z przechodzeniem na nowe wersje pakietów VB czy Delphi.

Microsoft oferuje wszystkie odpowiedniki elementów VBX stosowanych w poprzednich wersjach pakietu VB, w postaci odpowiednich elementów formatu OCX, plus kilka nowych elementów przystosowanych do pracy pod systemem Windows 95. VB dysponuje też zestawem graficznych elementów kontroli (widgets - termin pochodzący od słów windows/gadgets), które pozwalają wstawiać do aplikacji zadania obsługujące zdarzenia Plug-and-Play.

Jeśli więc zamierzamy przejść z wcześniejszych wersji pakietów Delphi czy Turbo Pascal na Delphi 2.0, to nie powinniśmy z tym mieć żadnych kłopotów (z wyjątkiem warstw zewnętrznych interfejsu użytkownika oferowanych przez Object Windows Library). Niestety, użytkownicy muszą projektować te elementy od nowa, ale jest to proste zadanie.

Tak więc oba narzędzia pozwalają w bezbolesny sposób przechodzić na 32-bitowe środowisko pracy. Problemy mogą tylko wystąpić z dawnymi elementami VBX. Zarówno VB 4.0, jak i Delphi 4.0 uzyskały w tej kategorii oceny noty - bardzo dobry.

Język - dostępność zaawansowanych opcji

Główną cechą różniącą dwa pakiety w tej kategorii oceny jest to, że Delphi pozwala stosować wskaźniki. Daje się to wyraźnie odczuć w przypadku wykonywania różnych operacji na wyrażeniach łańcuchowych. Na przykład używając Delphi możemy zawsze użyć funkcji wycinania do usunięcia pierwszych czy ostatnich wyrażeń z łańcucha. VB nie oferuje tej opcji.

Jeśli zależy nam bardzo na oferowanych przez 32-bitowe środowiska pracy rozwiązaniach pozwalających uruchamiać aplikacje w trybie wielowątkowym czy wielozadaniowym, to powinniśmy się zainteresować pakietem Delphi. Visual Basic nie oferuje tych opcji. Nie jest to może jeszcze tak wielki problem obecnie, ponieważ niewiele produktów pracuje w trybie wielowątkowym i wielozadaniowym. Jednak w przyszłości wielozadaniowość i wielowątkowość będą zapewne powszechnie stosowanymi czy wręcz obowiązującymi trybami pracy aplikacji.

VB nie wspiera też wywołań zwrotnych (callback). Jest to opcja oferowana przez języki obiektowe pracująca w ten sposób, że obiekt może zwrócić wartość obiektowi, który go nie wywoływał. Wiele funkcji używanych przez zestawy funkcji API systemu Windows korzysta z opcji wywołań zwrotnych. Dlatego VB nie może z nich korzystać.

Czasem zaawansowane opcje można kodować w asemblerze. Jedynie Delphi daje możliwość włączania modułów w

asemblerze. Wystarczy użyć odpowiedniego polecenia. VB nie daje takich możliwości.

Właśnie dlatego Delphi uzyskał ocenę - doskonały, a Visual Basic - słaby.

Język - bazy danych

Obie omawiane tu platformy RAD współpracują z bazami danych. Microsoft wyposażył VB w motor bazy danych Jet, a Delphi bazuje na motorze Interbase. Są to dobre produkty, a Microsoft i Borland uczynili wiele, aby pracowały wydajnie.

VB 4.0 jest wyposażony np. w motor Jet 3.0, który obsługuje rozszerzone kursory, pozwalając użytkownikowi kontrolować liczbę wierszy odczytywanych z bazy danych. Jest to szczególnie przydatna opcja w przypadku korzystania z zasobów dużych baz danych.

Wielu użytkowników sięgnie jednak zapewne po inne narzędzia programowania zapytań SQL, a to głównie dlatego, że Visual Basic koncentruje się bardziej na kwestiach związanych z budowaniem interfesjsu użytkownika, a nie na dostępie do baz danych.

Interbase oferuje natomiast repozytorium, co zachęci wielu użytkownikow do szybszego przechodzenie z pakietu Delphi 1.0 na Delphi 2.0. W aplikacjach klient/serwer, korzystających z usług bazy danych, repozytorium jest warstwą umieszczoną między serwerem a klientem. Repozytorium zawiera te informacje, które nie mogą rezydować na serwerze: reguły działalności biznesowej czy właściwości współdzielonych kolumn. Bez repozytorium wszystkie te elementy trzeba by tworzyć od początku po stronie klienta i byłaby to rezlizacja dużo uboższa. Repozytorium zaoszczędza czas i obniża koszty związane z utrzymaniem bazy danych.

Jednak pakiet Delphi powinien być jeszcze bardziej dopracowany, jeśli ma być narzędziem przystosowanym do pracy w środowisku baz danych. Obecnie programiści muszą korzystać z ODBC do komunikowania się z bazami danych. Ponadto, dobrze by było, gdyby Delphi wspierał inne platformy, np. Lotus Notes.

Biorąc to wszystko pod uwagę, VB uzyskał w tej kategorii oceny notę - dobry, a Delphi - bardzo dobry.

Język - klient/serwer

Visual Basic sprawuje się doskonale, jeśli chodzi o funkcjonalność pracy w środowisku klient/serwer, szczególnie w zakresie OLE. Wersja 4.0 tego pakietu pozwala na tworzenie serwerów OLE automation, które mogą świadczyć usługi innym aplikacjom.

Co więcej, serwery te można uruchamiać w dwojaki sposób: w ramach procesu (in-process) lub poza procesem (out-of-process). Serwery typu "in-process" są bibliotekami DLL uruchamianymi w ramach tego samego procesu, w ramach którego z ich usług korzysta klient. Serwery typu "out-of-process" są natomiast plikami wykonywalnymi, do których dostęp może mieć dowolny program, pracujący zgodnie ze standardem OLE automation. Wersja Enterprise Edition pakietu VB pozwala na coś więcej. Użytkownik może tu określać biblioteki DLL, pracujące w trybie "out-of-process", jako zasoby sieciowe. Oznacza to, że użytkownik może korzystać z usług serwera OLE automation nie zdając sobie nawet z tego sprawy.

Takie rozwiązanie spełnia doniosłą rolę w środowisku pracy klient/serwer, ale jest poniekąd sprzeczne z założeniem, że Visual Basic jest narzędziem łatwym do opanowania. Trzeba być naprawdę profesjonalnym programistą, aby zgłębić wszystkie tajniki związane z komunikowaniem się aplikacji, rezydującej na komputerze PC z serwerem pracującym na zapleczu systemu informatycznego (i z uruchomionym na nim oprogramowaniu). Jest to jeszcze trudniejsze zadanie w prz}padku pracy z platformami innymi niż Windows. Nie chodzi tu może konkretnie o sam pakiet VB, ale generalnie o to, że użytkownik musi w takich przypadkach uczyć się wielu nowych rzeczy.

Delphi też wspiera standard OLE 2. Używając narzędzia Explorer, użytkownik może tworzyć elementy kontrolne OCX i serwery OLE automation. Duża szybkość pracy pakietu Delphi może być bardzo znaczącym i pozytywnym czynnikiem w przypadku korzystania z usług serwerów OLE.

Podsumowując, pakiet Visual Basic 4.0 uzyskał w kategorii oceny klient/serwer notę - doskonały, a Delphi 4.0 - bardzo dobry.

Środowisko - zespołowe budowanie aplikacji

Oba produkty ułatwiają zespołowe tworzenie aplikacji z użyciem pakietów kontroli wersji kodu. W skład VB wchodzi pakiet SourceSafe, który został przez Microsoft odkupiony trzy lata temu od firmy One Tree. Podobną rolę w pakiecie Delphi pełni program PVCS 5.1 (Intersolve Inc.), który jednak trzeba zakupić oddzielnie.

Korzystając z usług programu SourceSafe, menedżer projektu lub bibliotekarz rejestruje pliki w systemie. Programista dysponujący odpowiednim uprawnieniem może taki plik wypisać, poddać modyfikacji i ponownie wpisać do rejestru plików. Taki tryb pracy pozwala być pewnym, że kilku użytkowników nie będzie jednocześnie dokonywać zmian w jednym pliku. SourceSafe nie jest wyrafinowanym produktem, ale podnosi znacznie walory pakietu Visual Basic.

Oprócz współpracy z PVCS, Delphi oferuje rozwiązanie pozwalające blokować dostęp do określonej części aplikacji. Zapobiega to wprowadzaniu zmian do tej części kodu przez nieupoważnione do tego osoby. Szkoda tylko, że opcji tej nie rozbudowano, tak aby można było dokładniej definiować, co można blokować. Jest to jednak pożyteczne rozwiązanie.

PVCS jest bardzo popularnym produktem. Wspierając go, pakiet Delphi zyska na pewno większe uznanie w oczach użytkowników. Jednak fakt, że PVCS nie został włączony na stałe do tego narzędzia spowodował, że Delphi uzyskał w tej kategorii oceny notę - dobry. Visual Basic został oceniony jako bardzo dobry.

Środowisko - debugger (program uruchomieniowy)

Programiści poświęcają wiele czasu na uruchamianie aplikacji. Nawet jeśli pozostałe elementy środowiska pracy RAD pracują doskonale, to nikt nie będzie używał narzędzia wyposażonego w źle zaprojektowany program uruchomieniowy.

Borland jest tradycyjnie znany z dobrze pracujących narzędzi i kompilatorów. Nie ma się więc czemu dziwić, że debugger - oferowany przez pakiet Delphi 2.0 - jest też silnym punktem tego produktu. Program uruchomieniowy Delphi zawiera wszystkie niezbędne opcje: śledzenie zmiennych, krokowe uruchamianie aplikacji oraz możliwość tworzenia kontrolnych punktów przerwań (warunkowych, bezwzględnych i licznikowych).

Inna, niezwykle pożyteczna opcja polega na możliwości wywołania stosu w celu przejrzenia historii pracy programu i dokonania obliczeń wartości wyrażeń.

VB pozwala zatrzymać aplikację i wprowadzać do niej poprawki w locie. Przy częstym wprowadzaniu poprawek do programu opcja ta przyspiesza pracę, ale nie jest to chyba najlepsze rozwiązanie.

Jeśli więc idzie o programy uruchomieniowe, to VB uzyskał notę - dobry, a Delphi - doskonały.

Środowisko - szybkość

Dla niektórych programistów szybkość, tak jak w zawodach sportowych zwycięstwo, liczy się najbardziej. Jest to dla nich najważniesza cecha narzędzia. Tym użytkownikom można polecić Delphi, szczególnie wtedy, jeśli tworzone przez nich aplikacje bardzo obciążają procesor.

Wolniejsza praca pakietu Visual Basic nie jest znowu tak wielką wadą tego produktu. Microsoft szukał rozwiązań kompromisowych i wiedząc o tym, że VB używa interpretatora poleceń zdecydował, że łatwość obsługi jest ważniejszą cechą narzędzia niż szybkość.

Szybkości pracy narzędzi nie sprawdzano przy użyciu testów porównawczych, ponieważ testowaliśmy Delphi 2.0 w wersji beta. Jednak widać było wyraźnie, że Delphi pracuje szybciej niż VB.

Mniejsze jednak aplikacje pracują w obu tych środowiskach ze zbliżoną szybkością i nie widać tu specjalnie różnicy między Delphi a VB. Szybkość pracy VB spada wyraźnie dopiero po uruchomieniu aplikacji angażującej w większym stopniu procesor. Szybkość pracy tego narzędzia nie spadała jednak nigdy do nie akceptowanego poziomu.

Biorąc to wszystko pod uwagę, VB uzyskał ocenę - dobry, a Delphi - doskonały.

Dokumentacja

Dokumentacja oferowana przez Microsoft zawiera istotne informacje o pracy pakietu Visual Basic. Użytkownik dostaje podręczny przewodnik po produkcie i wyczerpujący słownik na temat języka, plus trzy dodatkowe książki adresowane do doświadczonych programistów: Programmers' Guide, Professional Feature Guide i książka opisująca środowisko pracy klient/serwer.

Wszystkie książki są dobrze zredagowane i zawierają wiele cennych informacji na temat podstaw pracy pakietu, których na próżno by szukać w opisach innych produktów tego rodzaju.

Dokumentacja on-line pakietu VB też nie budzi zastrzeżeń. Użytkownik może łatwo wyszukać poradę na interesujący go temat. Nie jest to system pomocy zorientowany na wyjaśnianie problemów związanych z konkretnym zadaniem, ale zawiera odsyłacze kierujące użytkownika do właściwych miejsc.

Wersja beta pakietu Delphi nie zawiera żadnych materiałów drukowanych. Będą one dołączone dopiero do handlowej wersji tego produktu. Borland zapewnia, że do istniejącej już dokumentacji dołączonych bedzie wiele dodatkowych materiałów, które dokładnie opiszą rozwiązania oferowane przez nową wersję pakietu. Cała dokumentacja ma liczyć 3500 stron.

Pomoc on-line pakietu Delphi pracuje dobrze. System porad i wskazówek jest opracowany starannie. Zaletą systemu jest to, że opisuje on dokładnie zestaw funkcji API dla Windows. Szkoda tylko, że niektóre tematy nie są opisane dokładniej i system pomocy on-line nie zawiera większej liczby odsyłaczy kierujących użytkownika do miejsc opisujących konkretne problemy. Pomoc on-line tego narzędzia należy jednak ocenić wysoko.

VB uzyskał w tej kategorii oceny notę - doskonały, a Delphi - dobry (zaważył tu brak drukowanej dokumentacji).

Podsumowanie

Oba narzędzia pracują dobrze, ale żadne nie jest produktem uniwersalnym. Użytkownik musi sam podjąć decyzję, która cecha narzędzia jest dla niego ważniejsza - łatwość obsługi, funkcjonalność, wsparcie dla baz danych czy też szybkość - i wtedy wybrać odpowiadający mu najlepiej produkt. Każde z zaprezentowanych tu środowisk pozwala programiście budować aplikacje w łatwy i przyjemny sposób.


TOP 200