2008.02_Przegląd narzędzi do programowania_[Video].pdf

(1564 KB) Pobierz
439134423 UNPDF
Rozwiązania
Przegląd narzędzi do programowania
do programowania
Przemysław Żarnecki
Czy ktoś, kto nie jest programistą nawet z zamiłowania może napisać tekst o programowaniu?
Zastanawiam się tylko, czy przegląd oprogramowania, które wesprze programistów niezależnie od ich
poziomu zaawansowania, jest artykułem o programowaniu?
Być może to za dużo pytań, w końcu artykuł pisze się po to, aby odpowiedzieć na pewne zagadnienia
coś wyjaśnić, a nie siać kolejne wątpliwości. W końcu nie kupujecie gazety z codziennymi
wątpliwościami.
kowo zawrzeć się w dwóch artykułach. Jeden
miał dotyczyć programowania w KDE, w za-
myśle 4, drugi aplikacji QT Designer. W trak-
cie przygotowywania materiałów zmieniłem jednak nie-
co koncepcję. Po pierwsze z racji cyklu wydawniczego nie
pracowałbym na stabilnej wersji KDE 4. Uznałem, że nie
byłoby to w pełni uczciwe. Po pierwsze teoretycznie pew-
ne rzeczy mogą się jeszcze zmienić, zaś ewentualne błędy
mogłyby wpłynąć na wydźwięk artykułu. Postanowiłem
jednak pozostać przy programowaniu, nie zawężać jednak
tego do jednego programu. W istocie rzeczy osobny arty-
kuł dla popularnego Projektanta stał się zbędny.
Tekst zacząłem od stwierdzenia, że w zasadzie nie je-
stem programistą. Zupełnie zielony w tej materii jednak
nie jestem. Parę kursów skończyłem, parę programów
stworzyłem. Jak wielu zapaleńców przeszedłem przez
Pascala, później przez C, czy C++. Jestem na tyle dino-
zaurem, że i logo pamiętam. Pomimo, że nie jestem pro-
gramistą, od czasu do czasu siadam przed komputerem i
dochodzę do wniosku, że jednak jest coś, czego mi braku-
je. Może sam to wykonałbym? W takich momentach mam
nadzieję pracować z aplikacją, która maksymalnie zre-
kompensuje mi pewne braki, a być może zachęci do jak
najszybszego uzupełnienia. Zamierzam przedstawić Wam
przede wszystkim programy - garść informacji na temat
ich interfejsu, z całą pewnością nie odniosę się do rad
związanych bezpośrednio z programowaniem.
Tekst dedykuję więc osobom, które są nie tyle niezde-
cydowane, co stawiają pierwsze kroki w świecie oprogra-
mowania. Chciałbym, aby te kroki były jak najmniej bo-
lesne.
Aplikacje, które mam przyjemność zaprezentować,
przetestowane zostały na dystrybucji Fedora 8, która znaj-
dowała się pod kontrolą środowiska KDE. W każdym
przypadku wspomnę również o tym, jak zainstalować je
również w innych dystrybucjach.
QT Designer
Rozpoczynam od programu, który trudno jest nazwać kom-
pletnym środowiskiem programistycznym. Nie takie zresz-
tą cele przyświecały jego twórcą. Jednakże wbrew wielu opi-
niom przy odrobinie cierpliwości można rozszerzyć jego
funkcjonalność. Jest to jednakże już wyższa szkoła jazdy .
34
luty 2008
Przegląd narzędzi
T reści, które znajdziecie poniżej miały począt-
439134423.015.png 439134423.016.png 439134423.017.png
 
