HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

"I See What You Mean" by Peter Alvaro

Strange Loop Conference6 HN recommenders · recommended in 5 months, 2016-2019
YouTube
59K views · 11 years ago · talk · evergreen

Peter Alvaro's Strange Loop 2015 talk argues that query languages let you state what you mean, and applies that to distributed programming. It covers Datalog, Dedalus and the Bloom lineage for reasoning about distributed systems.

Recommended as a fantastic introduction to declarative and Datalog-based distributed systems and failure modeling.

Distributed systemsDatabases & storageProgramming language design#datalog#dedalus#bloom#querylanguages#distributedsystems

12 comments from Hacker News

@hencq2019 · in “Tinyland”

Very interesting. I'm curious what you'll come up with. The description also reminds me of Eve [1][2], which is itself based on Bloom [3][4]. [1] link [2] link [3] link [4] ▶ this video

CitesView on HN
@alexmingoia2019 · in “Ask HN: Datalog as the only language for web programming, logic and database”

Not anything I’d want to use. The closest is prolog. But at a higher level this is what Eve attempted to do. Eve was built using the semantics of Dedalus which is built from datalog. I highly recommend watching Peter Alvaro’s Strangeloop talk about creating Dedalus - it’s exactly the same train of thought you’re onto. ▶ this video

Strongly recommendsView on HN
@ComNik2019 · in “Introduction to Datalog”

If model-theoretic semantics and the various ways to slice, dice, and extend Datalog are interesting to you, then almost any talk by Peter Alvaro might be as well. In particular: ▶ this video

RecommendsView on HN
@iamwil2018 · in “Please do not attempt to simplify this code”

Your language example, and the burger example seems flipped. I assume you prefer artisan burgers, which means you like no language restrictions. Badly chosen restrictions are not good, we can all agree. But what do good restrictions look like? Back in the day, programmers prided themselves on being able to do their own memory management, and bristled at the idea of a compiler or the runtime doing it for them. Now, that's the exception, as most of the time, we don't think about memory management in most languages we program in. As time marches on, we'll find more of these restrictions that we all eventually agree are good practices, and the next generation of programmers will take it as a given in programming. As a look beyond functional programming restrictions, I encourage you to check out Peter Alvaro's talk on Distributed Systems. Here, he talks about how queries over distributed systems is really hard to reason about, because time is now relative--there's no central clock to measure time. However, if we restrict ourselves to a language whose queries cannot express negation, a lot of the hard stuff about distributed systems go away. ▶ this video

RecommendsView on HN
@justinmk2018 · in “Why We’re Building Flux, a New Data Scripting and Query Language”

The post doesn't mention datalog, but Dedalus/Bloom[1] makes a good case for why datalog is a good starting point for a data query language. 1. link 2. ▶ this video

CitesView on HN
@hammerandtongs2018 · in “Bloom Programming Language”

Of note Bloom is an ancestor of Eve. Bloom is a descendant of Datalog via Dedalus. "Dedalus: Datalog in Time and Space" link Here is Peter Alvaro's Strange Loop talk - ▶ this video It was a shame that most people, seemingly the Eve devs as well, seemed to focus on making Eve a language for easy programming for the masses. Thats a huge wall of a problem with a limited funding slope. I think if there had been more upfront work and focus on the distributed programming/database possibilities, that Eve would have founded an actual community to push it along. Eve as a language for doing business logic against say Kubernetes? As a language to wire up ETL processes? I think it could have found a niche that would have made it grow in power before trying to take on the mass market. Just a thought.

CitesView on HN
@svieira2018 · in “Ask HN: What is your favourite tech talk?”

Also: I see what you mean: ▶ this video and Applying Failure Testing Research @Netflix: link both by Peter Alvaro (second also includes Kolton Andrus) are thought-provoking looks at failure modeling in distributed systems.

RecommendsView on HN
@iamwil2018 · in “Eve: Programming designed for humans”

One of the more interesting parts (to me) about Eve wasn't the interactive programming or the literate programming, but that it included a database inside of the programming language. Most programming languages think of a database as a thing separate to it (I think Smalltalk is an exception). Hence, they needed language constructs to make it easier to talk to databases. As a result, Eve was inspired by the Bloom language being researched at Berkeley, which was in turn inspired by an old language called Datalog. In it, they take constraints of a declarative language (like SQL) and use it to make distributed computing a lot easier. "Our main data-structure was now a tree of tables. Rather than one big top-level function, we switched to a pipeline of functions. Each function pulled data out of the global store using a datalog query, ran some computation and wrote data back. Having less nesting reduced the impact of lexical scope and cursor passing. Using datalog allowed normalising the data store, avoiding all the issues that came from hierarchical models. At this point we realised we weren't building a functional language anymore. Most of the programs were just datalog queries on normalised tables with a little scalar computation in the middle. We were familiar with Bloom and realised that it fit our needs much better than the functional pidgin we had built so far - no lexical scoping, no data-structures, no explicit ordering. In late March we began work on a Bloom interpreter.

CitesView on HN
@vii2017 · in “RethinkDB Postmortem”

