In ages long past (2006), two great giants of software battled over the power of Test Driven Development (TDD) vs. the power of The Hammock (HDD).
Ron Jeffries, a programmer who wrote his first code under the mountain at Strategic Air Command in 1958, and was one of the founders of the Agile movement strived to show that programs and algorithms can be derived through consistent practice of TDD.
Peter Norvig, one time head of the Computational Sciences Division at Nasa Ames Research Center, and currently the director of research at Google fought to show that it was the deep up-front thinking from time spent within the Hammock that creates the better design.
The battle ground they chose was Sudoku; the number puzzle that became a short-lived fad in the early 2000s. Ron attempted to incrementally build a Sudoku solver one test case at a time following the practice of TDD. Peter climbed into the Hammock and built his solution using deep thinking and analysis.
Which of the two prevailed? What did they prove? Is TDD the answer? Or should programmers spend more time in the Hammock?
In this episode, we will replay that battle and we will create a Sudoku solver using functional programming in Clojure. We will use TDD. We will spend time in the Hammock. And we will answer the age-old questions that those two giants fought over. In the end, as we conclude our series on functional programming, we will at last know whether it is TDD or the Hammock that best drives the designs of algorithms.