Ocena:

Książka Michela Charpentiera na temat programowania funkcyjnego i współbieżnego jest chwalona za dokładne wprowadzenie do złożonych koncepcji, czyniąc je przystępnymi i wciągającymi, szczególnie dla osób nowych w temacie. Książka składa się z dwóch części, obejmujących podstawowe i zaawansowane tematy, z przykładami z życia wziętymi i ćwiczeniami ułatwiającymi zrozumienie.
Zalety:⬤ Doskonałe wprowadzenie do koncepcji programowania funkcyjnego.
⬤ Wciągające i jasne wyjaśnienia, które są dostępne dla czytelników na wszystkich poziomach zaawansowania.
⬤ Zawiera wiele rzeczywistych przykładów i ćwiczeń ułatwiających praktyczne zrozumienie.
⬤ Łączy podstawowe koncepcje programowania funkcyjnego z podstawami programowania współbieżnego.
⬤ Zapewnia solidne zrozumienie teoretycznych koncepcji, takich jak monady, poprzez praktyczne potrzeby.
⬤ Nie obejmuje zaawansowanych tematów, takich jak rozproszone algorytmy konsensusu.
⬤ Niektórzy czytelnicy mogą uznać ją za gęstą i wymagającą znacznego nakładu czasu, aby w pełni ją przeanalizować.
⬤ Główne przykłady są w języku Scala, co może stanowić wyzwanie dla programistów nieposługujących się tym językiem.
(na podstawie 4 opinii czytelników)
Functional and Concurrent Programming: Core Concepts and Features
Szybsze tworzenie wysokiej jakości kodu dzięki zaawansowanym technikom programowania funkcyjnego i współbieżnego.
Potężne funkcje programowania funkcjonalnego i współbieżnego obsługiwane przez nowoczesne języki mogą stanowić wyzwanie nawet dla doświadczonych programistów. Na przykład funkcje te mogą początkowo wydawać się onieśmielające dla programistów OOP z powodu niezrozumienia podstawowych koncepcji.
W książce Functional and Concurrent Programming: Core Concepts and Features Michel Charpentier przedstawia podstawowy zestaw potężnych konstrukcji języka programowania, które zostały zaimplementowane w różnych językach. Charpentier ilustruje kluczowe koncepcje licznymi małymi, ukierunkowanymi przykładami kodu, napisanymi w języku Scala, a także większymi studiami przypadków, od poziomu początkującego do średnio zaawansowanego. Celem tych przykładów i studiów przypadku jest zapewnienie gruntownego ugruntowania umiejętności programowania funkcjonalnego i współbieżnego, które będą przenoszone z języka na język - w tym najnowsze wcielenia Javy. Programiści początkujący w tych technikach zyskają pewność siebie i rozwiną głębsze zrozumienie koncepcji i abstrakcji, które stały się wszechobecne.
Kluczowe tematy obejmują: rekurencję i rekurencję ogona, dopasowywanie wzorców i algebraiczne typy danych, trwałe struktury i niezmienność, funkcje wyższego rzędu i wyrażenia lambda, leniwą ewaluację i strumienie, currying, zamknięcia, funkcjonalną obsługę błędów, wątki i pule wątków, atomowość, synchronizację, blokady i algorytmy bez blokad, kontrakty futures i obietnice oraz połączenie programowania funkcjonalnego i współbieżnego, które opiera się na nieblokujących transformacjach kontraktów futures za pomocą funkcji wyższego rzędu. Jako bonus, książka zawiera omówienie typowych strategii typowania stosowanych w nowoczesnych językach programowania, w tym wnioskowania o typie, podtypowania, polimorfizmu, klas typów, granic typów i wariancji typów.
Doświadczeni programiści - bez względu na to, jakiego języka używają - skorzystają z tych funkcjonalnych i współbieżnych funkcji języka programowania, aby tworzyć wysokiej jakości kod, który jest często szybszy do opracowania i łatwiejszy do zrozumienia, debugowania, optymalizacji i ewolucji.
⬤ Usuwa mistyfikację i onieśmielenie tradycyjnie kojarzone z programowaniem funkcyjnym i współbieżnym.
⬤ Podkreśla typowe pułapki i nieporozumienia, wprowadza zaawansowane konstrukcje i zapewnia praktyczne porady.
⬤ Wprowadza potężne konstrukcje dostępne w wielu nowoczesnych językach programowania.