Czy zgubiliśmy radość programowania?
2010-03-04
Whatever happened to programming?
Instead of designing beautiful data-structures and elegant algorithms, we’re looking up the EnterpriseFactoryBeanMaker class in the 3,456-page Bumper Tome Of Horrible Stupid Classes (Special Grimoire Edition), because we can’t remember which of the arguments to the createEnterpriseBeanBuilderFactory() method tells it to make the public static pure virtual destructor be a volatile final abstract interface factory decorator.
Jakże prawdziwe.
E tam, marudzenie.
Jeśli komuś zależy na ciekawej pracy, to ją znajdzie. Jasne, czasem oznacza to konieczność zrezygnowania z lepiej płatnej/stabilniejszej/whatever, ale jest możliwe.
Marcin: tamten artykuł nie jest o pracy. Jest o naturze programowania — nie czujesz, że znacznie bardziej niż kiedyś opierasz się na bibliotekach i robisz robotę integratora?
Janku, nie wiem czym się teraz zajmujesz, ale moje prace są bardzo różne: od typowo integracyjnych poprzez architekturę, algorytmikę i czyste kodowanie do kompletnie nieprogramistycznych. Masz podobny, jeśli nie większy zakres możliwości. Jeżeli robiąc to co teraz czujesz się jak integrator i jest Ci z tym źle, możesz to zmienić nie rezygnując z programowania.
Dla mnie biblioteki oznaczają więcej, a nie mniej frajdy: mogę przerzucić na cudzy kod prace, które uważam za nieistotne i nieprzyjemne. Nie obsługuję alokacji pamięci, nie muszę dbać o rejestrację odpowiednio dużego stosu i sterty, nie rozmawiam ze sprzętem na poziomie przerwań, nie muszę się przejmować szczegółami implementacyjnymi rzeczy, które mnie nie interesują. I pomimo tego mam wystarczająco dużo naprawdę interesujących zajęć.
Eh, jak budowniczy samochodów narzekający, że kiedyś mógł sobie ciąć i klepać blachę, a teraz CNC zabrało całą zabawę :)
Marcin: no, jesteś blisko prawdy z tym budowaniem samochodów :-)
Akurat ja teraz robię pasjonujące rzeczy, ale mam wrażenie, że to jest raczej wyjątek — większość pracy programistów dziś to faktycznie integrowanie bibliotek. A to już wcale takie ciekawe dla mnie nie jest. Owszem, znikają rzeczy nieistotne — ale też znika spora część satysfakcji.
Khem.
http://m.xkcd.org/610/
:)
tylko czy ktos zmusza cie janie do pisania z uzyciem bibliotek i frameworkow? jezeli chcesz pisac cos od podstaw masz takie mozliwosci. inna sprawa czy w stworzonych przez siebie klasach znasz na pamiec kolejnosc argumentow czy nazwy metod?
ja przez pewien czas poczatkowej przygody z programowaniem zawsze opieralem sie o swoje klasy, funkcje i ogolnie - kod. z czasem zaczelem sie przekonywac do bibliotek i frameworkow - raz, ze z lenistwa, dwa ze moge cos zrobic po lebkach, bo musze to miec, albo "zoutsource'owac" taka a taka czesc roboty na biblioteke czy framework. raz, ze zapewne otrzymam wieksza funkcjonalnosc (ktora moze wykorzystam w przyszlosci), nie musze sie martwic o bledy i mozliwe, ze bedzie to lepszy jakosciowo kod od mojego robionego na szybko. dodatkowo dochodzi dokumentacja, ktorej nie musze sam dla siebie pisac (a przy min. 3456 stronach, to jednak troche pracy :)). jezeli jednak czuje/wiem, ze dany problem mozna rozwiazac lepiej/szybciej, to zajme sie tym samemu.
Oj, myślę, że Janowi chodziło o coś zupełnie innego niż tylko brak satysfakcji z pracy. Myślę, że ten cytat symblizuje to jak zmieniła się praca programisty, w ciągu ostatnich kilkunastu(?) lat. Nie tylko zmianę równowagi między businessem a nauką w świecie programowania czy napływ coraz słabszej siły roboczej do świata developmentu. (Sam mam raz na 4 interview takie, na którym zainteresowany pracą nie odpowiada na ani jedno pytanie ani z języka w którym podobno pisze, ani inżynierii oprogramowania ani algorytmów czy współbieżności. Nic, zero! A jeden ma np 10 lat doświadczenia!)
Ale, myślę, że można pójść dalej: pokazać jak technologie w których pracujemy robią się nieznośne do tworzenia oprogramowania, jak robią się ogromne i skomplikowane. Jak Java stała się Cobolem naszych czasów. I jak daleko jesteśmy od użycia w businessie i codziennym życiu nowych technologii, które mają szanse dać nam ponownie się skupić na algorytmach, a nie na architekturze, wzorcach i całym tym narzucie języka, który mógłby być kilka razy mniejszy.
Świetny cytat :)
He, bardzo zbieżne odczucia mam od jakiegoś czasu - hasło "programista" stało się na tyle pojemne, że znaczy jednocześnie coraz więcej i coraz mniej.
Bartosz: np. „programista HTML” :-)