Rozwiązania
Przegląd narzędzi do programowania
Co to jest QT?
Nie można napisać o Projektancie, nie wy-
jaśniając czym jest QT. Po pierwsze nie jest
to żaden język programowania. Jest to zbiór
przenośnych bibliotek, które powstały z my-
ślą o języku programowania C++. Składa-
ją się przede wszystkim z klas, których za-
daniem jest budowa graicznego interfejsu
użytkownika. Przynajmniej takie były zało-
żenia początkowe, które sprawdzały się aż do
trzeciej wersji bibliotek. W najnowszej, czy-
li czwartej wersji, do QT wprowadzono rów-
nież możliwość tworzenia programów kon-
solowych a nawet serwerów. Jest tylko jed-
no ale. QT 4 jest całkowicie niekompatybilne
z poprzednimi wersjami. Posiadając kompu-
ter z np. KDE 4 musimy wiedzieć, że starsze
programy się na nim nie uruchomią, chyba że
równocześnie zainstalujemy QT 3, Z tym, że
trójka jako taka nie posiada już wsparcia ze
strony twórców.
QT nie jest ograniczone tylko i wyłącz-
nie do Linuksa. Biblioteki te są wykorzysty-
wane w zasadzie we wszystkich popularnych
systemach operacyjnych, nawet w Window-
sie. Zresztą biblioteki to nie tylko graicz-
ny interfejs użytkownika. Zawierają wie-
le nowoczesnych modułów obsługi proce-
sów, plików, a nawet graiki trójwymiaro-
wej. Te szczegóły decydują również o wie-
losystemowości bibliotek. Obsługa OpenGL
jest przydatna przecież zarówno w Linuksie,
jak i Windowsie.
Wiele popularnych aplikacji powstało z wyko-
rzystaniem QT. W Linuksie najlepszym przy-
Rysunek 2. QT Designer – szybkie tworzenie okna dialogowego
kładem jest środowisko KDE. Poza tym użyt-
kownicy innych systemów doskonale znają ta-
kie programy jak Google Earth, Opera czy Sky-
pe. Niektórzy użytkownicy telefonów komór-
kowych spotkali się z tworem o nazwie Qtopia.
Przykładów jest naprawdę wiele.
liwości to spore uproszczenie, jednakże dzię-
ki niemu możemy skupić się na tym, co jest
w nim najlepsze.
Nie wiem jak wy, ale ja generalnie nie
wyobrażam sobie w dzisiejszych czasach
żadnego, nawet najprostszego programu, bez
graicznego interfejsu. Wiem, pewnie jestem
leniwym członkiem pokolenia, które zosta-
ło skrzywione przez pewne słynne i arcyzłe
okna . Prawda jest taka, że wychodzę z zało-
żenia, że komputer jest dla użytkownika, a
nie na odwrót.
Nazwę programu często się spolszcza,
nie tylko w rozmowach, ale również w wie-
lu popularnych dystrybucjach. Ponieważ jest
to w pełni wolne oprogramowanie, w więk-
szości dystrybucji zostało włączone bezpo-
średnio w instalator lub przynajmniej do oi-
cjalnych repozytoriów. Nie powinniście mieć
więc problemu z jego instalacją. W ostatecz-
ności można skorzystać ze strony producen-
ta, którą tradycyjnie już podaję w ramce na
końcu artykułu. Strona producenta może się
nam również przydać, jeżeli w dystrybucji
zawarta będzie starsza wersja programu, zaś
nowa będzie warta zachodu.
Jeżeli wejdziecie na stronę, zauważycie
również, że program jest dostępny dla Win-
dowsa, Linuksa i Mac OS X. Kolejny dowód
na wielosystemowość Wolnego Oprogramo-
wania. Równocześnie dostępna jest również
komercyjna aplikacja, ale o niej nie będzie-
my rozmawiać. Program znajduje się w za-
sadzie w każdej dystrybucji, wszędzie tam,
gdzie jest KDE. Nawet dystrybucje używa-
Projektant
Jak sama nazwa wskazuje program służy
przede wszystkim do projektowania interfej-
su graicznego. Biorąc pod uwagę jego moż-
Rysunek 1. QT Designer – graiczne wspomożenie programisty
www.lpmagazine.org
35
439134423.001.png 439134423.002.png 439134423.003.png 439134423.004.png
 
