Wednesday, October 8, 2008

Pragmatyczny programista vs. Crtl+space

Ostatnio okazyjnie nabyłem książkę Panów: Andrew Hunta oraz Davida Thomasa pod tytułem "Pragmatyczny programista". Warto dodać że książka ta została wydana w 2000 roku (w USA, w Polsce 2002).

W rozdziale o narzędziach, autorzy przekonują do tezy, że programista powinien posługiwać się biegle jednym edytorem tekstu i używać go wszędzie, gdzie się da. Tłumaczą, że maestria w posługiwaniu się jednym prostym narzędziem, jest znacznie ważniejsza niż wyręczanie się kombajnem w rodzaju IDE.
Dla mnie teza ta jest dzisiaj już trochę nieaktualna. Wyobraźmy sobie kogoś kto nad projektem w JEE (z wykorzystaniem np. spring, hibernate, struts) pracuje np. vi. Znałem osobiście jednego programistę który taki styl pracy preferował ale do pewnego czasu. Kiedy poznał Intellij Idea (to nie jest blog sponsorowany) i zapoznał się z klawiszologią jego praca stała się nie tylko szybsza i prostsza ale także mniej błędogenna.

Czy więc dzisiaj słowa zawarte w pragmatycznym programiście są nadal aktualne?

Od 2000 roku wiele się zmieniło, wystarczy spojrzeć jakie wtedy były IDE i jakie są teraz... Dzisiaj Eclipse czy IDEA to nie tylko produkty tworzone pod kontem konkretnego języka. To rozwiązania do których istnieje całe bogactwo rozszerzeń, dzięki którym praca programisty staje się nie tylko prostsza ale także mniej błedo genna.
Często bowiem zdarza się, że edytując config w xml popełniam literówke. Błędy zawarte w plikach konfiguracyjnych wychodzą dopiero podczas działania aplikacji. Wykrywanie takich błędów jest więc bardzo kosztowne, ponieważ trzeba aplikacje zbudować, uruchomić i jeżeli będziemy mieli szczęście to wyłapiemy błąd podczas uruchamiania aplikacji, jeżeli nie to będziemy go musieli wy klikać.
Gdy mamy do dyspozycji IDE, z walidacją tych configów błąd lub ostrzeżenie zobaczymy na ekranie w momencie jego popełnienia, tak więc IDE oszczędza nam w tym wypadku wiele pracy. Dodatkowo IDE podpowie także w xml nazwę pakietu czy klasy.
Dodatkowo dzięki IDE zwiększa się czytelność kodu (autoformatowanie) i nawigacja po strukturach klas i interfejstów jest bardzo ułatwiona.

Dzisiaj IDE zaspokaja w 99% potrzeby programisty, ale fakt jest faktem, że raz na jakiś czas trzeba coś zrobić poza nim. Wtedy trzeba użyć narzędzi o których piszą autorzy "Pragmatycznego programisty". Maestria w posługiwaniu się nimi jest atutem, ale czy koniecznością ?

Jak widać wiele się zmieniło w ciągu ostatnich paru lat w pracy programistów. IDE jest dzisiaj ważnym narzędziem bez którego ciężko się obyć. Należy jednak pamiętać, że IDE to tylko narzędzie i nie ma w nim magicznych krasnoludków, które wszystko za nas zrobią. Niestety efektem ubocznym korzystania z IDE jest często niewiedza, co tak naprawdę się dzieje pod spodem, co IDE robi za nas. Spotkałem już "programistów" którzy tworzyli programy w IDE, a gdy poprosiłem ich o uruchomienie ich z linii poleceń, nie potrafili tego zrobić :) Podobne anegdotki, krążyły o programistach korzystających z Visual Studio, że nie piszą oni kodu, a go wyklikują.

Podsumowując, świat idzie na przód i narzędzia też i sam edytor to dzisiaj stanowczo zbyt mało. Dzisiaj maestria w posługiwaniu się IDE jest coraz bardziej wskazana, należy być jednak świadomym tego co IDE za nas robi (czasami może nam coś popsuć i wtedy wiemy gdzie szukać błędu), bo czasami nadchodzi chwila w której musimy stanąć twarzą w twarz z linią poleceń.

No comments: