Przetasowanie w narzędziach

Aplikacje na podsłuchu

Kolejne przydatne narzędzie Borlanda to OptimizeIT służący do optymalizowania działania aplikacji Java i .Net. Pakiet OptimizeIT jest dobrze zintegrowany z pakietem Together, dzięki czemu błędy można kojarzyć z elementami diagramu i stwierdzić, czy np. słaba wydajność wynika z niskiej jakości kodu Java czy może z nieoptymalnego projektu funkcji.

Optimize 5 Suite dla Javy, oprócz standardowego profilera do badania wydajności, zawiera narzędzie do analizy kodu pod kątem występowania zakleszczeń wątków. Są w nim narzędzia do tzw. analizy pokrycia kodu, czyli sprawdzające, które metody/klasy aplikacji nie są w ogóle wywoływane. Jedną z ciekawszych funkcji jest narzędzie do automatycznego wykrywania "wycieków pamięci", a więc sytuacji, w których program rezerwuje dużo pamięci, wykonuje operację, po czym nie zwalnia referencji do zarezerwowanych adresów. W momencie wykrycia "wycieku" OptimizeIT wskazuje fragment kodu, który dokonywał rezerwacji, oraz zakres adresów pamięci, których ten "wyciek" dotyczy.

W ramach pakietu OptimizeIT istnieje moduł do monitorowania wydajności kodu uruchamianego na serwerze - OptimizeIT ServerTrace. Program ten pozwala na niskopoziomową analizę kodu Java w sposób podobny jak OptimizeIT czyni to dla aplikacji typu desktop. ServerTrace może też wykrywać kod napisany nieoptymalnie. Przykładowo, narzędzie Application Query Analyzer wskazuje fragmenty kodu, w których programista zapomniał o zamknięciu połączenia z bazą danych lub stworzył zbyt duży obiekt sesji.

Oprócz tego OptimizeIT pozwala na określenie czasu potrzebnego na wykonanie operacji składających się na jeden proces czy transakcję, np. ile czasu zajmuje nawiązanie połączenia z serwerem, ile przetwarzanie logiki w ramach komponentu J2EE, a ile przeszukiwanie bazy danych. Jest o tyle wygodne, że testowanie nadmiernie nie spowalnia działania serwera.

OptimizeIT dla .Net jest, przynajmniej na razie, znacznie uboższy funkcjonalnie niż wersja dla Javy. W zasadzie ogranicza się do prostej analizy wykorzystania pamięci i mocy procesora. Może też rejestrować podstawowe parametry CLR i np. aktywność automatycznego mechanizmu czyszczenia pamięci. Pakiet do optymalizowania kodu .Net został częściowo stworzony przy użyciu Javy.

Idzie nowe IDE?

Narzędzia produkowane przez firmy niedawno przejęte przez Borlanda są produktami średnimi w swojej klasie - do chlubnych wyjątków należy jedynie pakiet do modelowania Together. Jeżeli jednak Borlandowi uda się je zintegrować ze swoimi narzędziami RAD, powstanie oferta, której trudno będzie się oprzeć. Byłby to zastrzyk, którego firma bardzo potrzebuje, zwłaszcza że od kilku lat kluczowe elementy pakietów RAD Borlanda pozostają bez zmian.

Zwiastunem przyszłych zmian w narzędziach RAD Borlanda może być CodeWright - edytor tekstowy, a w zasadzie pełne środowisko programistyczne zbudowane wokół edytora tekstowego, przejęte wraz z firmą StarBase. CodeWright może integrować się z IDE Borlanda oraz z VisualStudio.Net Microsoftu. Obsługuje języki C, C++, C# i Java. Oprócz standardowej edycji i wywoływania zewnętrznych narzędzi, np. do kompilacji czy śledzenia działania programu może on m.in. tworzyć drzewo wywołań funkcji i wskazywać referencje do określonych pól, np. metod czy zmiennych składowych. Godne podkreślenia jest to, że drzewo odwołań jest tworzone nie na podstawie informacji zebranych podczas kompilacji, lecz analizy samego kodu źródłowego i to praktycznie na bieżąco, w trakcie pisania.

W porównaniu z tym, co oferują "klasyczne" środowiska IDE, w edytorze CodeWright rozbudowano mechanizmy podpowiadania składni, wyszukiwania fragmentów tekstu czy przejrzystego formatowania kodu. Wszystkie te operacje mogą być dostosowane do wymagań użytkownika - opcji jest naprawdę wiele. W środowisko jest także wbudowany moduł porównywania plików, dzięki czemu bieżącą wersję kodu można łatwo porównać z poprzednią. CodeWright zawiera także własne narzędzie do tworzenia i testowania wyrażeń regularnych oraz program IM.

Zmiana priorytetów

Z dotychczasowych posunięć Borlanda i wypowiedzi jego przedstawicieli wynika, że priorytetem dla firmy są trzy technologie: Java, .Net oraz C++. Kolejność nie jest przypadkowa. Obecnie tylko pakiet Borland Enterprise Studio for Java 5 umożliwia łatwą integrację z Together, CaliberRM i OptimizeIT for Java.

Prace nad narzędziami dla .Net rozpoczęły się niedawno. Borland zakupił od Microsoftu pakiet SDK dla .Net. Można się jednak spodziewać, że będzie je intensywnie rozwijać i zintegruje z narzędziami przejętymi od TogetherSoft i StarTeam. Z kolei C++ Builder Studio nie współpracuje ani z Together, ani żadnym z pozostałych nowych narzędzi. Do kontroli wersji aplikacji C++ jest proponowany leciwy już pakiet TeamSource, z którego Borland będzie prawdopodobnie rezygnował na rzecz StarBase.

Przedstawiciele Borlanda twierdzą, iż trwają już prace nad nową wersją pakietu Studio dla C++ i zupełnie nowym produktem przeznaczonym dla .Net. Nie są znane losy kolejnych wersji Delphi Studio. Środowisko Delphi jest pewnego rodzaju zamkniętym pakietem rozwiązań, które realizują wszystkie niezbędne funkcje (może z wyjątkiem optymalizacji i profilera), do których programiści Delphi już się przyzwyczaili. Być może Borland doszedł do wniosku, że wprowadzanie większych zmian nie ma sensu. Niepokojące dla programistów Delphi powinno być jednak to, że Delphi nie jest wymieniane wśród narzędzi, które będą integrowane z którymkolwiek z nowo nabytych narzędzi.

Prawdopodobnie Borland w ten sposób sygnalizuje, że jeśli ktoś lubi programować za pomocą Delphi, może to robić dalej; jeśli jednak komuś zależy na przenośności aplikacji między Windows a Linuxem, niech korzysta z Kylixa. Ci, którzy chcą tworzyć duże, skomplikowane aplikacje, muszą zdecydować się na Javę, .Net lub ewentualnie C++.


TOP 200