We have a problem: there is a stunning number of programming technologies out there. There are silos of knowledge around these technologies and technical spaces. In fact, it is not even clear that this abundance can still be approached by computer scientists. Q: How can we possibly understand those technologies in an academically valid manner? A: By analogy, examples, and abstraction!