Slava (coffeemug) is very brave to introspect publicly and whenever I interacted with him, behaved with greatest integrity and kindness. Unfortunately, his hypothesis here that devtools are a tough market does not ring true. Making a business is always tough, making one that does something new is even tougher. There are many tools and database companies doing extraordinarily well, from Atlassian to Cloudera to Docker to Elastic. The difficulties that RethinkDB faced, as it pivoted from closed source MySQL DB backend, to open source independent database with a very cool update mechanism, were in my analysis much more mundane. Simply, RethinkDB was not easy. Here is a flavor of their thinking, when they rejected a REST HTTP interface: "The RethinkDB query language is so simple, expressive, and pleasant, that trying to make it available over HTTP would be quite difficult and a disservice to users." Developers have a big advantage when making devtools in that they are their own target market. They are, but only at the start of the project before they become embroiled in it. Ironically this feeling of making it for oneself leads to a mistaken urge to thrust complexity onto the target. As an infra engineer myself, this is something I always try to keep in mind -- I worked on a modelling language at a large company and I credit its success to its absolutely straightforward and accessible syntax, lack of dependencies and straightforward integration into workflows. The temptation is a

CitesView on HN
@roller2016 · in “Eve: Programming designed for humans”

For an introduction to Dedalus with less reading, Peter Alvaro's 2015 Strange Loop talk was fantastic. ▶ this video --- Edit: Actually Chris Granger gave an Eve talk at the same conference. It's interesting to see how Eve has evolved since. link

Strongly recommendsView on HN
@norswap2016 · in “Ask HN: What do you want to learn in 2016?”

I'd be more interested by pointers for Javascript front-end principles, because I feel like I'm lacking some background to understand much of what I'm encountering, whereas there's quite a bit about machine learning (which I haven't checked, still I have good hope it covers the fundamentals). Deduction systems: see ▶ this video for instance.

CitesView on HN
@jitl2016 · in “BOOM: Berkeley Orders of Magnitude – Declarative Languages And Systems”

This Strangeloop talk by Peter Alvaro is a good introduction to the thinking behind some of these systems: ▶ this video

RecommendsView on HN
"Datafun: a functional query language" by Michael Arntzenius42:31

"Datafun: a functional query language" by Michael Arntzenius

Strange Loop Conference
9K views • 9 years ago
"Unison: a new distributed programming language" by Paul Chiusano41:06

"Unison: a new distributed programming language" by Paul Chiusano

Strange Loop Conference
45K views • 7 years ago
"Transactions: myths, surprises and opportunities" by Martin Kleppmann41:08

"Transactions: myths, surprises and opportunities" by Martin Kleppmann

Strange Loop Conference
84K views • 11 years ago
"Liberating the Smalltalk lurking in C and Unix" by Stephen Kell40:56

"Liberating the Smalltalk lurking in C and Unix" by Stephen Kell

Strange Loop Conference
25K views • 12 years ago
"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)43:04

"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)

Strange Loop Conference
468K views • 4 years ago
"Turning the database inside out with Apache Samza" by Martin Kleppmann47:43

"Turning the database inside out with Apache Samza" by Martin Kleppmann

Strange Loop Conference
205K views • 12 years ago
"Programming Should Eat Itself" by Nada Amin47:41

"Programming Should Eat Itself" by Nada Amin

Strange Loop Conference
43K views • 12 years ago
OSCON 2010:  Rob Pike, "Public Static Void"12:31

OSCON 2010: Rob Pike, "Public Static Void"

O'Reilly
119K views • 16 years ago
"Production Prolog" by Michael Hendricks39:58

"Production Prolog" by Michael Hendricks

Strange Loop Conference
58K views • 12 years ago
The Language of the System - Rich Hickey1:02:50

The Language of the System - Rich Hickey

ClojureTV
174K views • 13 years ago
"Systems that run forever self-heal and scale" by Joe Armstrong (2013)1:10:23

"Systems that run forever self-heal and scale" by Joe Armstrong (2013)

Strange Loop Conference
85K views • 5 years ago
"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson40:20

"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson

Strange Loop Conference
55K views • 12 years ago
A Tour of Prolog56:03

A Tour of Prolog

The Power of Prolog
33K views • 4 years ago
RustLatam 2019 - Without Boats: Zero-Cost Async IO32:24

RustLatam 2019 - Without Boats: Zero-Cost Async IO

Rust Programming Language
55K views • 7 years ago
Four Languages from Forty Years Ago - Scott Wlaschin1:01:45

Four Languages from Forty Years Ago - Scott Wlaschin

NDC Conferences
33K views • 8 years ago
"Propositions as Types" by Philip Wadler42:43

"Propositions as Types" by Philip Wadler

Strange Loop Conference
143K views • 11 years ago
Leslie Lamport: Thinking Above the Code59:50

Leslie Lamport: Thinking Above the Code

Microsoft Research
403K views • 12 years ago
Zach Tellman - Everything Will Flow40:13

Zach Tellman - Everything Will Flow

ClojureTV
27K views • 11 years ago
Dconf 2014 Day 2 Keynote: The Last Thing D Needs -- Scott Meyers54:55

Dconf 2014 Day 2 Keynote: The Last Thing D Needs -- Scott Meyers

The D Language Foundation
19K views • 8 years ago
"Type-Driven Program Synthesis" by Nadia Polikarpova39:40

"Type-Driven Program Synthesis" by Nadia Polikarpova

Strange Loop Conference
15K views • 8 years ago