Hacker News new | ask | show | jobs
by rossdavidh 602 days ago
There are, as the saying goes, only two truly hard problems in programming:

1) naming things

2) cache invalidation

3) off-by-one errors

It was, I'm sure, named hastily while they were in the earliest stages of development, thinking primarily about what the code would do and not much about what to name it. Renaming things later was never the highest priority, and then eventually far too much was built on it to change things.

The problem is, if you actually spend a lot of time at the beginning thinking about the name, you may not do much better, because software architecture often turns out to be somewhat different than the original plan. Naming things at the beginning fails for the same reason detailed product specs at the beginning often fails, but unlike functionality, names are rarely changed later once the situation is better understood.

1 comments

> eventually far too much was built on it

Incumbents dilemma right?

Shouldnt it be possible to "Rip off the band-aid" when releasing, say Django-6.0 and rename things the way most people not already familiar with Django name things.

> names are rarely changed later

So refactoring APIs is really hard, especially when those are being consumed outside the organization... Shouldnt be an impossible task. After all, API versioning happen all the time internally...

Impossible, no. Worth it? The names are annoying, but not as annoying as the transition would.