Find Related products on Amazon

Shop on Amazon

The way we're thinking about breaking changes is silly

Published on: 2025-05-20 18:59:43

The way we're thinking about breaking changes is really silly 26 Mar, 2025 A major problem plaguing modern compilers is that they have no concept of time. When run on a codebase, a compiler treats it as if it had always been in the exact state it is in at that moment and updating a dependency literally just updates the code that is downloaded to your hard drive without modifying its call sites in any way. Any errors that occur as a result are treated as fundamental to your program and not as temporary annoyances caused by the update. In practice, what this means is that we essentially don't directly allow changing a function's type ever. The only reason non-breaking changes exist at all is because sometimes the same syntax that used to work with a previous instance of some function happens to also work with the new one. For example, if a function previously took an Int , modifying it to take an Int | null is not a breaking change because any value of type Int also implicitly has typ ... Read full article.