My Language of Choice “What’s your favorite programming language, Dan?” “Oh, definitely C++” … Am I a masochist? Well, if I am,
Do You Really Need Dynamic Dispatch?
Introduction Polymorphism through dynamic dispatch (a base class, plus multiple subclasses that each override a base class method) is the standard way
What Type Systems Are and Are Not
Introduction Programmers are typically taught to think of the type system in languages (particularly object-oriented languages) as being a way to express
Examples Aren’t Specifications
“Specification by Example” is a particular implementation strategy of Behavior-Driven Development. The central justification, as far as I can tell, is expressed
What Is “Agile” Anyway?
Introduction What is “agile” software development? Well, more than anything, it’s definitely not waterfall. At least in the case in this age
Tests vs. Test Specifications
When you first get introduced to the idea of test driven development, it may seem strange that tests become such a central
Massive View Controller
Massive View Controller The Model-View-Controller (MVC) set of design patterns for GUI application development has devolved into what is derisively called “Massive
Abstraction Layers
Over time, the software we write continues to increase its sophistication. We are solving more and more advanced problems, expressing the solution

