Skip to content
0:00 / 0:00

#richhickey#clojure#datomic

The Language of the System - Rich Hickey

ClojureTV

111K subscribers • 135 videos on Hallway

YouTube
  • Recommended by 12 people: 10 on Hacker News, 1 in engineering communities and 1 curated list.
  • A classic. People kept recommending it from 2013 to 2022.
  • Presented by Rich Hickey, creator of Clojure
  • An opinion. It argues one side of a question engineers disagree on.

Advanced. Deep dive for people who know the field.

174K views13 years ago12 recommendations

Software designDistributed systemsSoftware architectureFunctional programmingAPI design

Rich Hickey discusses how to design software systems holistically, focusing on data, queues, names, and the interfaces between programs.

Introduction The Language Bubble Language + Runtime The Stacks Say What? Names Read Between the Lines The Revenge of Objects? Welcome to the Machine Avoiding Objects Transform I'm a Mover Memory Datomic on Riak Failure Systems are Dynamic Holistic Approach Heterogeneous Approach Simple System Services Whither the Interface? Programs - Systems Systems - Programs Call to Action

Why it's here

12 people recommend this

What people say. Engineers frequently recommend this talk for its profound insights into system design, data representation, and simplicity.

u/ivank_in r/Clojure • Recommends

Rich Hickey - The Language of the System

divs1210on Hacker News • Recommends

On “Avout: Distributed State in Clojure”

I came across this after watching Rich Hickey's The Language of The System 1, and it has really changed the way I look at distributed persistent storage. Any thoughts? 1 link to this video

elamjeon Hacker News • Recommends

On “Ask HN: Programming talks that made something click for you?”

Simple Made Easy ( link ) The Language of the System ( link to this video ) The Value of Values ( link ) All by Rich Hickey (Clojure creator) - strongest programming speaker I've found to date.

programming-talkscurated list on GitHubRecommends

Under “Software Development”

The Language of the System 01:02:50 by **Rich Hickey** (2013)

hueypon Hacker News • Recommends

On “Queues and databases”

…very single message on your queue and have enough information to resend them. Each message could have its own resend (SLA) semantics. Amazon Simple Workflows is an implementation of this pattern: link . I've never used SWF but the docs are great food for thought. edit Also might be of interest to watch Rich Hickey's 'Language of the System'. ( link to this video -- there are a few versions of this talk, not sure if this is the exact viewing I saw). The talk is not really about queues, but he tries to break things up a bit. You need a data store, you need a queue, etc. As soon as a queue tries to have durable messages it is becoming a database and has all of the problems a database has to deal with.…

nickikon Hacker News • Recommends

On “A farewell note to a programming language”

…map for many people: Are We There Yet? - Rich Hickey www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey - Simple Made Easy - Rich Hickey - link - Simplicity Ain't Easy - Stuart Halloway - link - Ousterhout's Dichotomy Isn't (Part 2 of the Simplicity/Power/Focus Series) - Stuart Halloway - link - The Language of the System - Rich Hickey link to this video - Hammock Driven Development - Rich Hickey link In addition to these, there are many talk that are about people trying to run with these ideas. Datomic is a example of taking these ideas to the max, it really standas as a nice example. You can find others in talks by David Nolan for example, but there are tons of applied talks. - The Desi…

oskarthon Hacker News • Recommends

On “Transit: JSON Data Interchange Format”

The downvotes are because it comes across as a shallow, middlebrow dismissal. An interesting and useful criticism would first engage with the strongest arguments of Rich Hickey (creator of Transit and edn). If you find something in his Language of the System talk ( link to this video ) that you either (a) disagree with (b) think XML solves already, I and many others would certainly be interested in having that conversation. Note that this doesn't mean the exposition of "Why Transit" can't be better, but that calls for constructive criticism on how explain the ideas better, or a question made in qood faith. What it doesn't call for is a hostile reply saying in effect "pff, already been done already, sto…

carljvon Hacker News • Recommends

On “Effective Programs: 10 Years of Clojure”

