Grokking Simplicity - Normand, Eric (Software developer) (Manning Publications, 2021)
In Video Editions the narrator reads the book while the content, figures, code listings, diagrams, and text appear on the screen. Like an audiobook that you can also watch as a video. "Java, JavaScript, C++, Python, and so many others are not purely functional languages, but have adopted ideas from functional programming that make them much easier to use. These simple ideas can be used in any programming language. This book shows you how to do that. It's an easy read, filled with practical examples and sidebars that explain the technical terms. I was drawn in, really enjoyed it, and learned a couple of new ideas that I am eager to apply in my own code. I hope you enjoy it, too!" From the Foreword by Guy Steele "Functional programming does not transfer peacefully from academia to business software. We aren't starting from scratch. We depend on runtimes and libraries outside our control. Our software interacts with many other systems. It is a long way from FP-land to legacy business software. Eric has undertaken this journey for us. He delved into functional programming, found its most helpful essences, and brought them to us where we are." From the Foreword by Jessica Kerr Distributed across servers, difficult to test, and resistant to modification--modern software is complex. Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they're easier to test and debug. about the technology Developers rightly fear the unintended complexity that infects most code. This book shows you how to write software that keeps complexity close to its inherent minimum. As you write software you should distinguish between code that alters your system's state, and code that does not. Once you learn to make that distinction, you can refactor much of your state-altering "actions" into stateless "calculations." Your software will be simpler. about the book The book also teaches you to solve the complex timing bugs that inevitably creep into asynchronous and multithreaded code. In advanced sections of the book you learn how composable abstractions help avoid repeating code and open up new levels of expressivity. what's inside Patterns for simpler code Powerful time modeling approaches to simplify asynchronous code How higher-order functions can make code reusable and composable about the audience For intermediate and advanced developers building complex software. Exercises, illustrations, self-assessments, and hands-on examples lock in each new idea. about the author Eric Normand is an expert software developer who has been an influential teacher of functional programming since 2007. This book is a must-read for taming complex software. One of the most engaging titles in years. Michael Aydinbas, EXXETAAG A great resource for learning functional thinking and the practical programming techniques derived from it. I can recommend to my colleagues with confidence. Joel Luukka, Geniem An indispensable guide to identifying and conquering complexity. Bryan Miller, Petrolitix NARRATED BY MARK THOMAS.