366: Functional First
16 July 2019
It’s a Coder Radio special as Mike and Wes dive into functional programming in the real world and share their tips for applying FP techniques in any language.
- Porting Redis to WebAssembly with Clang/WASI — In this post, we share our experience of porting an existing open-source software package — the data structure server Redis — to WebAssembly. While this is not the first time that Redis has been ported to Wasm (see this port by Sergey Rublev), it is the first time to our knowledge that the obtained port can be run deterministically.
- Solving Problems the Clojure Way - Rafal Dittwald — It is said that Clojure is a “functional” programming language; there’s also talk of “data-driven” programming. What are these things? Are they any good? Why are they good? In this talk, Rafal attempts to distill the particular blend of functional and data-driven programming that makes up “idiomatic Clojure”, clarify what it looks like in practise (with real-world examples), and reflect on how Clojure’s conventions came to be and how they continue to evolve.
- The Value of Values with Rich Hickey — In this keynote speech from JaxConf 2012, Rich Hickey, creator of Clojure and founder of Datomic gives an awesome analysis of the changing way we think about values.
- Clojure Made Simple by Rich Hickey — In the seven years following its initial release, Clojure has become a popular alternative language on the JVM, seeing production use at financial firms, major retailers, analytics companies, and startups large and small. It has done so while remaining decidedly alternative—eschewing object orientation for functional programming, C-derived syntax for code-as-data, static typing for dynamic typing, REPL-driven development, and so on. Underpinning these differences is a commitment to the principle that we should be building our systems out of fundamentally simpler materials. This session looks at what makes Clojure different and why.
- Effective Programs: 10 Years of Clojure by Rich Hickey
- sparklemotion/mechanize — Mechanize is a ruby library that makes automated web interaction easy.
- How to write idempotent Bash scripts — It happens a lot, you write a bash script and half way it exits due an error. You fix the error in your system and run the script again. But half of the steps in your scripts fail immediately because they were already applied to your system. To build resilient systems you need to write software that is idempotent.