🔖 Semantic Versioning is a terrible mistake [it encourages breaking API changes: “If you need to make a breaking change to your API, it means you screwed up”] | The Reinvigorated Programmer reprog.wordpress.com/2023/12/2 #BookmarkShare

@dltj hard disagree (like the first couple of commenters) - "SemVer" absolutely does not encourage breaking API changes - IMO/IME, it just documents them in a clearly visible way. Poor developer culture ("move fast and break things" or "everybody is a developer") is what encourages breaking API changes.

@jimnauer by providing a mechanism to announce breaking changes, breaking changes are encouraged. If it was harder for downstream developers to know when breaking API changes happen, the creators would be more careful, lest their software be seen in a more unkind light.

It is cultural, too. The library project @mike references in his post has not been able to cultivate careful backwards compatibility in a trade off for faster feature development.

Follow

@dltj
That *semver* is providing a novel way of declaring incompatibility is a pretty wild claim, because not only is there also release notes, the practice of putting semver-like version info in file names is really old, dating back to at least the mid 80[1] but probably much older than that.

No, I think this is a JavaScript dev with Stockholm syndrome who blames the messenger that reveals the reality of how sloppy the JS dev culture is. This is the dev culture that had thousands of build and deployment processes fall over because left-pad was removed; to blame aggressive breaking on semver is silly.

[1] This publication from 2000 references a text from 1987 that talks about naming libraries with major and minor versions, defining "major" in basically the semver way: usenix.org/legacy/publications
@jimnauer @mike

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.