"There are only two hard problems in Computer Science:
cache invalidation and naming things."
-- Phil Karlton
I'm in Java-land where we have, bar none, the best refactoring support in the world.
Unless you consider the settings files, documentation, publicly exposed APIs, existing customer installations, projects dependent on the current project, web services, Apache configurations, and XML soup.
But yeah, other than that, renaming something is a simple matter of alt-shift-R and typing the new name.
- Exposed APIs: I don't think the OP was talking about public APIs, which are admittedly much harder to change after the fact. There is plenty of code that is still easy to refactor underneath. That's why we have APIs, right?
- Existing installations: Barring API changes, what changes internally would affect your customers?
Renaming stuff is still really simple.
Java/Mac programmers out there?
It's definitely true that one of the largest problems facing computer science today is how to parallelize across cores/systems/networks. This problem may only be particularly hard because we're still used to thinking in terms of discrete processors each doing discrete tasks in sequence.