We'll start with a hypothesis that the way we approach writing modern audio software and DSP will significantly change in the near future. In particular, the imperative, object oriented programming model that dominates modern audio software will be replaced by a more declarative, functional programming model.
We'll explore this hypothesis with some common approaches to writing audio DSP using C++, demonstrating what works and what doesn't. We'll note that every digital signal is a function of time, and often must be stateful: we need signals that change over time. Here, the object oriented model in C++ can be quite helpful, but carries with it complexity that limits our ability to compose larger processes from smaller processes, and engages the author with the "how" of the system when only the "what" really matters.