Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Life Beyond The Illusion Of Present

Life Beyond The Illusion Of Present

The idea of the present is an illusion. Everything we see, hear and feel is just an echo from the past. But this illusion has influenced us and the way we view the world in so many ways; from Newton’s physics with a linearly progressing timeline accruing absolute knowledge along the way to the von Neumann machine with its total ordering of instructions updating mutable state with full control of the “present”. But unfortunately this is not how the world works. There is no present, all we have is facts derived from the merging of multiple pasts. The truth is closer to Einstein’s physics where everything is relative to one’s perspective.

As developers we need to wake up and break free from the perceived reality of living in a single globally consistent present. The advent of multicore and cloud computing architectures meant that most applications today are distributed systems—multiple cores separated by the memory bus or multiple nodes separated by the network—which puts a harsh end to this illusion. Facts travel at the speed of light (at best), which makes the distinction between past and perceived present even more apparent in a distributed system where latency is higher and where facts (messages) can get lost. 

Jonas Bonér

June 10, 2015
Tweet

More Decks by Jonas Bonér

Other Decks in Programming

Transcript

  1. WE NEED TO EXPLICITLY MODEL THE LOCAL PRESENT AS FACTS

    DERIVED FROM THE MERGING OF MULTIPLE CONCURRENT PASTS
  2. "If a tree falls in a forest and no one

    is around to hear it, does it make a sound?" — Charles Riborg Mann
  3. ...AND IF WE ARE WRONG, WE TAKE COMPENSATING ACTION APOLOGY-ORIENTED

    PROGRAMMING - PAT HELLAND (IN MEMORIES, GUESSES, AND APOLOGIES)
  4. The bottom line: WE CAN'T FORCE THE WORLD INTO A

    SINGLE GLOBALLY CONSISTENT PRESENT
  5. "A Fact is something that truly exists or happens: something

    that has actual existence, a true piece of information." — Merriam Webster
  6. "The assignment statement is the von Neumann bottleneck of programming

    languages and keeps us thinking in word-at-a-time terms in much the same way the computer's bottleneck does." — John Backus (Turing Award lecture 1977)
  7. "When bookkeeping was done with clay tablets or paper and

    ink, accountants developed some clear rules about good accounting practices. One never alters the books; if an error is made, it is annotated and a new compensating entry is made in the books. The books are thus a complete history of the transactions of the business. Update-in-place strikes many systems designers as a cardinal sin: it violates traditional accounting practices that have been observed for hundreds of years." — Jim Gray (1981)
  8. INSIDE DATA: OUR CURRENT PRESENT OUTSIDE DATA: BLAST FROM THE

    PAST BETWEEN SERVICES: HOPE FOR THE FUTURE — PAT HELLAND (DATA ON THE INSIDE VS DATA ON THE OUTSIDE)
  9. PROTOCOLS CLIMB THE LADDER OF KNOWLEDGE Cɸ: Common Knowledge (infinite

    number of i) Eiɸ: (Everyone knows * i) ɸ E3ɸ: (Everyone knows * 3) ɸ E2ɸ: Everyone knows Everyone knows ɸ E1ɸ: Everyone knows ɸ Sɸ: Someone knows ɸ
  10. "The first principle of successful scalability is to batter the

    consistency mechanisms down to a minimum." – James Hamilton