This stuff really isn't that hard once it is described well (which doesn't need to involve any simplification). I can't wait to see what happens to the programming community once these notions are embraced with the love and respect that it deserves. If anything is going to make a big dent in the field, on a 5-10 year horizon, it'll be this. What we need to do is not to think of it (modern concepts in pure mathematics, especially from algebra) as something separate from programming, but to allow it to mix and skew the fundamental language that we use to reason about coding.