Intro

The Nature of Code is a book that I kickstarted a few years ago and have been meaning to work through. It is a book aimed at exploring coding through the use of graphical and reactive experiments, things like cellular automata, physics, and neural nets. Many of the projects have a major graphical component to them which appeals to me as I have always been a visual learner and I like using the power of the computer to experiment with what you can do in a visual sense with algorithms.

The book uses Processing which is a dialect/library for Java that is aimed at removing a lot of the barriers involved in working with graphics on the computer. There is a web variant of it called Processing.js that is meant to allow you to use the same code you wrote with the original language except on the web. Because both of these languages eschew some of the things that I enjoy in a more "full-featured" language, and because they have some libraries that let you shortcut some of the learning that I specifically wanted to do, I decided to work through the book in Typescript.

Typescript is language designed by Microsoft, which is basically aimed at adding types to Javascript while being as compatible with it as possible. I wanted to (sort of) learn web development as a side-effect of working through the book, but I just really couldn't stand working with Javascript and all of its idiosyncrasies. Typescript gave me a decent development environment while still allowing me to deploy to the web.