Przejdź do głównej zawartości

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.

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ń

Prześlij komentarz

Popularne posty z tego bloga

Kursy IT na Pluralsight. Dlaczego warto?

Bardzo sobie cenię kursy na Pluralsight. Mam wrażenie, że każdy kurs, który przeszedłem na tej platformie, w dużym stopniu podniósł moje zdolności. Wiem, dostęp do tej platformy nie jest tani, ale w mojej ocenie warty swojej ceny. To nie jest reklama, ale forma entuzjazmu jaki mam do tej formy samodoskonalenia. O to kilka punktów pokazujących ofertę tego serwisu i dlaczego warto skorzystać: Pluralsight to kursy z Javascript, C#, Java, Angular, Python, MySQL i wielu innych technologii i umiejętności. Kursy na Pluralsight w większości mają wyższą jakość niż te, które możemy znaleźć na przykład na YouTube. Są wyselekcjonowane, mają wysoką jakość dźwięku i obrazu. Często wgryzają się głęboko w dany problem daleko poza standardowe „Hello World” danej technologii. Twórcy Pluralsight to często osoby znane ze świata IT i konferencji branżowych, jak: Scott Hanselman, Microsoft John Somnez, SimpleProgrammer.com John Skeet, Google Pluralsight udostępnia funkcjonalność ścieżek – paths....

Bicie piany

Czy słyszałeś o tym gościu, który powiedział, że Object Oriented to przeżytek? No nie. Następny. Co powiedział? Opisał wszystkie obietnice OO, i jak żadna z nich tak naprawdę nigdy nie została spełniona i o tych wszystkich możliwościach OO, które kosztują więcej, niż są warte i że funkcjonalne programowanie jest lepsze i ... Phi. Tak słyszałem już to wcześniej. No, więc OO jest martwe, leży i kwiczy i możemy przejść dalej. Przejść dalej do czego? Co? No do NASTĘPNEJ WIELKIEJ RZECZY oczywiście. Aaaa, do tego. Czy wiesz już co to jest? Nie bałdzo, ale jestem podekscytowany na myśl o mikroserwisach; jaram się Elixirem; i słyszałem, że React jest fantastyczny; i ... Tak, tak. Bicie piany. Dałeś się nabrać na bicie piany. Co? Co masz na myśli. Przecież mamy takie wspaniałe czasy. Tak naprawdę postrzegam te czasy jako depresyjne. Ale dlaczego? Przecież co kilka dni wyskakują nowe wspaniałe technologie! Wspinamy się na coraz wyższe szczyty. Phi. To, co tak napraw...

Podstawy Programowania Funkcyjnego Epizod 3

Czy wszystkie Zasady Się Zmieniają? Kiedy tylko zaczynamy używać nowego paradygmatu , porównujemy z nim nasze dotychczasowe zasady i nawyki. Pytamy siebie czy te wszystkie zasady i nawyki są poprawne w kontekście tego nowego paradygmatu. Rozważ, dla przykładu: Test Driven Development . Czy nadal jest poprawne w Programowaniu Funkcyjnym? Jeżeli tak, to jak się do tego zabierzesz? Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina z dnia 07 stycznia 2013 ze strony: https://blog.cleancoder.com/uncle-bob/2013/01/07/FPBE3-Do-the-rules-change.html Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta. Aby odpowiedzieć sobie na to pytanie spróbujmy napisać prosty funkcyjny program: Word Wrap (zawijanie tekstu). Wymagania są proste. Mając napis złożony ze słów, oddzielonych pojedynczymi spacjami...