The Value of Values Rich Hickey Datomic, Clojure I.T. Information - - PowerPoint PPT Presentation

the value of values
SMART_READER_LITE
LIVE PREVIEW

The Value of Values Rich Hickey Datomic, Clojure I.T. Information - - PowerPoint PPT Presentation

The Value of Values Rich Hickey Datomic, Clojure I.T. Information Inform to convey knowledge via facts give shape to (the mind) Information the facts What is a Fact? Place where specific information is stored


slide-1
SLIDE 1

The Value of Values

Rich Hickey Datomic, Clojure

slide-2
SLIDE 2

I.T.

slide-3
SLIDE 3

Information

  • Inform
  • ‘to convey knowledge via facts’
  • ‘give shape to (the mind)’
  • Information
  • the facts
slide-4
SLIDE 4

What is a Fact?

  • Place where specific information is stored
  • There is a place for every piece of information
  • Facts have operations, e.g. get and set
  • Operations control how facts can change
  • To convey a fact, convey its location
slide-5
SLIDE 5

Place

  • ‘A particular portion of space’
  • ‘An area used for a particular purpose’
  • Memory address, disk sector
slide-6
SLIDE 6

‘Information’ Systems

  • In memory
  • mutable objects are abstractions of places
  • objects have methods
  • In durable storage
  • tables/documents/records are places
  • DBs have update
slide-7
SLIDE 7

PLOP

  • PLace-Oriented Programming
  • New information replaces old
  • Born of limitations of early computers
  • small RAM and disks
  • Those limitations are long gone
slide-8
SLIDE 8

The Efficiencies of Place

  • Ok, when ‘birthing’ new values
  • birthing == prior to perceptibility
  • i.e. prior to becoming a fact
  • But: an implementation detail
  • I.T., not T.T.
slide-9
SLIDE 9

Memory and Records

  • We’ve co-opted
  • and believe our own mythos
  • Mental memory is associative and open
  • Real records are enduring
  • and accreting
  • not erase and overwrite
slide-10
SLIDE 10

The Point

  • Values have many advantages
  • in process
  • across processes
  • in storage
  • We know these things
  • Place has no role in an information model
slide-11
SLIDE 11

Value

  • ‘Relative worth’
  • ‘A particular magnitude, number or amount’
  • ‘Precise meaning or significance’
slide-12
SLIDE 12

Is a String a Value?

  • Is it immutable?
  • Equality, comparability are basis for logic
  • Who wants to go back to mutable Strings?
slide-13
SLIDE 13

Programming Values

  • Immutable
  • Don’t need methods
  • I can send you values without code
  • and you are fine
  • Are semantically transparent
  • Can be abstracted
slide-14
SLIDE 14

Values Can be Shared

  • Share freely
  • aliases are free
  • No one can mess you up
  • nor you them
  • Incremental change is cheap
  • Places
  • Defensive copy, clone, locks
slide-15
SLIDE 15

Reproducible Results

  • Operations on values are stable
  • Testing
  • Debugging
  • reproduce failures w/o replicating state
  • Places
  • must establish matching ‘state’ first
slide-16
SLIDE 16

Easy to Fabricate

  • Anything can create compliant values
  • for testing, simulation
  • Places
  • must emulate operational interface
slide-17
SLIDE 17

Thwart Imperativeness

  • Values refuse to help you program imperatively
  • That’s a feature
  • Imperative code is inherently complex
  • Places
  • Encourage and require imperativeness
slide-18
SLIDE 18

Language Independence

  • Pure values are language independent
  • the polyglot tool
  • Places are defined by language constructs

(methods)

  • can be proxied, remoted, with much effort
slide-19
SLIDE 19

Values are Generic

  • Representations in any language
  • Few fundamental abstractions
  • for aggregation (lists, maps, sets)
  • Places
  • Operational interface is specific
  • More code
  • Poor reuse
slide-20
SLIDE 20

Values Are the Best Interface

  • For subsystems
  • can be moved
  • ported
  • enqueued
  • Places
  • application, language and flow coupled
slide-21
SLIDE 21

Values Aggregate

  • Values aggregate to values
  • So all benefits accrue to compositions
  • Places
  • Combinations of places, what properties?
  • Need new operational interface for

aggregate

slide-22
SLIDE 22

Extended Value Propositions

  • Mechanism for conveyance and perception
  • Mechanism for memory
  • Reduced coordination
  • Location flexibility
  • Essential for decision making
slide-23
SLIDE 23

Conveyance

  • In the small
  • Aliases of values convey value
  • Mutable things on queues convey nothing
  • In the large
  • Values rule on the wire
  • No reproducible values in PLOP DBs
slide-24
SLIDE 24

Perception

  • In the small
  • Values: to reach is to perceive
  • Places: How to perceive a coherent value
  • f object with multiple getters?
  • In the large
  • Values still rule on the wire
  • No reproducible values in PLOP DBs
slide-25
SLIDE 25

Memory

  • In the small
  • Values: remembering == aliasing
  • Places: copy, if you can
  • In the large
  • What if there were no permalinks?

Place-oriented DBs - DIY time

slide-26
SLIDE 26

Reduced Coordination

  • In the small
  • Values: No locks!
  • Places: Lock policies don’t aggregate
  • In the large
  • No read transactions!
  • PLOP: Often gotten wrong
slide-27
SLIDE 27

Location Flexibility

  • In the small
  • Values: aliasing means only one copy
  • Places: master copy is special
  • In the large
  • Cache (e.g. HTTP caching)
  • CDN etc
  • Data-based interface is movable
slide-28
SLIDE 28

Facts are Values

  • Not places
  • Don’t facts change?
  • No - they incorporate time
  • Fact - ‘an event or thing known to have

happened or existed’

  • From: factum - ‘something done’
slide-29
SLIDE 29

Facts != Recent Facts

  • Knowledge is derived from facts
  • Comparing
  • Combining
  • Especially from different time points
  • You cannot update a fact
  • any more than you can change the past
slide-30
SLIDE 30

Information Systems

  • Are fundamentally about facts
  • Maintaining, manipulating
  • To give users leverage
  • Making decisions
  • Systems should be value-oriented
  • Don’t use process constructs for information
slide-31
SLIDE 31

Decision Making

  • We know what it takes to support our
  • wn decision making (hint: information)
  • Compare present to past
  • Spot trends, rates
  • Aggregates
  • Often requires time
slide-32
SLIDE 32

Programmer I.T.

  • Source Control
  • Update in place? - No

Timestamps - of course!

  • Logs
  • Update in place? - No

Timestamps - of course!

slide-33
SLIDE 33

Big Data

  • Business to programmers:
  • “I like your database better than the one

you gave me”

  • Logs have all the information
  • and timestamps
  • We are reactive here
  • mining logs, seriously?
  • Not delivering leverage
slide-34
SLIDE 34

The Space Age

  • Space
  • ‘The unlimited expanse in which all things

are located, and all events occur’

  • If new never fails...
  • you are effectively running in space
  • If S3 never fills up...
  • it is not the cloud, but space
slide-35
SLIDE 35

New Facts, New Space

  • The end of PLOP
  • If you can afford this, why do anything else?
  • You can afford this
  • (there will be garbage)
slide-36
SLIDE 36

Summary

  • We continue to use place-oriented

programming languages and databases

  • and make new ones!
  • long after rationale is gone
  • We are missing out on the value of values
  • which we recognize
  • We need to deliver information systems
  • demand is clear, resources available
slide-37
SLIDE 37

Facts do not cease to exist because they are ignored.

Aldous Huxley