The Eve of Abstraction

How might programming language design break free from its long history of shuffling syntax around disturbingly similar semantics? Here are two folks reporting the related steps they have made on their escape. site

Excuse my notes.

YOUTUBE 5V1ynVyud4M Published on Sep 28, 2015

Tests with people showed trouble with scope.


Excel and relational db are useful while un-scoped.

write the click to increment program.

fast when everything is an operation on a b-tree. (like hypercard)

Bloom version of Hadoop.

Executable specifications are a lot like programming. (but Cocoa Worlds made this work)

Outside world is just another table, like sms outbox, input in request tables.

Parent-ancestor relationship

pub-sub to tables in remote locations

increment in 30 seconds ... represent count with table size

triangle of friends, like cypher in neo4j

YOUTUBE R2Aa4PivG0g Published on Sep 26, 2015

writers vs users straddling abstraction boundary

model-theoretic semantics for distributed systems? resilient to failure and tolerant of loose ordering.

given what I know, what follows transitively


web server is join of db with req stream

lineage and derivation => debugging

self reference and negation required for paradoxes ... this sentence is false.

distributed requires: time varying state, non-determinism. bad: x=x+1, snd(); rec()

reify time, a relativist model

knowledge is local and ephemeral, computation is rendezvous

deductive = instantaneous, inductive = deferred, async = uncertain (arbitrary, nondeterministic)

state is induction in time: rendezvous

CALM theorem

dedalus => bloom, blazes, lineage-driven fault injection, eve

committing acts of abstraction: abstractions leak, deal with it


Both speakers are working on challenging problems without known solutions. I compare this to my own work. I'm building a modern version of wiki which was and remains extremely simple.

I retain from the original: * the page remains what you got when you clicked * there is a text based markup behind what you see

Things I've added: * collaborative links * cooperating elements on pages

I've implemented this last thing, cooperation, many different ways. These talks encourage me to try more.