Rozwiązania
Przegląd narzędzi do programowania
jące domyślnie innych środowisk mają je za-
zwyczaj w swoich repozytoriach. W razie cze-
go można ściągnąć go z sieci. Odpowied-
ni link podam tradycyjnie w tabelce na sa-
mym końcu.
W zasadzie Projektant to nie jeden, lecz
trzy programy, które tworzą niezwykle przy-
datny zestaw. Najważniejszy jest oczywiście
sam Projektant. Możemy jednak ponadto sko-
rzystać z dwóch dodatków – QT Assistant i QT
Linguist . Pozwolę sobie je pokrótce omówić.
Asystent to nic innego jak system pomo-
cy dla programistów. Nie różni się on spe-
cjalnie od tradycyjnych systemów pomocy.
Dla odmiany został mianowany osobną apli-
kacją. Jest to okno, w którym w kilku kate-
goriach znajdziemy opisy wszystkich używa-
nych w Projektancie klas, zdarzeń, procesów
itp. W zasadzie przy każdej pozycji znajdu-
je się szczegółowy opis, wraz ze wszystkimi
parametrami, jak również licznymi przykła-
dami. Moim zdaniem jest to bardzo przydat-
ne narzędzie.
Linguist to program, który wspomaga
nas w tłumaczeniu dowolnej aplikacji stwo-
rzonej w QT na inne języki. Mówię oczy-
wiście o tłumaczeniu interfejsu. Wiele zna-
nych aplikacji jest tłumaczonych z wyko-
rzystaniem tego programu, np. PSI. Tworzy
on pliki tłumaczeń osobne dla każdego języ-
ka. Bardzo często zdarza się, że ściągamy do
jakiejś aplikacji tzw. paczkę językową. Za-
zwyczaj do jej tworzenia wykorzystywany
jest właśnie QT Linguist .
Rysunek 4. KDevelop – widok obszaru roboczego
O ile nie zdecydujemy inaczej, przy każ-
dym uruchomieniu programu pokazuje się
okno dialogowe, które pełni funkcje asystenta.
Za jego pomocą możemy wybrać nowy pro-
jekt, znaleźć istniejący na dysku, bądź wybrać
jeden z ostatnio otwartych.
Kilka ciekawych i ważnych opcji znajdu-
je się przy wyborze nowego projektu. W zasa-
dzie możemy utworzyć aż 11 typów projek-
tów. Nie będę może wszystkich wymieniał.
Pierwszym jest projekt C++, w ramach które-
go możemy włączać następne elementy, czyli
różnego rodzaju okna dialogowe, pliki źródło-
we C++ i wiele innych. Zamiast tak rozbudo-
wanego projektu możemy po prostu stworzyć
pojedyncze elementy. Wybór któregoś z nich
oznacza skorzystanie z kreatora, dzięki któ-
remu dosłownie w kilku krokach stworzymy
interfejs użytkownika. Później czeka nas tyl-
ko jego ewentualna edycja oraz włączenie do
określonego programu. Niemniej samo zapro-
jektowanie interfejsu jest wręcz banalne.
Na przykład tworząc główne okno progra-
mu deiniujemy menu z opcjami znajdującymi
się na górze, czyli klasyczne spray okienko-
we. Deiniujemy kategorie opcji, później zaś
ich zawartość. W znajdujących się na ekra-
nie paskach narzędzi możemy zdeiniować
wszystko, począwszy od nazwy poszczegól-
nych opcji, po konkretne zdarzenia, czy pro-
cesy. Jeżeli którejś z komend nie rozumiemy,
korzystamy z Asystenta – po to przecież jest.
Poza tym wiele rzeczy możemy przetestować
samodzielnie.
Osobom, które chciałyby się bliżej za-
poznać z możliwościami programu polecam
liczne kursy on-line. Podam jedną z ciekaw-
szych propozycji: http://free.of.pl/q/qtmoux .
Projektant został stworzony przede wszyst-
ką z myślą o pomocy użytkownikowi w two-
rzeniu interfejsu graicznego i to zadanie speł-
nia wręcz wzorowo. Jeżeli posiadamy odpo-
wiednie umiejętności, możemy również wy-
korzystać go jako środowisko programistycz-
ne. Niemniej są od niego o wiele lepsze narzę-
dzia w tej dziedzinie, chociażby następne, w
którym on sam został wykorzystany.
Rysunek 3. KDevelop – korzystanie z szablonów
36
luty 2008
439134423.005.png 439134423.006.png
 
