poniedziałek, 13 lipca 2009

NetBeans i C/C++

Jako że będę niedługo potrzebował umiejętności pisania programów w C z Linuksem jako docelową platformą postanowiłem zrobić coś w tym kierunku. Korzystać będę z Ubuntu 8.04 LTS.
Rozpocząłem od przejrzenia książki Beginning Linux Programming z której to dowiedziałem się jak kompilować programy z pomocą linii komend. Zdaję sobie sprawę, że niektórzy to lubią i ma to "oldskulowy" urok, ale jednak cenię sobie wyżej wygodę niż bajery.
Swego czasu dużo dobrego słyszałem o NetBeans i postanowiłem je wypróbować. Jest to środowisko programistyczne, które można wykorzystać do programowania w wielu językach (pierwotnie była to chyba Java). Mnie interesowała wersja dla C/C++, toteż ściągnąłem odpowiedni instalator ze strony http://www.netbeans.org/downloads/index.html. Na stronie dostępne są też tutoriale dotyczące obsługi tego środowiska.
Instalację przeprowadzałem już jakiś czas temu, więc nie pamiętam wszystkich szczegółów, ale wydaje mi się, że brakowało tam kompilatora C++ - wystarczy doinstalować g++ na przykład za pomocą Synaptica i w Narzędzia=>Opcje=>C/C++=>Build Tools w okienku C++ Compiler: wpisać /usr/bin/g++. Od teraz można już działać bez przeszkód.
Moje dotychczasowe doświadczenia z programowaniem w C++ to głównie 2 programy: MS Visual Studio i C++ Builder z Borlanda. Ten drugi to już zabytek, więc nie ma co porównywać. Jak na tak stary program jest bardzo wygodny, ale znalezienie jakiejś instalki w internecie, a do niej jeszcze klucza rejestracyjnego to już nie jest zabawne. Acha, żeby działał debugger należy się zarejestrować. Swojego czasu ominąłem rejestrację i zachodziłem w głowę dlaczego debugger, który kiedyś działał bez problemu, teraz w ogóle nie chce tego robić. Wracając jednak do sedna - porównanie będzie odbywać się między VS, a NetBeans.
Jest kilka funkcji, które w IDE są przeze mnie wymagane. Działający debugger to podstawa - byłem bardzo mile zaskoczony, gdy zobaczyłem w NetBeans, że mogę bez problemu włączyć uruchomienie programu linia po linii wraz z poglądem zmiennych, dodawanie watchów itp. Bardzo miłe zaskoczenie.
Pisząc program bardzo pomocne są podpowiedzi nazw zmiennych i funkcji. Zarówno w VS, jak i NB mamy je dostępne pod ctrl+spacja, ale w tym drugim mamy to bardziej rozbudowane - podpowiadane są też nazwy plików nagłówkowych, dyrektywy preprocesora, rozwinięcia kodu (napisz "for", naciśnij ctrl+spacja, a dostaniesz podpowiedź "fori", które po wybraniu rozwija się w pętlę for ze zmienną i. To jeszcze nie koniec - zmienna i jest w polu, które uaktywnia się po rozwinięciu. Możemy wpisać dowolną nazwę zmiennej, a zastąpi ona i we wszystkich miejscach w pętli. Coś takiego dostępne w VS jest chyba tylko wtedy gdy piszemy w C# (albo może wszystko pisane przy użyciu CLR ma taką właściwość). Nie udało mi się za to znaleźć jak włączyć podpowiedź listy parametrów w funkcji, czyli odpowiednik Visualowego ctrl+shift+spacja, ale to pewnie jeszcze gdzieś to się przede mną ukrywa.
Co jeszcze mi się podoba w NB, a nie widziałem w VS to ilustracja czasu wykonywania programu i zużycia pamięci. Wciskamy F6, aby uruchomić nasz projekt i widzimy jak rośnie czy spada rozmiar naszego programu. Inny przykład to kombinacja alt+shift+f, która ładnie formatuje kod - wstawia spację między operatorami, wyrównuje wszystko, generalnie sprawia, że kod staje się czytelny.
Dodatkowo mamy integrację z CVS, SVN, Kenai i nie wiem nawet czym jeszcze. Trochę czasu minie zanim odkryję wszystkie funkcje. Wrażenia z użytkowania są niezmiernie zadowalające - obecnie staram się rozwiązać jak najwięcej zadań z Projektu Euler o którym napiszę więcej wkrótce.