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

Metaphors We Compute By

Metaphors We Compute By

We think in words, we talk with words, we understand the world thanks to words. Metaphors take words to the next level explaining concepts that were escaping our understanding before. In 1980 George Lakoff revolutionised the Linguistic and Philosophic worlds when he studied how metaphors affect our thinking, how they influence our actions and even shape who we are. What happens with the metaphors that we use in the Software Industry?

In this talk we are going to review the importance that metaphors have in our code quality, in the algorithms we choose, and the products we ship.

As a practical example we are going to see why Microservices and Containers have been so successful in the past couple of years. We’ll try to understand why they have redefined how we package and ship products in our industry.

Alvaro Videla

January 27, 2017
Tweet

More Decks by Alvaro Videla

Other Decks in Programming

Transcript

  1. METAPHORS WE COMPUTE BY
    ALVARO VIDELA - @old_sound

    View Slide

  2. THE YEAR IS 1980

    View Slide

  3. METAPHORS WE LIVE BY
    GEORGE LAKOFF & MARK JOHNSON

    View Slide

  4. METAPHOR ISN’T JUST A
    MATTER OF POETRY AND
    RHETORICAL FLOURISH

    View Slide

  5. METAPHORS PERMEATE ALL AREAS OF OUR LIVES
    METAPHORS DICTATE

    View Slide

  6. METAPHORS PERMEATE ALL AREAS OF OUR LIVES
    METAPHORS DICTATE
    ▸ How we think

    View Slide

  7. METAPHORS PERMEATE ALL AREAS OF OUR LIVES
    METAPHORS DICTATE
    ▸ How we think
    ▸ How we behave

    View Slide

  8. METAPHORS PERMEATE ALL AREAS OF OUR LIVES
    METAPHORS DICTATE
    ▸ How we think
    ▸ How we behave
    ▸ How we perceive

    View Slide

  9. METAPHORS PERMEATE ALL AREAS OF OUR LIVES
    METAPHORS DICTATE
    ▸ How we think
    ▸ How we behave
    ▸ How we perceive
    ▸ How our conceptual system is built

    View Slide

  10. ARGUMENT IS WAR

    View Slide

  11. METAPHORS IN EVERYDAY EXPRESSIONS
    ARGUMENT IS WAR

    View Slide

  12. METAPHORS IN EVERYDAY EXPRESSIONS
    ARGUMENT IS WAR
    ▸ Your claims are indefensible

    View Slide

  13. METAPHORS IN EVERYDAY EXPRESSIONS
    ARGUMENT IS WAR
    ▸ Your claims are indefensible
    ▸ He attacked every weak point in my argument

    View Slide

  14. METAPHORS IN EVERYDAY EXPRESSIONS
    ARGUMENT IS WAR
    ▸ Your claims are indefensible
    ▸ He attacked every weak point in my argument
    ▸ I demolished his argument

    View Slide

  15. METAPHORS IN EVERYDAY EXPRESSIONS
    ARGUMENT IS WAR
    ▸ Your claims are indefensible
    ▸ He attacked every weak point in my argument
    ▸ I demolished his argument
    ▸ I never won an argument with him

    View Slide

  16. METAPHORS IN EVERYDAY EXPRESSIONS
    ARGUMENT IS WAR
    ▸ Your claims are indefensible
    ▸ He attacked every weak point in my argument
    ▸ I demolished his argument
    ▸ I never won an argument with him
    ▸ His criticisms were right on target

    View Slide

  17. WHAT IF ARGUMENT
    IS A DANCE?

    View Slide

  18. I’M NOT CONVINCED

    View Slide

  19. LET’S TALK ABOUT
    POLITICS

    View Slide

  20. I’M STILL NOT
    CONVINCED

    View Slide

  21. HUMAN RESOURCE
    MANAGEMENT

    View Slide

  22. PEOPLE ARE NOT RESOURCES

    View Slide

  23. TRIGGER
    WARNING

    View Slide

  24. GIVING A PLATFORM
    TO RACISTS

    View Slide

  25. “WRESTLING WITH
    INCLUSION AT XYZCONF”

    View Slide

  26. “WRESTLING WITH
    INCLUSION AT XYZCONF”

    View Slide

  27. LET’S TALK ABOUT
    COMPUTERS

    View Slide

  28. View Slide

  29. COMPUTERS

    View Slide

  30. METAPHORS ENABLE
    UNDERSTANDING

    View Slide

  31. JULIET IS LIKE THE SUN

    View Slide

  32. JULIET GAVE ME
    SKIN CANCER

    View Slide

  33. METAPHORS OBSCURE
    UNDERSTANDING

    View Slide

  34. TELE-GRAPH

    View Slide

  35. “SOMETIMES OUR TOOLS DO WHAT WE
    TELL THEM TO. OTHER TIMES, WE
    ADAPT OURSELVES TO OUR TOOLS'
    REQUIREMENTS”
    Nicholas Carr
    THE SHALLOWS

    View Slide

  36. METAPHORS ARE THE
    TOOLS OF THOUGHT

    View Slide

  37. METAPHORS AND
    CODE

    View Slide

  38. View Slide

  39. BEST UNKNOWN PAPER

    View Slide

  40. “TO PROGRAM IS TO WRITE TO
    ANOTHER PROGRAMMER
    ABOUT OUR SOLUTION TO A PROBLEM”
    Charles Baker
    A PROGRAMER’S ROLE

    View Slide

  41. “NO ONE HAS SEEN A PROGRAM
    WHICH THE MACHINE COULD NOT
    COMPREHEND BUT WHICH HUMANS
    DID”
    Charles Baker
    A PROGRAMER’S ROLE

    View Slide

  42. TYPES ARE THE CHARACTERS
    THAT TELL THE STORY OF
    OUR PROGRAMS

    View Slide

  43. PROGRAMMING WITH ABSTRACT DATA
    TYPES

    View Slide

  44. WITHOUT TYPES WE JUST
    HAVE OPERATIONS ON
    STREAM OF BYTES

    View Slide

  45. CHOOSING THE RIGHT
    DATA STRUCTURE

    View Slide

  46. CHOOSE THE RIGHT DATA STRUCTURE

    View Slide

  47. CHOOSE THE RIGHT DATA STRUCTURE
    ▸ Array

    View Slide

  48. CHOOSE THE RIGHT DATA STRUCTURE
    ▸ Array
    ▸ Set

    View Slide

  49. CHOOSE THE RIGHT DATA STRUCTURE
    ▸ Array
    ▸ Set
    ▸ LinkedList

    View Slide

  50. CHOOSE THE RIGHT DATA STRUCTURE
    ▸ Array
    ▸ Set
    ▸ LinkedList
    ▸ Queue

    View Slide

  51. CHOOSE THE RIGHT DATA STRUCTURE
    ▸ Array
    ▸ Set
    ▸ LinkedList
    ▸ Queue
    ▸ Stack

    View Slide

  52. A PROGRAM’S EXPLANATORY
    POWER IS THE MEASURE OF
    ITS OWN ELEGANCE

    View Slide

  53. DATA STRUCTURES
    HAVE EXPLANATORY
    POWER

    View Slide

  54. COGNITIVE LEAPS

    View Slide

  55. TASK SCHEDULING

    View Slide

  56. QUEUEING
    THEORY
    TASK SCHEDULING

    View Slide

  57. ROUTE PLANNING

    View Slide

  58. GRAPH THEORY
    ROUTE PLANNING

    View Slide

  59. DATABASE
    REPLICATION

    View Slide

  60. RUMOUR
    MONGERING
    DATABASE
    REPLICATION

    View Slide

  61. EPIDEMICS
    DATABASE
    REPLICATION

    View Slide

  62. SO EVERYTHING IS A
    METAPHOR?

    View Slide

  63. I DON’T BELIEVE YOU

    View Slide

  64. Whenever nodes need to agree on a
    common value, we start a consensus
    algorithm to decide on a value.
    There's usually a leader process that
    takes care of making the final
    decision based on the votes it has
    received from its peers.
    SEVEN METAPHORS
    DISTRIBUTED SYSTEMS METAPHORS

    View Slide

  65. SEVEN METAPHORS
    DISTRIBUTED SYSTEMS METAPHORS
    Nodes communicate sending
    messages over a channel, which
    might get congested due to too
    much traffic. This could create an
    information bottleneck, with queues
    at each end of the channels backing
    up.

    View Slide

  66. FOUR METAPHORS
    DISTRIBUTED SYSTEMS METAPHORS
    These bottlenecks might render one
    or more nodes unresponsive,
    causing network partitions. Is the
    process that's taking too long to
    respond dead? We won't know
    unless we set a timeout…

    View Slide

  67. INTERMEZZO

    View Slide

  68. PACKAGING

    View Slide

  69. View Slide

  70. BUILDING GHC

    View Slide

  71. View Slide

  72. CONTAINERS
    ▸ Standard
    ▸ Ship Anywhere
    ▸ Train, Ships, Trucks
    ▸ Stackable
    ▸ Reusable

    View Slide

  73. View Slide

  74. MICROSERVICES

    View Slide

  75. MICROSERVICES
    ▸ Decentralised Governance
    ▸ Monolith vs. Microservice
    ▸ Isolation
    ▸ Collaboration
    ▸ Small is better - Big is cumbersome
    ▸ David vs. Goliath

    View Slide

  76. BRING POWER BACK TO THE
    DEVELOPER AND THE DEVELOPER
    WILL MAKE YOU A KING

    View Slide

  77. ERLANG ANYONE?

    View Slide

  78. “IN ANOTHER DIRECTION, ONE COULD ARGUE
    THAT MICROSERVICES ARE THE SAME THING
    AS THE ERLANG PROGRAMMING MODEL, BUT
    APPLIED TO AN ENTERPRISE APPLICATION
    CONTEXT”

    View Slide

  79. WHAT’S ERLANG’S
    ELEVATOR PITCH?

    View Slide

  80. MASTER THE ART OF
    METAPHOR SELECTION

    View Slide

  81. FIRST GET PEOPLE TO
    UNDERSTAND THINGS

    View Slide

  82. THEN EXPLAIN HOW
    THINGS ACTUALLY WORK

    View Slide

  83. RABBITMQ
    A JOB SERVER?

    View Slide

  84. MASTER THE ART OF
    MEANING AMPLIFICATION

    View Slide

  85. OUR PROGRAM IS THE
    METAPHOR FOR THE
    SOLUTION WE FOUND

    View Slide

  86. REFERENCES
    ▸ Lakoff, George, and Mark Johnson. “Metaphors We Live By”
    ▸ Gleick, James. “The Information: A History, a Theory, a
    Flood”
    ▸ Geary, James. “I Is an Other: The Secret Life of Metaphor
    and How It Shapes the Way We See the World”
    ▸ Demers, Alan, Dan Greene, Carl Hauser, Wes Irish, and John
    Larson. “Epidemic Algorithms for Replicated Database
    Maintenance”

    View Slide

  87. CREDITS - CC BY-NC-ND
    ▸ Office Workers: https://flic.kr/p/5WwpeV
    ▸ Sun: https://flic.kr/p/9Q6SY1
    ▸ Queue: https://flic.kr/p/8AqWW7
    ▸ Consensus: https://flic.kr/p/aws7dH
    ▸ Bottlenecks: https://flic.kr/p/EJ5Q3
    ▸ Gossip: https://flic.kr/p/4bCDr2
    ▸ Containers: https://flic.kr/p/nWLQxE

    View Slide

  88. @old_sound
    THANK YOU!

    View Slide