Raganwald's… by Reg “raganwald” Braithwaite [PDF/iPad/Kindle]
Raganwald's Tooling for Turing Machines
Raganwald's Tooling for Turing Machines
Raganwald's Tooling for Turing Machines

About the Book

"Tooling for Turing Machines" takes the Allongé approach to tools: It begins with the simplest possible tools, and works its way up, step by step, illustrate the patterns and ideas that power modern software development toolchains.

In this book we'll build up from simple interpreters and compilers, to linters, plugins, package managers, and more. Like JavaScript Allongé, this book is not prescriptive, it's a book about thinking about tooling.

Tooling is about managing complexity. We need tooling for programs that are very big, for programs that have hard-to-understand coupling between the distinct parts. We use programming techniques to reduce those problems as much as possible, and then we use tooling to manage the problems we can’t eliminate in code.

The obvious question is, “A book about tooling is great, but why is it about tooling for Turing Machines? That doesn’t sound very practical!” Here’s why this book uses Turing Machines to talk about tooling in software development. To be useful for learning, example programs need to be simple enough to understand in first reading.

Programs that multiply two numbers, or emulate the game of life make excellent examples for teaching programming. But they aren’t complex enough to need tooling to manage. Unless... unless we write them in a language that makes such programs very big and difficult to understand.

Programs for Turing Machines grow very rapidly. Applying the rules for Conway’s Game of Life to a single cell can require hundreds of thousands of instructions and be very difficult to follow step-by-step. A program with hundreds of thousands of instructions that performs a well-understood task is actually perfect territory for discussing compilers, debuggers, linters, testing frameworks and every other kind of tooling that makes modern software development possible.

Thus, “Tooling for Turing Machines."

(Note: This is not the final cover. The image and title are subject to change.)

About the Author

Reg “raganwald” Braithwaite
Reg “raganwald” Braithwaite

When he's not shipping CoffeeScript, JavaScript, Ruby, and Java applications scaling out to millions of users, Reg "Raganwald" Braithwaite creates programming libraries such as Allong.es, Method Combinators, Katy, JQuery Combinators, YouAreDaChef, andand, and others.

He writes primarily about programming. Find out more on his  home page.

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms

Write and Publish on Leanpub

Authors and publishers use Leanpub to publish amazing in-progress and completed ebooks, just like this one. You can use Leanpub to write, publish and sell your book as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub