Functional Programming in JavaScript: How to improve your JavaScript programs using functional techniques
B**S
Manning really dropped the ball on this one
To preface, I have been programming for around 15 years, and writing JavaScript for a bit over 10 years.I loved Functional Programming in Scala (also published by Manning), so when I saw Functional Programming in JavaScript I snapped it up immediately. I am severely disappointed to see that Manning really dropped the ball on this one.In no particular order:- The code in the book is full of errors: typos, missing symbols, unhandled nulls, and so on. The author mixes syntaxes seemingly by accident (function vs. arrow, let vs. const vs. var, etc.).- Atencio's writing is imprecise at best, and gives the impression that he has a poor understanding of functional programming at worst. For example (from page 60): "Instead of creating new data structure classes to meet specific needs, [functional programming] uses common ones like arrays and applies a number of coarse-grained, higher-order operations that are agnostic to the underlying representation of the data"; he seems to be mixing his understanding of Algebraic Data Types with JavaScript's built-in data structures, and in the process totally ignoring how data structures are actually implemented in functional languages (for example, see Okasaki's excellent Purely Functional Data Structures).- Concepts are introduced and then mixed willy nilly: lenses are neither derived nor explained, Lodash and Ramda functions are mixed at will leading to totally unreadable code, imperative and functional and OO code is used interchangeably, and so on.- The code is littered with incomplete and unexplained references to and code from other languages (Java, SQL, Haskell, Scala, F#, etc.), which adds nothing to the author's explanations, and seems to tell the reader "Hey look! I Googled how to write a function in Haskell! That's what functional programming is right? Right?".- The author begins by talking about why Object Oriented code is bad, and then proceeds to use Lodash chains and ES6 classes throughout the book without explanation.- Recursion is barely explained, and the author does not mention that V8 has yet to implement tail call optimization, making most recursive algorithms useless in practice (he does mention trampolining in a side bar, but fails to discuss it at all); He talks about referential transparency, then proceeds to throw runtime exceptions throughout his examples; Monads are barely derived or discussed: the author seems to have simply copy+pasted Functor, Maybe, and Either from a FantasyLand implementation, added a few annotations, and called it done.Overall, this book was a real bummer. Manning should retract it, fix it, and re-release it. As is, it is not fit for publication.For anyone seeking a better book, I highly recommend Braithwaite's JavaScript Allonge, followed by Chiusano's excellent Functional Programming in Scala.
M**H
A really nice overview of some concepts related to functional programming in ...
A really nice overview of some concepts related to functional programming in JavaScript. I had already begun reading up on functional programming so I was familiar with some of the concepts but the examples and explanations helped solidify and clarify some areas for me, particularly around error handling and branching.
W**N
Sloppy but valuable
This book seems like it was rushed to market. It contains a lot of typos in the code, which can become confusing. The code is improperly indented in some places. Also, the author defines the Either monad and later calls functions on that monad that are missing in the definition. Overall it's more of an explanation of functional programming in JS, and less of a learning resource.That being said, the author is knowledgable about FP in JS. There's a lot of value to be had from reading this, especially since it's one of the only FP in JS books available. The code is not presented in a way that assists you in keeping track of it, so I would advise anyone reading it to keep a folder of all the code because it's referenced frequently later on in the book.
A**C
Good-bye forever for loops! Hello filter, map and reduce
This is the book which opened my eyes to functional concepts and makes javascript palatable, dare I say fun to write. Would buy again, would recommend to those who know javascript but do not know the existing and new functional components. Thanks Luis Atencio!
J**N
Five Stars
A coming of age for javascript, functional programming taught by example along with ramda and rxjs.
Y**E
Good book, but not for beginners.
Great book, though a little dry. I can't fault the author, really, as this is the most difficult type of JS to learn. Just make sure you understand the way JavaScript works before you take this dive.
W**Y
Good book & free e-book version included
Great book on the subject & comes with a free E-book (PDF, Kindle..etc) version.
B**N
Five Stars
Thank you.
E**A
C'est un bon livre, avec des textes explicatifs suffisant ...
C'est un bon livre, avec des textes explicatifs suffisant (pas trop verbeux comme avec O'Reilly). Les exemples viennent appuyer succintement le propos. J'ai découvert plusieurs notions importantes du Javascript contemporain (ECMAScript 6) et que j'utiliserai dans mes prochains projets.
M**E
Highly recommend for anyone who wants to write more functional javascript
I bought this book after reading RxJS in action by the same author. Highly recommend for anyone who wants to write more functional javascript.
H**A
Excellent reference for JS FP
I read many books about FP in JS, this is my best and favourite one. An excellent reference. Simple, clear, many examples and schemes.
TrustPilot
1 周前
3天前