Good videos, with context.
Spec-ulation Keynote - Rich Hickey

Spec-ulation Keynote - Rich Hickey

ClojureTV
10 HN recommenders · discussed 2016–2024
Open YouTube ↗

About this video

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.

Why it appears in the archive

HN returns to it in every versioning and API stability debate as a challenging, contrarian talk worth watching.

AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.

From the Hacker News discussion

sooheon · 2016-12 · strong rec

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. [VIDEO]

Read original comment ↗
smackay · 2017-08 · strong rec

Whenever an idea about API versioning springs into mind it is always worthwhile to watch Rich Hickey's Spec-ulation talk, [VIDEO] for an alternative view of the world.

Read original comment ↗
finalfantasia · 2019-10 · strong rec

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 ( [VIDEO] )

Read original comment ↗
opvasger · 2017-01 · rec

This seems inspired and perhaps even duplicated from what Rich Hickey recently said about Semantic Versioning (found here: [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 :)

Read original comment ↗
gavinpc · 2017-08 · rec

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 fan of semver, be warned. [0] [VIDEO] [LINK] [1] [LINK]

Read original comment ↗
bad_user · 2017-09 · rec

> 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 OSGi). To see why modules are still a big problem and why we won't have a fix for the foreseeable future, I invite you to watch this keynote by Rich Hickey: [VIDEO]

Read original comment ↗
_54qb · 2018-07 · rec

A very interesting talk by Rich Hikey (creator of Clojure) on the topic: [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.

Read original comment ↗
ruuda · 2019-02 · rec

For an interesting take on versioning, see the Spec-ulation keynote by Rich Hickey [1]. It specifically touches upon SemVer being itself versioned. [1]: [VIDEO]

Read original comment ↗