Event-driven programming seems confusing to many when presented in the context of networking applications because it works with highly abstract concepts, and procedural multi-step tasks that rapidly lead to a proliferation of callbacks before the programmer writing those callbacks has a good feel for the paradigm.
GUI programmers, on the other hand, tend to find event-driven programming relatively straightforward because it starts from concrete objects and visible effects.
This talk will present a series of visual metaphors that explain the thinking process behind writing an event-driven program, starting from a very basic clickable button on a web page and working up to a multi-user, multi-process, interactive, event-driven Python program.
While this talk will use Twisted, it is not a Twisted tutorial; it will focus on general concepts and demystifying complex ideas. Where necessary some simplifying wrappers will be used to compress the implementation so that it is suitable for the duration of the talk.