Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you make a good code and build a bunch of things on top of it, but find out it wasn’t matched to a use case and need to move to a new architecture, that good code is going to be a pain to remove or change. “Good” shouldn’t be conflated with “everywhere”. A lot of bad code is everywhere because fixing it seems too painful.

The linked list module may have a poor interface or an awful bug with workaround. But you can’t change it until the next version of the language in 3 years because everyone relies on it. It’s not good, just a dependency. It needs to change and can’t. I want devs to embrace that changing heavily-relied upon things can be good even if it’s painful.



If you switch from int to float, you don’t “refactor” or “extend” the int type to be a float. You build a new system and switch over.

If you switch from mergesort to quicksort you don’t “refactor” or “extend” mergesort. You write quicksort and replace the calls of mergesort to quicksort.




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

Search: