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

Java gets this right. In general, breaking existing working software is a very bad idea and only should be done in extreme cases. One thing a lot of people over look is breaking changes make life easier for the few people who write the language, library, OS, database, etc. but make life much harder to the many people who maintain or use applications.


Ya and it's multiple magnitudes more people who maintain or use applications. Every single breakage is a massive massive waste of people's time.


>Every single breakage is a massive massive waste of people's time.

I think this applies to a ton of things. For instance, in 2015, my electricity provider switched from NSTAR to EverSource. For whatever reason they couldn't auto-migrate everyone's accounts. I ended up having to call them on the phone. Took maybe 20-30 minutes, I think.

According to https://en.wikipedia.org/wiki/NSTAR_(company) they had 1.4 million customers. Massive waste of time for a ton of people.

Societally, there should be a way to deal with this. Obviously not possible for real, but maybe it would be appropriate lock the execs and board of directors in a room that just continuously plays hold music for a week so their time is wasted as well.


This. This is why Windows has kept backwards compatibility by heroic efforts on the part of its devs: because they do actually have clients (US-DOD is the obvious one) who can refuse breaking updates entirely and have enough leverage to make that stick. They also know that users who do somehow leave the Windows desktop ecosystem aren't coming back.

C# managed a semi-breaking migration by having a library format that was compatible with old and new: "netstandard".


It's not a waste, you just aren't acknowledging the purpose of using people's time.

The alternative is the situation we have with C: no breaking changes, and decades later people are still dealing with the bugs this causes--a true waste of time.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: