This article is fantastic and helped improve my understanding of the topic. Something that I struggle with understanding is what level of abstraction crosses the line from “imperative” to “declarative”. I think the bar for “declarative” vs “imperative” will change as programming languages continue to improve their levels of abstraction.