So, now it's time to get into the real guts of the Spacewar game. The game logic. There are quite a few fun and interesting topics we're going to cover.
These are a few of the questions I want to address:
1- There are 8,000 lines of code and 777 unit tests. What kind of coverage does that represent? What was the testing strategy for GUI vs. Game Logic?
2- How does Clojure/spec help us keep our data types under control in a dynamically typed language? Are dynamically typed functional languages inherently weaker than statically typed functional languages? Or are there advantages to dynamic typing?
3- How do you manage to update complex state when you aren't allowed to change the state of any variables? Does this represent extra work?
4- Lazy evaluation is a powerful technique, but what kind of trouble can it get you into?
5- Where does this program go from here?
Prepare yourself for a really interesting deep technical dive as we walk through Spacewar -- Game Logic.