Appendix B. Annotated Bibliography

Papers/Books/Blog Posts/Talks

Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, and Julie Sussman (MIT Press, 1996)

This book is among the most influential programming books ever written. Every page is a gem and every other sentence worthy of highlight. It moves very quickly through the material and requires focused attention and study—but it’s well worth the effort.

Extreme Programming Explained: Embrace Change by Kent Beck (Addison-Wesley, 1999)

An engaging book that elucidates the tenets of a revolution in programming.

Introduction to Functional Programming by Richard J. Bird and Philip Wadler (Prentice Hall, 1998)

I prefer the first edition.

Closure: The Definitive Guide by Michael Bolin (O’Reilly, 2010)

Bolin’s ideas on JavaScript pseudo-classical inheritance have been very influential to my own style.

JavaScript Allongé by Reginald Braithwaite (Leanpub, 2013)

I was fortunate enough to read an early draft of Reg’s great book and think it would make a nice follow-up to my book. Functional JavaScript turned up to 11.

JavaScript: The Good Parts by Douglas Crockford (O’Reilly, 2008)

Crockford’s book is like a well-written, beautifully shot horror movie. It’s the Suspiria of programming books. It’ll give you nightmares, but you won’t be able to look away.

An Introduction to Database Systems by C.J. Date (Addison-Wesley, 2003)

A must-read.

SQL and Relational Theory: How to Write Accurate SQL Code by C.J. Date (O’Reilly, 2011)

An amazing book for truly understanding the underpinnings of relational algebra and why the queries we write are so slow.

JavaScript: The Definitive Guide, 6th Edition by David Flanagan (O’Reilly, 2011)

The ultimate book on JavaScript in my opinion.

Domain Specific Languages by Martin Fowler (Addison-Wesley, 2010)

A profound writer and thinker on a profound topic.

Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (Addison-Wesley, 1995)

Much loved and derided, the original goal of the Gang of Four’s book, to find a common language for describing system building, was a worthy one.

Java Concurrency in Practice by Brian Goetz, et al. (Addison-Wesley, 2005)

Absolutely essential reading if you ever plan to write a pile of Java code.

On Lisp by Paul Graham (Prentice Hall, 1993)

Considered by many to be the definitive book on Lisp.

Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript by David Herman (Addison-Wesley, 2012)

Like JavaScript Allongé, Herman’s book would make a nice companion to my book.

The Joy of Clojure, Second edition by Chris Houser and Michael Fogus (Manning, 2013)

One of my goals in writing Functional JavaScript was to provide a smooth transition to understanding Joy without prior Clojure knowledge.

Hints for Computer System Design by Butler W. Lampson (Xeror Palo Alto Research Center, 1983)

Lampson has influenced much of modern programming even though you might never have heard his name.

ML for the Working Programmer, Second Edition by L.C. Paulson (Cambridge University Press, 1996)

What could you possibly learn about functional JavaScript by reading about ML? A lot, as it turns out.

Applicative High Order Programming: Standard ML in Practice by Stefan Sokolowski (Chapman & Hall Computing, 1991)

A long-forgotten gem.

JavaScript Patterns by Stoyan Stefanov (O’Reilly, 2010)

Not really patterns in the “design patterns” sense, but rather patterns of structure that you’ll see in JavaScript programs. A very nice read.

Common Lisp: A Gentle Introduction to Symbolic Computation by David S. Touretzky (Addison-Wesley/Benjamin Cummings, 1990)

What could you possibly learn about functional JavaScript by reading about Lisp? A lot it turns out.

Programming Scala by Dean Wampler and Alex Payne (O’Reilly, 2009)

A well-written book on Scala, available free online.

High Performance JavaScript by Nicolas Zakas (O’Reilly, 2010)

An essential read when it’s time to speed up your functional abstractions.

Presentations

“Pushing The Limits of Web Browsers…or Why Speed Matters” by Lars Bak

An invited keynote presentation at the 2012 Strange Loop conference. Bak is an engaging speaker who has been a driving force behind language-speed optimizations for decades.

“Programming with Values in Clojure” by Alan Dipert

A presentation given at the 2012 Clojure/West conference.

“The Next Mainstream Programming Language: A Game Developer’s Perspective” by Tim Sweeney

A presentation given at the Symposium on Principles of Programming Languages in 2006.

Blog Posts

Can functional programming be liberated from the von Neumann paradigm? by Conal Elliott

An exploration into how and why I/O corrupts the functional ideal that strives for declarativness.

Markdown by John Gruber

Markdown’s ubiquity is nigh.

Rich Hickey Q&A by Rich Hickey and Michael Fogus. Code Quarterly 2011.

Chock full of gems about programming, design, and languages and systems.

Monads are Tress with Grafting by Dan Piponi

The paper that helped me tremendously in understanding monads. YMMV.

Simple JavaScript Inheritance by John Resig

While I tend to dislike hierarchy building, Resig’s implementation is very clean and instructive.

Understanding Monads With JavaScript by Ionut G. Stan

Stan’s monad implementation was highly important for my own understanding of monads. Additionally, the actions implementation is derived from his code.

Execution in the Kingdom of Nouns by Steve Yegge

Yegge popularized the verbs vs nouns argument in OO vs functional programming. While his points are debatable, his imagery is stellar.

Maintainable JavaScript: Don’t modify objects you don’t own by Nicholas Zakas

Zakas has been thinking about good JavaScript style for a very long time.

Journal Articles

“Why functional programming matters” by John Hughes. The Computer Journal (1984)

The definitive treatise on the matter. While the examples given are sometimes unfortunate, the prose is well worth a read.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.22.74.3