3 ms·
Anyone maintaining software in the public domain needs to understand Torvald's first rule of kernel development. YOU DO NOT BREAK USERSPACE! Seriously, how hard
by potamic 2y ago
Anyone maintaining software in the public domain needs to understand Torvald's first rule of kernel development. YOU DO NOT BREAK USERSPACE! Seriously, how hard is it to understand? The collective impact across thousands of users will always be greater than any overhead in versioning. It's equivalent to willingly shipping a bug, and you would never do that, would you? Arguments about keeping the interface simple are weak because it only helps potential new users at the expense of existing users. As users, we need to encourage such norms by not adopting or advocating for software that has a history of breaking changes. Some communities are better at this than others, and the difference in developer experience is very evident for those of us who have seen both.
- Gigachad 2y agoThe argument for changing it was that the redis gem was meant to mirror functionality of the redis api method with the same name. What really blows my mind though is that they did it as a minor patch release. Combined with Ruby having no type checking and allowing nonsensical stuff like if statements that always return true.
- fabianholzer 2y agoWell, that is still no reason to introduce a breaking change in the existing interface. You introduce a new one, using a different signature and mark the old one as deprecated, and keep it around until as long as reasonably possible.
- exe34 2y ago> Anyone maintaining software in the public domain needs to understand Torvald's first rule of kernel development. YOU DO NOT BREAK USERSPACE! That's why they offer refunds!
- TeMPOraL 2y agoIndeed. Let's not forget the greatest invention in history of software development, unparalleled in how it improved productivity of software developers: THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.