Jaki język funkcyjny?

3
szafran98 napisał(a):

@Saalin: Tak, jest tak jak mówisz. Nie planuję zmieniać języka, jestem ciekawy jak się pisze funkcyjnie, a podobno można z tego wynieść wiedzę, która pomoże w pracy w TS/JS.

No troche tak.

Jak widze takie cos https://www.linkedin.com/posts/coryhouse_just-learned-about-the-groupby-feature-in-activity-6909627301089419264-QB0I to troche czuje sie zazenowany. Tak jakby dopiero co kolo odkryli w tym JSie.

Chociaz teoretycznie JSowcy o funkcjach pierwszego rzedu to powinni miec akurat ponadprzecietne pojecie bo duzo tego uzywaja.

0

Jak nie planujesz pracować z tym to polecam Elixira, jest mega przyjemny i jakby rynek pracy w Polsce wyglądał inaczej, to pewnie na niego bym się przeniósł.

0
Aventus napisał(a):

No i to jest właśnie ten problem. Ja chcę się uczyć na rzeczywistych przykładach, np. funkcyjnie pisząc serwis webowy. Nie pisząc krótkie przykłady na kilka(naście ) linii kodu.

Zastanawiam się, czy ma to sens?

Czy w nauce programowania funkcyjnego nie jest tak, że zanim się będzie umiało coś porządnie napisać, to trzeba ten sam kod przepisywać wiele razy?

Napisze się coś większego w Haskellu, potem w nauce dojdzie się do np. monad i się zorientuje, że w 10 miejscach należało napisać własne monady a w 12 innych wykorzystać jakieś monady z biblioteki. I teraz co dalej? Nauka wymagałaby przepisania tego, co się już napisało tylko że z użyciem monad, ale z drugiej strony ukończenie projektu wymagałoby nie przepisywania niczego, tylko kontynuowania pracy na kodzie takim, jaki jest.

-- To jest pytanie, a nie twierdzenie: sam się zastanawiam nad wykorzystaniem Haskella jednoczesnie do nauki i do pisania czegoś i mam przed tym opory z powodów wymienionych wyżej

1

@YetAnohterone: ja myślę że ludzie trochę nad-interpretują to co ja napisałem. Mi nie chodzi o naukę w stylu "Napisz serwis webowych w Haskell/F#/Clojure/cokolwiek a przy okazji naucz się tego języka". Chodzi mi po prostu o coś dzięki czemu uczysz się tego języka, uczysz się myślenia i programowania funkcyjnego, ale koniec końców spinasz to wszystko w jedną całość, przy okazji ucząc się dodatkowo jak sobie radzić z pewnymi wyzwaniami które pojawiają się dopiero kiedy te wszystkie wyrwane z kontekstu "klocki" użyje się w kontekście działającego systemu- np. wymienione wcześniej efekty uboczne, których na pewnym etapie uniknąć się nie da.

0

Szukam materiałów do nauki Haskella. Nie znalazłem na forum nic na ten temat, ale znalazłem taką książkę Haskell programming from first principles, 2000 stron. Dobra na start? Jeśli nie, to co innego polecacie?

3

Jako łagodny wstęp do Haskella i intuicyjny wstęp do FP (gdzie wyjaśniamy dlaczego coś jest tak a tak) polecam: https://www.amazon.com/Programming-Haskell-Graham-Hutton/dp/1316626229
Jedna z niewielu książek o programowaniu którą posiadam w wersji papierowej.

4
stivens napisał(a):

Chociaz teoretycznie JSowcy o funkcjach pierwszego rzedu to powinni miec akurat ponadprzecietne pojecie bo duzo tego uzywaja.

Codzienne picie flaszki wódki nie czyni z nikogo eksperta od chemii organicznej.

0

Scali warto się nauczyć w jakimś stopniu, żeby móc użyć Gatlinga, świetnego frameworka do perf testów.

0

Niestety z tej ankiety wychodzi że będą w niej wygrywać głównie najpopularniejsze języki funkcyjne.

4

Języki funkcyjne to nisza.

Kiedyś prosiłem o zdefiniowanie słowa nisza bo IMHO Scala już niszowa nie jest jak się patrzy po ofertach pracy w Polsce. Z drugiej strony pewnie większość projektów Scalowych w Polsce to nie jest FP tylko Akka lub klepanie jobów Sparkowych

Niestety z tej ankiety wychodzi że będą w niej wygrywać głównie najpopularniejsze języki funkcyjne.

Scala jest sporo popularniejsza od Haskella (patrząc po ogłoszeniach o pracę) a jednak przegrała. Poza tym nie ma tu (podobno) najpopularniejszego języka funkcyjnego czyli Swifta

BTW W ankiecie oczywiście zaznaczyłem Haskella bo to czysto funkcyjny język z największą ilością materiałów. W językach hybrydowych jak Scala za łatwo można kantować. Łatwo można by Seniorem Scali i o FP nie wiedzieć nic

0

jak nauka FP? Ja powoli zbliżam się do tego że chyba pora nauczyć się co to GADT XD

2

@KamilAdam: trochę Elixira się uczyłem, ale po przeanalizowaniu jego przypadków użycia i dodając jego dynamiczne typowanie, zrezygnowałem.
Elma oraz Scali kiedyś liznąłem i uznałem, że jedynym sensownym wyborem dla mnie będzie język czysto funkcyjny, więc raczej logicznym wyborem jest Haskell.

Jednak na tym nie skończyłem. Następnie całe to poszukiwanie i sprawdzanie języków wyszło poza języki stawiające na FP. Zaświeciła mi się lampka w głowie, że przecież używam Maca i zacząłem się przyglądać Swiftowi, który w moim mniemaniu wygląda na całkiem przyjemny język, ale jednak ograniczony do ekosystemu Appla. Postanowiłem, że sprawdzę wychwalanego tu na forum i w wielu miejscach w sieci — Rusta. No i Rust zdecydowanie mi się spodobał, więc wyszedłem poza ramy założonego tematu.

Cały ten temat, to było poszukiwanie języka i jego ekosystemu, które to pozwolą mi poszerzyć horyzonty, dadzą inne spojrzenie na programowanie jeszcze niezbyt doświadczonemu programiście, czyli mi XD
Z każdej takiej dyskusji dużo bardziej doświadczonych userów staram się coś wyciągnąć, więc jak zawsze biję pokłony za merytoryczne odpowiedzi.

Na obecną chwilę interesuje mnie Rust, potem na pewno rzetelnie sprawdzę Swifta, a języki czysto funkcyjne tj. Haskell, to na ten moment pieśń przyszłości, ale na pewno nie wywieszam białej flagi.

0

Jak funkcyjne to raczej wypada przynajmniej liznąć Common Lisp, jak już bardzo się nie chce lizać CS to przynajmniej Scheme.

0

W sumie to i język C++ jest funkcyjny.
https://helion.pl/ksiazki/programowanie-funkcyjne-w-jezyku-c-tworzenie-lepszych-aplikacji-ivan-cukic,profun.htm#format/d
Wprowadzają nowe funkcje jak auto age { 23 }; które są nieprzydatne i szybciej jest wpisać znak równości = niż {}. Dlaczego nie usuną tego że trzeba wprowadzać na górze deklarację do funkcji gdy funkcja jest poniżej głównej funkcji main. W nowoczesnych językach możesz napisać funkcję gdzie chcesz. Dodali tyle nieprzydatnych rzeczy do tego C++, a to co potrzebne pominęli.

Polska była kiedyś potęgą w opracowywaniu własnych języków programowania.
https://gadzetomania.pl/niesamowity-zapomniany-jezyk-programowania-stworzyli-go-polacy-wyprzedzajac-epoke-o-40-lat,6705392508401793a

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.