Abstracting Engineering Away

Should programmers call themselves engineers? Controversy aside, I think there is a real, meaningful distinction to be found: programmers and engineers deal with different levels of uncertainty. By uncertainty I mean: if you want to solve a problem, how well do you know what you are doing and how will you do it? For example, researchers know very little about what they are doing, and even less about how they'll do it.
Read more

Decomplecting Clojure

Clojure is a programming language that combines several concepts in a unique way. It is hard to understand the value of each concept, and they often blur together. As Rich Hickey, the creator of the language, suggests, taking a system apart is difficult but worth it. After "decomplecting" you end up with smaller pieces which are easier to reason about and use. This is not an introduction to the language but an attempt to explain its underpinnings.
Read more