Kodowanie: to po prostu pisanie

Oryginalny post: Coding: It's Just Writing

Autor: Jeff Atwood

W swoim artykule Programistyczne aforyzmy Strunka i Whitea, James Devlin jak zwykle znakomicie opisuje coś, co sam zacząłem coraz częściej dostrzegać w ciągu ostatnich pięciu lat, a mianowicie:

Niespodziewany związek pomiędzy pisaniem kodu, a pisarstwem.

Prawdopodobnie nie ma na świecie lepszego opracowania na temat pisarstwa niż książka The Elements of Style (w wolnym tłumaczeniu: "Składowe stylu") autorstwa Strunka i Whitea. Jest to jedna z tych książek, które odkrywasz w liceum bądź w koledżu, a następnie przez resztę swego życia zastanawiasz się, dlaczego inne podręczniki tak marnują Twój czas poprzez wykorzystywanie tylu niepotrzebnych słów, aby przekazać jakąś treść. Jak wszystkie wielkie dzieła, książka ta na zawsze odmienia Twój sposób postrzegania świata, nawet jeśli czyni to tylko w niewielkim stopniu.

Na Wikipedii można poczytać trochę na temat historii i okoliczności powstania tej ponadczasowej książki:

[Książka "The Elements of Style"] pierwotnie napisana została w 1918 roku i prywatnie opublikowana przez profesora Williama Strunka Juniora, profesora wykładającego na Cornell University. W 1935 roku, przy pomocy Edwarda A. Tenneya powstała pierwsza jej rewizja. W 1957 uwagę na nią zwrócił E. B. White, który przez wiele lat pisał dla New Yorkera. White studiował pod skrzydłami Strunka jeszcze w roku 1919, ale od tamtej pory nie wspominał tej "książeczki", którą sam nazwał "czterdziesto trzy stronicowym podsumowaniem na temat czystości, dokładności i zwięzłości w posługiwaniu się językiem angielskim".

The Elements of Style

Kilka tygodni później White napisał artykuł do New Yorkera, w którym sławił profesora Strunka i jego przywiązanie do "klarowności" w posługiwaniu się angielską prozą. Po tym jak autor książki zmarł w 1946 roku, wydawnictwo Macmillan and Company upoważniło Whitea do opracowania nowego wydania "Składowych stylu". Opublikowane ono zostało w 1959 roku w postaci znacznie rozszerzonej i zmodernizowanej przez Whitea. Ta właśnie wersja znana jest milionom pisarzy i studentów jako po prostu "Strunk and White". Pierwsze wydanie Whitea sprzedało się w liczbie dwóch milionów kopii. Całkowita sprzedaż wszystkich trzech wydań przekroczyła 10 milionów kopii na przestrzeni czterech dekad.

Wszystko pięknie i fajnie jeśli planujesz zostać pisarzem, ale jaki jest związek między tą małą, ponadczasową książeczką a pisaniem programu komputerowego?

Napiasnie programu zrozumiałego dla komputera z pewnością jest wyzwaniem. Z tego powodu, mówiąc ogólnie, stosunkowo niewielu ludzi zostaje kompetentnymi programistami. Jednakże pisanie akapitów i zdań, których odbiorcą ma być drugi człowiek -- cóż, to jest jeszcze trudniejsze. Im dłużej zajmujesz się tworzeniem oprogramowania, i im starszy się stajesz, w końcu zdajesz sobie sprawę, że aby odnieść prawdziwy sukces w tej dziedzinie, musisz pisać programy, które będą zrozumiałe nie tylko dla komputera, ale również dla Twoich kolegów po fachu.

Ze wszystkich okrutnych niespodzianek, jakie czyhają na nas w dziedzinie inżynierii oprogramowania, ta musi być chyba najbardziej bezlitosna. Większość z nas zaczęła zajmować się programowaniem komputerów, ponieważ maszyny są o wiele bardziej logiczne niż ludzie. Mimo to, nawet jeśli piszesz kod przeznaczony dla maszyny, to nadal jest to proces pisania. Dla innych ludzi. Omylnych, niepozbawionych wad, roztargnionych istot ludzkich -- takich jak Ty. I to właśnie jest ta prawdziwie trudna część.

Uważam, że Knuth miał na myśli to samo, gdy ukuł pojęcie programowania piśmiennego (pdf).

Spróbujmy zmienić nasze tradycyjne podejście do tworzenia oprogramowania: Zamiast wyobrażać sobie, że naszym głównym zadaniem jest poinstruowanie komputera, co ma zrobić, skoncentrujmy się na wytłumaczeniu istotom ludzkim, czego od komputera oczekujemy.

Praktyk programowania piśmiennego może być postrzegany jako eseista, który skupia się na prezencji i doskonałości stylu. Taki autor, uzbrojony w tezaurus, ostrożnie wybiera nazwy zmiennych i tłumaczy, jakie jest ich znaczenie. On czy ona stara się stworzyć program, który będzie jak najbardziej zrozumiały dla innych ludzi, porządkuje pewne koncepcje w określonej, naturalnej dla człowieka kolejności, używa w tym celu zarówno formalnych jak i nieformalnych metod, które wzajemnie uzupełniają się i wzmacniają.

Oczywiście łatwiej powiedzieć niż zrobić. Większość z nas spędza całe swe życie, ucząc się, jak pisać efektywnie. Książka taka jak "Składowe stylu" dostarcza wielu cennych wskazówek, które niemalże w całości dają się zastosować do procesu kodowania. Chciałbym szczególną uwagę zwrócić na jedną z zasad ze "Składowych stylu", do której sam nieustannie wracam, odkąd po raz pierwszy ją przeczytałem wiele lat temu.

13. Pomijaj zbędne słowa.

Mocne pisarstwo jest zwięzłe. Zdanie nie powinno zawierać niepotrzebnych słów, akapit -- zbędnych zdań, z tego samego powodu, dla którego rysunek nie powinien zawierać niepotrzebnych kresek a maszyna niepotrzebnych części. Nie oznacza to, że pisarz skraca wszystkie swoje zdania, albo że unika szczegółów i traktuje temat pobieżnie. Oznacza to, że każde słowo wnosi dodatkową treść.

Jak ma się to do Twojego pisania? A do Twojego kodu?

W końcu kodowanie to przecież tylko pisanie. Czy może to być aż tak trudne?

Data publikacji oryginału: listopad 8, 2008

0 komentarze:

Prześlij komentarz

Related Posts with Thumbnails