Cross-Eyed Event-Driven Programming

It turns out it’s not that difficult to build event-driven systems, as Dan North brilliantly points out. We’ve all seen them, we’ve all built them, to some extent, and still a lot of developers I’m in contact with - one of the most terrifying examples being myself - go cross-eyed whenever highly concurrent application development gets mentioned.

Actually, concurrency is not the problem, but the fact that it gets in the way of my code and my business processes is. Using Dan’s example, I would still like to see the Pricer, Persister and Notifier queues in there somewhere, but away from those three lines where the process gets explained in simple “do this, then that” kinds of terms. I could show those three lines to a business analyst and get them validated - they still look reasonably like a set of tasks, in English.

If those queues could be made totally invisible, just like our dear garbage collectors, our world would be so much better, but I don’t believe our current languages are or can be made mature enough to support that without some pretty tough changes, though. Who knows, maybe LISP had that figured out decades ago and I’m just assuming incorrectly based on incomplete information - please correct me if that’s the case.