Funky Functional #0 – programowanie funkcyjne – wstęp

Programowanie funkcyjne nie jest niczym nowym, ale temat ostatnimi czasy zyskał moje zainteresowanie. Zapisałem się ostatnio na mini szkolenie dotyczące wprowadzenia do programowania funkcyjnego z użyciem języka F sharp. Zrobiłem to z dwóch powodów. Jak zwykle pierwszy to ciekawość, drugi zaś to niewykiełkowane zainteresowanie z czasów studiów, gdy podczas studiów pierwszy raz spotkałem się z tym terminem.
Jeden z nieco nawiedzonych prowadzących zajęcia głosił wówczas, że Haskell to jedyny właściwy język programowania i wszystkie inne powinny zostać porzucone w przepaść, niczym dzieła nieidealne. Być może używał innych słów, ale tak właśnie go zapamiętałem.

Na wspomnianym szkoleniu dowiedzieliśmy się, że F sharp to nic nowego i już ponad 10 lat temu był to projekt oddziału Microsoft Research, jak nazwa wskazuje, odpowiedzialnego za badania nowych zjawisk paraprogramowalnych. Następnie powstała organizacja F# Software Foundation, a obecnie jest to projekt również mocno społecznościowy, czyli dobrze.

Odnoszę wrażenie, że temat ten nieco wrócił do łask ostatnimi laty, ponieważ słyszę, że to podejście jest wspominane coraz częściej w różnych podcastach i materiałach tematycznych. To zabawne, bo z tego co mi wiadomo była to dosyć silna tendencja w latach 70-tych ubiegłego wieku i potem to gdzieś zaginęło.
Czyżby programistyczny świat miał zatoczyć koło i po tych wszystkich językach, paradygmatach i chlubnych podejściach do tworzenia oprogramowania, mielibyśmy znów wrócić do sposobu myślenia z tamtych lat? Dlaczego nie! W końcu uczymy się na błędach.

Po krótkim wstępie do tego języka postanowiłem, że rozwinę ten temat na własną rękę. Myślę, że powstanie z tego mini seria, której założeniem będzie przejście przez podstawy. Postaram się skupić na wyjaśnieniem moich obserwacji na ten temat, czyli jak i dlaczego podejście funkcyjne różni się od „normalnego”, niezmiennie popularnego od lat – obiektowego.

Zaznaczam jednak, że na dzień dzisiejszy nie mam w tym temacie zielonego pojęcia, dlatego proszę o wybaczenie, jeżeli nie będzie to treść bogata merytorycznie. 🙂

Już niebawem pierwsze podejście.