Good videos, with context.
Constraints Liberate, Liberties Constrain — Runar Bjarnason

Constraints Liberate, Liberties Constrain — Runar Bjarnason

Scala World
5 HN recommenders · discussed 2016–2025
Open YouTube ↗

About this video

Runar Bjarnason's Scala World talk argues that restraint and precision in components beat power and flexibility. Constraints on parts make them easier to compose into systems.

Why it appears in the archive

HN recommends it as a talk that changes how you think about system design, and links it whenever constraints, abstraction or least power come up.

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

From the Hacker News discussion

cinnamonheart · 2018-04 · strong rec

I find Runar Bjarnason's talks to be interesting; one of my favourites is 'Constraints Liberate, Liberties Constrain': [VIDEO] The essence of it is that constraints actually allow for easier composition and more modularity. It had a real impact on the way I think about the design of systems.

Read original comment ↗
harveywi · 2016-06 · rec

> Constraints provide freedom. For a great video on this, see Runar Bjarnason's talk "Constraints Liberate, Liberties Constrain" ( [VIDEO] ).

Read original comment ↗
clhodapp · 2019-07 · rec

Constraints on the user free the platform. Freedoms for the user constrain the platform. If you are interested in someone pontificating about this at length, see [VIDEO]

Read original comment ↗
MaxBarraclough · 2024-04 · rec

This reminds me of a great talk, Constraints Liberate, Liberties Constrain , by Runar Bjarnason. [0] Useful abstractions necessarily impose restrictions compared to a free-form 'all powerful' approach, but abstractions make it easier to perform/compose meaningful operations. A compiler can reason about an AST far more easily than it can reason about a machine-code sequence, for instance. A compiler typically converts from AST to machine-code pretty late in the game, as you want to take advantage of the utility of the abstraction, not the unlimited power of directly working with instructions. [0] [VIDEO]

Read original comment ↗
MaxBarraclough · 2024-04 · rec

That's a great quote. This topic turned up a couple of weeks ago in another thread. [0] The excellent talk Constraints Liberate, Liberties Constrain , by Runar Bjarnason, gets at the same point, and even uses this same Dijkstra quote. [1] [0] [LINK] [1] [VIDEO] (this takes you right to the Dijkstra quote)

Read original comment ↗
solidninja · 2024-06 · rec

This reminds me of the excellent talk "Constraints Liberate, Liberties Constrain" [VIDEO] that is more about doing the programming rather than planning it as in the article, but with a similar approach.

Read original comment ↗
bjz_ · 2016-07 · reference

Came across this Dijkstra quote via [VIDEO] > The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise By taking away all the non-essential things and leaving only on what you need, it allows you to truly understand the structures that you are studying. Definitely rings true when I work in ML/Haskell-style type systems. Easier said than done convincing the students though...

Read original comment ↗
jackcviers3 · 2019-11 · reference

I thought foreign keys were necessary for the consistency part of ACID compliance. Once you remove the integrity constraint, the database cannot guarantee consistency, even with isolation and atomicity. Sure, removing the constraint will get you a huge burst in performance, but now you are in charge of guaranteeing consistency outside of transactions in a distributed system involving at least one client and one server. That's a tall order. As Runar Bjarnson put it: "Constraints liberate, liberties constrain,"[1]. If you give something the freedom to be inconsistent at any extreme scale, Murphy's law requires that anything that can go wrong, will go wrong. It is hubris to think that the average developer who hasn't spent years becoming a consistency expert is going to be able to guarantee that data won't become corrupted better than the engineers that build and maintain and acacademics that study rdbms systems full-time.Even experts get this wrong all the time [2]. To all junior devs out there, until you know you need to abandon a guarantee available to you in a given system, exhaust every other possible option. 1. [VIDEO] 2. [LINK]

Read original comment ↗