I love this talk, but it does throw out a lot of complicated ideas somewhat loosely, so I get why reactions and interpretations are all over the place. I think a good companion to understanding this better is Rich's talk on "The Language of the System" ( link to this video ). I interpret his overarching thesis as this: Most "situated" programs are in the business of processing information according to complex and changing rules, in cooperation with other programs (i.e., a system). Many languages, though, are overly-concerned with how they represent data internally: classes, algebraic types, etc. This "parochialism", he calls it and "concretion" about how data aggregates should work, make them hard to a…

dunk010on Hacker News • Recommends

On “Why We’re Switching to gRPC”

Rich Hickey, the creator of Clojure, gave a talk with some very relevant points in this space (The Language of the System): link to this video

ISO-morphismon Hacker News • Recommends

On “Keep your source code SIMPLE”

> Clojure with the same exact constructs represented with more C-like syntax would, at the level the presentation speaks to, allow the same level of simplicity. I don't think this is true. I think it would be easier for "most people," but definitely not simpler . Easy meaning close at hand, simple meaning one strand, one braid, independent, less context necessary. Clojure syntax is the AST of the program, right there in front of you, in literal notation. There are fewer special cases, fewer moving parts interacting. C syntax requires spinning up a virtual machine in your mind and executing multiple statements. C is easier because we've already spent the time and effort to familiarize ourselv…

jmiskovicon Hacker News • Recommends

On “Clojure: A Lisp that wants to spread”

I would say Clojure more than substantial returns of invested time. Not just the language itself, but also the wider approach to software composition, feature accretion vs backward compatibility, schema'd dynamic typing seem benefictial no matter what your development tools you use. Maybe check out the talks below and see if they don't enRich you as software engineer. link to this video The Language of the System link Design, Composition, and Performance link Spec-ulation link Maybe Not

travisjungrothon Hacker News • Recommends

On “Ask HN: Who wants to collaborate?”

EDN has some really good ideas in it. Here's the main spec: link The Learn X in Y Minutes: link A related talk by Rich Hickey that I think you'd find interesting: link to this video For a schema, I'd start with what CUE has done. The idea of types that constrain down as a lattice + a separate default path really resonates with me. link

u/dustingetzin r/Clojure • Mentions

Clojure's Big Picture: EDN unifies database schema, MIME type, network prototol, and data structure Thing | What | Clojure/Cognitect stack | javascript/java/postgres stack ---|---|---|--- Schema | how values are stored in a database | Datomic schema is a query-friendly spec for composite/graph EDN values | Postgres schema is tables, no values (everything mutable), no composite types or graphs (must deal with impedance mismatch in application by hand or with ORM); MIME type | how values are encoded for transmission over network | Transit streams EDN values over network in portable way and efficiently | application/JSON—not streamy, fixed set of primitives (e.g. no dates) application network…

u/lins05in r/Clojure • Mentions

Any mature open source system to learn about writing a system in clojure? Watching the talk "The Language of System" (link to this video inspired me to learn practical clojure programming, by studying the source code of some open source systems written in clojure. My criteria for such systems are: * Not a library, not a framework, not a command line tool - but a full-fledged system or application. This is because designing/implementing a system has many unique considerations, e.g. a command line tool can simply abort on error, but a real-world system has to bear with it. * stands to the tests of real world usage (no research/toy projects even if it has lots stars on github) For other languages it'…

zachroseon Hacker News • Mentions

On “Show HN: AdminJS, the Backend-Agnostic Administration Framework”

…ge. What today would look like "Guest: 'Pitt, Brad', Party: '43'", tomorrow could be be "Guest: 'Pitt, Brad', Party: 'Pitt-Jolie'" with a link to '/parties/43'. I sense that developers (or at least Crockford2?) don't want JSON to become overloaded with XML equivalents like XML schemas and metaschemas and XSLT...but think of what we could do! 1 link to this video 2 link ?…

escherizeon Hacker News • Mentions

On “How to Design Classes [pdf]”

Is there a functional-programming-first curriculum? Even though knowing OOP is important (if even just for the vocabulary), I wonder if a lot of pain could be sidestepped by talking about data as a separate concern than ADTs, and state as a fact rather than a place. 1 1 link to this video