Spec-ulation Keynote - Rich Hickey
Why Hacker News recommends it
HN returns to it in every versioning and API stability debate as a challenging, contrarian talk worth watching.
What it is
Rich Hickey's keynote on software versioning, arguing that breaking changes are the real problem and that libraries should only grow by providing more and requiring less. It critiques semantic versioning and ties into Clojure spec.
Recommended by 10 HN commenters across 9 different months, 2016 to 2024.
What Hacker News said
Strong rec sooheon · 2016-12 · on “Ok, let me explain: it’s going to be Angular 4.0”
This talk [1] by Rich Hickey seems more pertinent than ever. It's a contrarian stance on semver (which, almost as much as vc itself, is lauded as "the Right way" among developers). He definitely challenged my beliefs, it's likely to be worth your time too. [this video]
Strong rec smackay · 2017-08 · on “APIs as infrastructure: future-proofing Stripe with versioning”
Whenever an idea about API versioning springs into mind it is always worthwhile to watch Rich Hickey's Spec-ulation talk, [this video] for an alternative view of the world.
Strong rec finalfantasia · 2019-10 · on “Thank You, Guido”
To anyone who's interested in this topic, I strongly recommend this talk from Rich Hickey about "giving something to somebody that they can use and making a commitment ": Spec-ulation ( [this video] )
Recommends opvasger · 2017-01 · on “Is Semantic Versioning an Anti-Pattern?”
This seems inspired and perhaps even duplicated from what Rich Hickey recently said about Semantic Versioning (found here: [this video] ) I really enjoy how the package-manager for the Elm programming language automates semantic versioning by diffing your apis based on the type system. I think a bit part of the real criticism of SEMVER stems from this inability to either automate it or use it correctly. Hickey's discussion of the subject obviously has a lot more great points to it, and even when I don't agree, I can't help to enjoy listening :)
Recommends gavinpc · 2017-08 · on “Software Engineering ≠ Computer Science (2009)”
See this talk [0] about this addition to Clojure called core.spec [1]. I read the paper first, and it isn't until the end of the presentation that I understood how it was related to the feature at all. Basically, core.spec is a kind of formal verification tool designed to deal with the growth of software. It is not a type system, though it resembles one in some ways. The objective is to support comparisons between the signatures of a function at two different points and say, are these compatible? Is this a breaking change? You have to design for growth: make no assumptions about unspecified keys and always assume that later versions may return more than they used to. And so on. If you're a f
Recommends bad_user · 2017-09 · on “Project Jigsaw: Complete”
> I have a hard time being too impressed because more modern languages are doing this out of the gates The problem with Java is that it's an already established and very popular platform and it's been so for the past decade at least. When starting from scratch, it's easy to just throw it all away and start fresh, it's easy to fix mistakes that were made in the past. The irony though is that we still have a hard time learning from history. Just look at Go. Sometimes this industry feels like Groundhog Day, the movie. Also, no platform or language that I know of has gotten " modules " right, with Java being one of the platforms that has gotten closest to fixing the problem actually (by means of
Recommends _54qb · 2018-07 · on “Be Nice and Write Stable Code”
A very interesting talk by Rich Hikey (creator of Clojure) on the topic: [this video] To summarize, any change that offers more (as in, more fields in the output) and/or requires less (more of the original parameters made optional) is non-breaking. Edit: Of course, this is all under the assumption that the semantics of methods should never change. Instead of changing semantics, he proposes to just create a new method with a new name.
Recommends ruuda · 2019-02 · on “What's next for SemVer”
For an interesting take on versioning, see the Spec-ulation keynote by Rich Hickey [1]. It specifically touches upon SemVer being itself versioned. [1]: [this video]