11 czerwca 2018

My Programiści


Dobry


Gdzieś tam mały czerwony samochód sportowy zmierza w kierunku pasa asteroidów i to my programiści umieściliśmy go tam. Ooo, nie mam zamiaru umniejszać dokonań Elona Muska i wszystkich tych kosmicznych naukowców i inżynierów ze SpaceX. To była ich wizja i ich osiągnięcie. Ale oni nie mogliby tego dokonać bez nas.

Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony :


Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta.


Pomyśl, przez chwilę, o tym całym oprogramowaniu zaangażowanym w ten projekt. Pomyśl o całej automatyce samego statku kosmicznego. Pomyśl o zdolności tych boosterów do wylądowania w duecie. Pomyśl o statecznikach sterujących, o stabilizatorach silnika, o przepustnicach. Pomyśl o kontroli naziemnej, i o protokołach komunikacyjnych, i ...
Pomyśl o tym, jak pracowali inżynierowie. Pomyśl o oprogramowaniu CAD / CAM. Pomyśl o maszynach CNC i oprogramowaniu do modelowania 3D. Pomyśl o symulacjach dynamiki płynów, analizie elementów skończonych, obliczeniach orbitalnych, arkuszach kalkulacyjnych, procesorach tekstu, e-mailach, SMS-ach, rozmowach telefonicznych...
Myślę, że widzisz, co chcę pokazać. Każdy malutki krok na ścieżce od marzenia do realizacji był oliwiony, umożliwiany, rozszerzany i ułatwiany przez oprogramowanie. Oprogramowanie, którego miliardy miliardów linii kodu napisaliśmy my programiści. [Tak, saganizm był zamierzony]
A teraz pomyśl co to oznacza dla naszej cywilizacji. Tak, to był znak - gest - zaledwie kropla w morzu możliwości. Ale co za kropla! Tylko pomyśl o tej zwykłej chucpie, ogromnym, żywiołowym, radosnym marnotrawstwie! To był paw okazujący swoje bogate pióra nad ogonem. To była antylopa widłoroga skacząca w górę w akcie zwykłego entuzjazmu. To był wyraz odrzucenia ograniczeń i nasza ochota do nonszalanckiego poświęcenia ogromnych zasobów w celu zrobienia małego kroku do spełnienia namiętnego marzenia.
To była wiadomość, którą wysłaliśmy do nas samych, i do całego wszechświata, mówiąc, że oto nadchodzimy i nic w tym wszechświecie nas nie powstrzyma. I to my programiści byliśmy tymi, którzy bardziej niż ktokolwiek inny umożliwili wysłanie tej wiadomości. To jest coś z czym Ty, ja, i wszyscy inni programiści powinniśmy czuć się bardzo dobrze.

Zły



Elaine Herzberg jest martwa. Została uderzona przez "autonomiczny" samochód przeprowadzając swój rower przez drogę. I to my programiści ją zabiliśmy. Ooo, nie mam na myśli tego, że jakikolwiek programista złośliwie, czy przez niedbalstwo napisał kod, który ją zabił. Ale, bez jakichkolwiek wątpliwości, to kod ją zabił.
Być może była tam, gdzieś w kodzie, instrukcja IF, która, przy odwrotnej wartości predykatu, uchroniłaby od wypadku. Albo być może była tam funkcja, która wygenerowałaby wynik różny o kilka bitów i to uchroniłoby od wypadku.
Możemy nigdy nie wychwycić tej instrukcji IF lub tej funkcji. Sieci neuronowe uczone maszynowo są zdradliwie trudne do zrozumienia. Nawet, gdy pliki logu samochodu zawierają wszystkie wejścia, i możemy powtarzać zdarzenie w kółko i w kółko, możemy nigdy nie zrozumieć, w głębinie wag, średnich i pętli zwrotnych, dlaczego samochód zachował się tak, jak się zachował.
Jedyne co możemy powiedzieć, to to, że my programiści napisaliśmy kod, który ją zabił. I to jest coś, z czym Ty, ja, i wszyscy inni programiści powinniśmy się czuć bardzo źle.

Brzydki

Jest przekonanie wśród programistów, że argumenty etyczne i moralność nie powinny brać udziału w naszych dyskusjach o dyscyplinach i praktykach. Ci, którzy mają takie przekonanie sugerują, że nasze praktyki i dyscypliny powinny być sprawą czystej logiki i ekonomii. Biorąc pod uwagę te dwa scenariusze powyżej uważam to za niepokojące. Mi wydaje się, że etyka i moralność stały się nieodłączne od wszystkiego, co my programiści robimy; ponieważ tak wiele zależy od jakości naszej pracy.

Nasze Motto

Już dawno minął czas, w którym my programiści mogliśmy bezpiecznie odizolować się od reszty świata. My programiści nie możemy dłużej chować się w naszych technologicznych bańkach. Kod, który my programiści piszemy ma znaczenie. Ma znaczenie dla nadziei i marzeń naszego społeczeństwa i naszej cywilizacji. Ma znaczenie dla ludzi przeprowadzających swoje rowery przez ulice. Ma znaczenie dla wszystkich i każdego, ponieważ kod, który my programiści piszemy oliwi, umożliwia, rozszerza i ułatwia praktycznie każdy aspekt naszego codziennego życia. Od czegoś tak małego, jak monitor oddechu, którym młoda mama sprawdza swoje dziecko, po coś tak ogromnego jak międzynarodowe polityki broni nuklearnej i podróże międzyplanetarne, nasz kod ma znaczenie.
Ostatnio Grady Booch twittnął coś, co myślę, że my programiści powinniśmy przyjąć jako nasze motto:
Każda linia kodu reprezentuje etyczną i moralną decyzję.


Powyższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony :


Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta.

3 komentarze:

  1. Michał, a co Ty o tym sądzisz?

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć Łukasz !

      Oczywiście zgadzam się w całej rozciągłości. Dlatego właśnie tłumaczę teksty Wujka Boba, dlatego właśnie tak mi bardzo na tym zależy. Chciałbym aby te teksty przeczytała jak największa liczba osób. Nie przeżyłem tyle, co Wujek, ale im bardziej zdobywam doświadczenie w projektach programistycznych dochodzę do wniosku, że ma rację.

      Uważam, że racje co do ogólnych spraw: podatków, polityk wewnętrznych i zewnętrznych w firmie/państwie ma większość ludzi. I tu demokracja świetnie się sprawdza. Jeżeli chodzi jednak o sprawy moralne/etyczne zawsze rację mają wybitne jednostki.

      Uważam też, że jeżeli chodzi o naukę, to możemy się uczyć na dwa sposoby. Albo możemy uczyć się na własnych błędach. Jest to niestety bardzo kosztowne. Albo możemy uczyć się na błędach innych. Potrzeba do tego dozy pokory, ale nie ponosi się wtedy takiego kosztu.

      Co uważasz?

      Pozdrawiam i życzę powodzenia na ścieżce profesjonalnego twórcy oprogramowania :)

      Usuń
  2. Bardzo ciekawie napisane. Jestem pod wielkim wrażaniem.

    OdpowiedzUsuń

Podstawy Programowania Funkcyjnego Epizod 3

Czy wszystkie Zasady Się Zmieniają? Kiedy tylko zaczynamy używać nowego paradygmatu , porównujemy z nim na...