Rozwiązania
Przegląd narzędzi do programowania
KDevelop
W porównaniu z poprzednim programem
KDevelop to niezwykle potężne narzędzie.
Wielu użytkowników uważa je za najlepsze
środowisko programistyczne w Linuksie. Z
pewnością jest niezwykle popularne i to jest
na pewno fakt.
Pomimo, że środowisko przeznaczone jest
przede wszystkim dla środowiska KDE, jest na
tyle uniwersalne, że nawet programowanie dla
potrzeby Gnome jest czymś w miarę oczywi-
stym. Możliwości tego narzędzie są zresztą o
wiele większe. Aktualnie obsługuje C i C++,
jak również Ada, Bash, Fortran, Java, Pascal,
Perl, Python, Ruby i SQL. Być może zanim
tekst ukaże się drukiem, lista ta powiększy się.
O sile KDevelop decyduje m.in. to, że
posiada budowę modularną, tzn. funkcjonu-
je w oparciu o liczne wtyczki. W zasadzie nie
posiada nawet wbudowanego edytora teksto-
wego, lecz korzysta z systemowego. Dzięki
wtyczkom wzbogacanie możliwości progra-
mu nie wymaga ściągania innych wersji, czy
kompilowania go. Zapewnia również uniwer-
salność, przede wszystkim wspomnianą ob-
sługę licznych języków programowania.
Podobnie jak poprzednik składa się
również z kilku aplikacji. Można go rów-
nież uruchamiać na inne sposoby, w zależ-
ności od naszych zamierzeń. KDevelop jest
również dostępny w większości dystrybucji
Rysunek 6. Anjuta – edytor tekstowy
Linuksa. Jest dostępny wszędzie tam, gdzie
jest KDE. W razie czego zapraszam na stro-
nę programu.
KDevelop również posiada swojego asy-
stenta, który pełni funkcję systemu pomo-
cy. W dużej części przypadków spełnia rów-
nież rolę przeglądarki dokumentacji. W zasa-
dzie jest chyba nawet częściej wykorzystywa-
ny w ten sposób.
W środowisku można również zaprojekto-
wać interfejs, za pomocą Projektanta KDeve-
lop. Mógłbym o nim więcej napisać, ale w za-
sadzie jest to włączony do środowiska kod QT
Designer. Aplikacja wygląda i zachowuje się
dokładnie tak samo jak osobny program. Je-
żeli więc chcemy używać KDevelop, możemy
zupełnie darować sobie instalowanie QT Desi-
gner. Zdarzyło mi się raz, że kiedy oba mia-
łem zainstalowane, to osobny program był nie-
spolszczony, zaś komponent większego środo-
wiska był całkowicie w j. polskim, włącznie z
systemem pomocy. O interfejsie Projektan-
ta możecie przeczytać we wcześniejszej czę-
ści tekstu.
Uruchomienie programu wiąże się z jedną
z pięciu możliwości:
• KDevelop: C/C++ - IDE dla C/C++;
• KDevelop: KDE/C++ - IDE do tworzenia
programów dla KDE;
• KDevelop: Ruby - IDE dla języka Ruby;
• KDevelop: Skrypty - IDE dla języków
skryptowych;
• KDevelop: wielojęzyczność – IDE.
Rysunek 5. Anjuta – kreator projektu
Niezależnie od wybranej możliwości, uru-
chamia się dokładnie ten sam program. Przy-
najmniej na pierwszy rzut oka. Pierwsze róż-
nice widać na przykład dopiero po skorzy-
staniu z opcji Nowy Projekt . Po skorzystaniu
z niej pojawi się okno dialogowe, w którym
znajdują się szablony projektów. W domyśl-
nych ustawieniach aktywne są tylko szablony,
które pasują do wybranej przez nas możliwo-
ści. W każdej chwili można jednak kliknąć na
opcję Pokaż wszystkie szablony dokumentów.
www.lpmagazine.org
37
439134423.007.png 439134423.008.png 439134423.009.png 439134423.010.png 439134423.011.png
 
