To follow up on my own question (about naming being the hardest thing), here's a supporting quote towards your argument:
"The only real difficulties in programming are cache invalidation and naming things. " -- Phil Karlton
Came across that quote as I was reading some style guidelines for Ruby. In case it's of any interest to you: https://github.com/bbatsov/ruby-style-guide#naming