Читать книгу JavaScript funkcyjnie. Zrównoważone, pragmatyczne programowanie funkcyjne w JavaScript - Kyle Simpson - Страница 5

Słowo wstępne

Оглавление

Nie jest tajemnicą, że należę do maniaków programowania funkcyjnego. Propaguję idee i funkcyjne języki programowania, gdzie tylko mogę, próbuje czytać najnowsze prace naukowe i studiuję abstrakcyjną algebrę w wolnym czasie. Nawet w JavaScripcie odmawiam pisania nieczystych programów, co doprowadziło do powstania książki Professor Frisby’s Mostly Adequate Guide to Functional Programming. Tak, jestem całkowitym dogmatycznym zelotą.

Nie zawsze tak było… Kiedyś fascynowałem się obiektami. Kochałem modelowanie „prawdziwego świata”. Byłem wynalazcą syntetycznych automatów, dłubałem przy nich nocą, aby osiągnąć mistrzowską precyzję. Byłem twórcą samoświadomych kukiełek, przebierającym palcami po klawiaturze, aby tchnąć w nie życie – prawdziwy Geppetto 1337 h4x0r. Jednak po pięciu solidnych latach pisania kodu obiektowego okazało się, że nigdy nie byłem zadowolony z wyniku. Nigdy nie był on dla mnie dość dobry. Straciłem wiarę, że prosty, elastyczny kod w rozsądnej skali jest w ogóle osiągalny.

Doszedłem do wniosku, że spróbuję czegoś innego: programowania funkcyjnego (FP). Zacząłem parać się funkcyjnymi pomysłami w moim dotychczasowym kodzie i ku przerażeniu współpracowników nie miałem pojęcia, co właściwie robię. Kod, jaki pisałem wtedy, był okropny. Potworny. Cyfrowy ściek. Powodem był brak jasnej wizji lub celu w tym, co chciałem osiągnąć. Nie miałem mojego Jiminy’ego Świerszcza, który by mnie poprowadził. Minął długi czas i dużo śmieciowych programów, zanim doszedłem do tego, czym jest FP.

Po tej całej zabałaganionej eksploracji czuję, że programowanie funkcyjne dało mi to, co obiecywało. Istnieją czytelne programy! Istnieje możliwość ponownego ich wykorzystania! Nie muszę wymyślać swego modelu, mogę go odkrywać. Stałem się sprytnym detektywem odkrywającym rozpowszechnione spiski, mając tablicę korkową pełną dowodów matematycznych. Jak Cousteau wieku cyfrowego, odkrywałem cechy tej dziwnej krainy w imię nauki. Nie jestem doskonały i wiele się jeszcze muszę nauczyć, ale nigdy praca nie przynosiła mi tyle satysfakcji i nigdy tak nie cieszyły mnie jej rezultaty.

Gdyby taka książka istniała, gdy zaczynałem, moje przejście do świata programowania funkcyjnego byłoby znacznie łatwiejsze i mniej destrukcyjne. Ta praca przynosi dwojakie korzyści1: nie tylko nauczy, jak skutecznie używać w naszym codziennym kodzie FP różnych konstrukcji, lecz także, co ważniejsze, da nam cel – podstawowe zasady, które pozwolą nam utrzymać kierunek.

Nauczycie się lekkiej funkcyjności: paradygmat, który Kyle wyraził jako pierwszy, aby umożliwić programowanie funkcjonalne, dając równowagę i interoperacyjność z resztą świata JavaScriptu. Zrozumiecie podstawy, na których zbudowane jest czyste programowanie funkcyjne, bez konieczności wpisywania się w jego paradygmat w całości. Zyskacie umiejętności praktykowania i analizowania FP bez konieczności przepisywania istniejącego kodu, aby lepiej współpracował z nowym. Możecie zrobić krok do przodu w swoje karierze w dziedzinie oprogramowania, bez cofania się i bezcelowego błądzenia, jak się to mi zdarzyło przed laty. Współpracownicy i koledzy ucieszą się!

Kyle to świetny nauczyciel znany ze swojego niezmordowanego dążenia do pokazania całości, bez pozostawiania niezbadanych zakątków i luk, który jednocześnie ma empatię dla ciężkiego losu uczących się. Jego styl współgra z branżą, podnosząc nas wszystkich na wyższy poziom. Jego praca ma trwałe miejsce w historii języka JavaScript i wielu ma odnośniki do nich w zakładkach. Jesteście w dobrych rękach.

Programowanie funkcyjne ma wiele różnych definicji. Definicja programisty Lispa jest całkiem odmienna od perspektywy Haskella. FP w OCaml w niewielkim stopniu przypomina paradygmaty znane z Erlanga. Znaleźć można nawet kilka konkurujących definicji w JavaScripcie. Jest jednak coś, co to wszystko wiąże ze sobą – dość mglista definicja, którą można zrozumieć, gdy się ją widzi, trochę jak obsceniczność (niektórzy nawet twierdzą, że FP jest obsceniczne!), a w książce tej bez wątpienia udaje się uchwycić ten aspekt. Wynik końcowy nie będzie w niektórych przypadkach uznany za specyficzny, ale wiedza tu nabyta bezpośrednio odnosi się do dowolnego rodzaju FP. Ta książka jest wspaniałym miejscem do rozpoczęcia podróży przez FP. Zaczynaj, Kyle…

Brian Lonsdorf (@drboolean)

JavaScript funkcyjnie. Zrównoważone, pragmatyczne programowanie funkcyjne w JavaScript

Подняться наверх