Rozwiązania
Przegląd narzędzi do programowania
Możliwość uruchomienia różnych konigura-
cji programu wiąże się więc przede wszyst-
kim z optymalizacją pod kątem określonych
zastosowań. Jest to przydatne zwłaszcza dla
początkujących i średniozaawansowanych. Z
kolei zaawansowani mogą po prostu otwo-
rzyć program i wpisać kod programistyczny
do otwartego edytora.
Wrócę jeszcze na chwilkę do samych sza-
blonów. Program oferuje bardzo dużą licz-
bę szablonów, które zostały pogrupowane ze
względu na język programowania oraz ich za-
stosowanie. Zauważalna jest przewaga pro-
jektów skierowanych do KDE. W szablonach
znajdziemy przykłady najprostszych progra-
mów (chociażby klasyczny w nauce wielu języ-
ków Hello world ), jak również wielu zaawan-
sowanych zastosowań. Zarówno dla początku-
jących jak i średniozaawansowanych użytkow-
ników ciekawe powinny być sprawy związane
z tworzeniem dodatków do wielu znanych pro-
gramów, jak również do samego KDE. Nic nie
stoi na przeszkodzie, aby przy naprawdę pod-
stawowej znajomości programowania stworzyć
np. aplet KDE, który w odróżnieniu od orygi-
nalnych spełni w pełni nasze oczekiwania. Je-
żeli dobrze rozejrzycie się w sieci, to zwrócicie
uwagę, że takich gadżetów są wprawdzie tysią-
ce, jednakże niewiele zyskuje uznanie społecz-
ności. Kto wie, może masz szansę zaistnieć w
szerokim świecie.
Interfejs programu jest niezwykle rozbudo-
wany. Jego podstawowym elementem jest okno
edytora, w którym wpisujemy nasz kod. Na gó-
rze znajduje się menu z licznymi narzędziami,
które wspomagają proces programowania, po-
cząwszy od technicznych uproszczeń przy wpi-
sywaniu poszczególnych linijek, po kompilację
programu. Tuż poniżej znajduje się pasek na-
rzędzi, gdzie znajdują się skróty do najważniej-
szych opcji oraz elementy nawigacji kodu.
Po bokach edytora znajdują się liczne
opcje, które otwierają dodatkowe okna na-
wigacyjne. Niektóre z nich zawierają w sobie
dokumentację programu, inne odpowiadają za
nawigację pomiędzy poszczególnymi składo-
wymi kodu. Sam rzut oka na taki element po-
zwala często odpowiedzieć na pytanie, czy
zbudowaliśmy poprawnie kod. Przynajmniej
w sensie czysto technicznym. Brzmi banalnie,
ale każdy, kto uczył się, albo już programu-
je, wie, jak ważne jest uporządkowane wpro-
wadzanie kodu. W przypadku, kiedy wpisali-
śmy dużą ilość linii, a zapomnieliśmy np. o
jednym przecinku, wówczas musimy go zlo-
kalizować. Po pierwsze pomaga nam w tym
sam edytor, który poszczególne części zazna-
cza odpowiednimi kolorami, po drugie wła-
śnie nawigując kodem możemy zauważyć, że
coś jest nie tak.
Na samym dole znajdują się opcje zwią-
zane z komunikatami. Każda z nich ma moż-
liwość otworzenia okna na samym dole. Nie-
które z nich otwierają się automatycznie np.
w procesie kompilacji programu. Inne oferują
np. możliwość skorzystania z konsoli z pozio-
mu programu.
Jak zapewne zauważyliście, korzystanie z
programu jest stosunkowo intuicyjne, w czym
pomaga również doskonałe spolszczenie je-
go interfejsu.
Kdevelop wydaje się naprawdę dopra-
cowany pod każdym względem. Dzięki włą-
czeniu pod swoje skrzydła również projektan-
ta, program oferuje użytkownikowi naprawdę
zaawansowane możliwości. Stąd zapewne je-
go duża popularność, również poza środowi-
skiem KDE.
Anjuta
Anjuta to przykład kolejnego środowiska gra-
icznego. Pierwsze, co wyróżnia je od po-
przednich to to, że jest ono adresowane przede
wszystkim dla programistów GNOME. Środo-
wisko powstało przede wszystkim z myślą o
obsłudze C oraz C++. Nie najgorzej radzie so-
bie również z takimi językami jak Java, Java-
Script, Perl, PHP. Python i HTML.
Na pierwszy rzut oka wydaje się aplikacją
surowszą od wcześniej omówionych, przede
wszystkim za sprawą interfejsu. Jest to w zasa-
dzie tradycyjna różnica pomiędzy programami
dla GNOME o KDE. Te pierwsze nie są wizu-
alnie tak efektowne, ale często przez to o wie-
le prostsze w obsłudze. Niewątpliwym plusem
programu jest to, że w porównaniu ze swoimi
konkurentami zużywa naprawdę niewiele zaso-
bów systemowych. Dzięki temu aplikacja może
być uruchomiona na o wiele słabszym sprzęcie,
nie wspominając o zajmowaniu niewielkiej ilo-
ści miejsca na dysku twardym (ważne również
np. w trakcie instalacji z internetowych repozy-
toriów czy aktualizacji).
Już na początku korzystania z programu
powinniśmy zwrócić uwagę na interesujące-
go asystenta. Z kreatora korzystamy wybiera-
jąc opcję Nowy projekt ( New Project ). Po przej-
ściu ekranu powitalnego zwracamy uwagę na
język, z którego chcemy skorzystać. Obsługi-
wane przez naszą wersję aplikacji języki znaj-
dują się w osobnych zakładkach. W każdej za-
kładce są z kolei typy aplikacji/projektów, któ-
re za pomocą danego języka można stworzyć.
Skorzystanie z każdego typu projektu wiąże się
z przejściem kilku kroków kreatora. Zazwyczaj
ustalamy licencję programu, decydujemy się
na skorzystanie z dodatkowych, zewnętrznych
źródeł kodu. Na tym kończymy kreatora.
W tym miejscu ujawnia się zaleta/wada
programu. Trudno określić, do jakiej katego-
rii należy cecha, którą omówię, być może za-
leży to od oceny samego użytkownika. Począt-
kujący mogą być nieco zawiedzeni kreatorem,
bowiem tak naprawdę tworzy on jedynie pewną
strukturę projektu, niezbędne pliki, sieć powią-
zań itd. Nie tworzy natomiast, ani nie korzy-
sta z szablonów. Stąd w efekcie jego działania
stworzymy tylko niezbędne „podłoże” do napi-
sania projektu. Czasem będzie to nieco większa
ilość kodu, z reguły związana raczej z ogólny-
mi uwarunkowaniami danego projektu niż kon-
krretnym programem. Niemniej jest to ciekawe
narzędzie, które może ułatwić życie również, a
Rysunek 7. Eclipse – powitanie w programie
38
luty 2008
439134423.012.png 439134423.013.png 439134423.014.png
 
Zgłoś jeśli naruszono regulamin