Essential complexity I agree, you cannot get rid of (hence the whole "essential" part). However, when you program, lots of non-essential complexity sneaks in. If you've only ever written code in one language, I bet you wouldn't even be able to notice what is essential vs non-essential.