Hacker News new | past | comments | ask | show | jobs | submit login

  "There are only two hard problems in Computer Science:
   cache invalidation and naming things."

   -- Phil Karlton
The article is absolutely touching a worthwhile subject but imho an important tip is missing: Don't be afraid of renaming things later. Modern editors make mass-renaming easy and it's almost impossible to get everything right from the start.

Modern editors make mass-renaming easy

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.

- Documentation: Is yours not auto-generated? We document our code pretty extensively here and have never had a renaming problem. Use the right tools and code flux won't ever bother you.

- 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.

Is Java renaming better than Objective C renaming? I would imagine few people can answer that question with any authority.

Java/Mac programmers out there?

The expensive IntelliJ editor makes refactoring a non-event.

Distributed algorithms that have to tolerate random machine failure and network partitions are incomparably harder than either of those.

I'm pretty sure that quote is a bit old.

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.

It's also somewhat tongue in cheek.

You're right, I think I'll put that in.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact