Wieczni programiści

Skoro każde niemal zajęcie wymaga ludzi o pewnych cechach osobowości, bo nie każdy przecież nadaje się na policjanta, lotnika czy lekarza, można zastanawiać się, co szczególnego charakteryzuje osobowość programisty. Bez wątpienia sama profesja, mimo iż istnieje tylko niecałe 50 lat (a dwa razy tak długo, gdy uwzględnić urządzenia liczące stosowane przed komputerami), jest przedmiotem szczególnego zainteresowania. Pisze się traktaty o filozofii programowania, a adepci dziedziny zwanej psychologią programowania zakładają towarzystwa naukowe i spotykają się regularnie na seminariach i konferencjach.

Programista na wybiegu

Co szczególnego tkwi w pracy programisty, że budzi ona tak szerokie zainteresowanie, a banalne skądinąd dokonania bywają źródłem zachwytów? Czy osoby uprawiające ten zawód to jednostki o szczególnych cechach? Czy może między osobami zajmującymi się programowaniem a tworzonymi przez nie programami występuje pewien rodzaj wzajemnego oddziaływania, podobny do przypisywanego wpływowi pacjentów na leczących ich psychiatrów?

Termin "programista" jest bardzo pojemny, przez to mało precyzyjny: mieści się w nim pracownik dużej organizacji, który pełni rolę kółka w skomplikowanym mechanizmie, ale również indywidualista cieszący się znacznym (czasem bardzo znacznym) zakresem swobody. Postać "prawdziwego programisty", którą przed laty (w 1982 r.) w znakomitym i ciągle aktualnym eseju Prawdziwi programiści nie stosują Pascala przedstawił pracownik firmy Tektronix Ed Post, to kwintesencja cech tradycyjnego programisty.

Występujący tam "prawdziwy programista" to człowiek, który trzyma się raz zdobytej (zapewne jeszcze na uczelni) umiejętności, popartej wieloletnią praktyką, mając zarazem w pogardzie zarówno tych, którzy to samo robią inaczej, jak i krytykujących istniejący stan i wskazujących ewentualne kierunki zmian.

"Prawdziwy programista" napisze program fortranowy w każdym języku, nie obawia się stosowania instrukcji skoku i nie zagubi się w zajmującej pięć stron strukturze z wielokrotnie zagnieżdżonymi badaniami warunków. Za zbędne uważa on komentarze, bo przecież własny kod jest oczywisty, a takie kwestie jak typy i struktury, to domena takich "zjadaczy chleba" (będących zaprzeczeniem "prawdziwych mężczyzn", których podzbiorem są prawdziwi programiści), jak Dijkstra czy Wirth. Oczywiste, że prawdziwi programiści są od pisania programów, a nie ich dokumentowania. Umieją oni biegle czytać i poprawiać nawet szesnastkowy kod programów, wyręczając w tym kompilatory. Gdy trzeba, prawdziwy programista stawi czoło systemowi operacyjnemu, a w sytuacji naprawdę krytycznej poradzi sobie nawet z elektroniką.

Gdyby dziś zastąpić w tym tekście Fortran językiem C (lub Java), a programowanie strukturalne metodami obiektowymi, reszta eseju zachowałaby aktualność (choć w rzeczywistości wybór narzędzi coraz rzadziej należy do programisty - przeważnie ktoś mu je narzuca, zmuszając do przechodzenia od "prawdziwego programowania" do sztampowego rzemiosła - skuteczność jest ceniona wyżej od elegancji i stylu).


TOP 200