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

Frozen Rails: Magenta - The Art Of Abstraction

5c2b452f6eea4a6d84c105ebd971d2a4?s=47 Konstantin Haase
September 11, 2014

Frozen Rails: Magenta - The Art Of Abstraction

5c2b452f6eea4a6d84c105ebd971d2a4?s=128

Konstantin Haase

September 11, 2014
Tweet

Transcript

  1. Magenta The Art of Abstraction

  2. None
  3. None
  4. None
  5. None
  6. “Anything that is in the world when you’re born is

    normal and ordinary and is just a natural part of the way the world works. ! Anything that's invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it. ! Anything invented after you're thirty-five is against the natural order of things” –Douglas Adams
  7. Computer Science

  8. Colour Perception

  9. None
  10. Conclusion spoiler alert

  11. Abstraction happens in our minds

  12. Abstractions shape how we perceive things

  13. Changing abstractions is a basic principle of innovation and progress

  14. Abstraction is the basis of Computer Science

  15. Abstraction is the basis of Computer Science

  16. None
  17. None
  18. None
  19. None
  20. None
  21. Trichromacy

  22. None
  23. None
  24. None
  25. None
  26. Patterns and Algorithms

  27. None
  28. None
  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. None
  36. ?

  37. ?

  38. None
  39. None
  40. Is magenta real?

  41. # FF00FF

  42. None
  43. None
  44. Data Abstraction

  45. None
  46. “Dataless Programming” RM Balzer - 1967

  47. None
  48. None
  49. Space

  50. None
  51. None
  52. None
  53. Wait, what?

  54. Are we still talking about abstraction?

  55. None
  56. None
  57. None
  58. None
  59. # FF00FF

  60. Control Abstraction

  61. Subroutines

  62. “Go To Statement considered harmfull” Edsger Dijkstra, 1968

  63. “Protection in Programming Languages" James H. Morris Jr., 1973

  64. None
  65. You should be able to reason about modules in isolation

  66. “Global Variables Considered Harmful” W.A. Wulf, M. Shaw, 1973

  67. Tetrachromacy

  68. None
  69. 2-3% of all women? 50% of all women?

  70. Gene on X chromosome OPN1MW and OPN1MW2

  71. Women could have up to six colour cones

  72. Mostly dysfunctional

  73. At least two confirmed cases

  74. Seeing millions of more colours

  75. None
  76. None
  77. None
  78. None
  79. None
  80. Object Oriented Programming

  81. None
  82. None
  83. #alankayholdingthings

  84. None
  85. –Alan Kay “OOP to me means only messaging, local retention

    and protection and hiding of state- process, and extreme late-binding of all things.”
  86. Data Abstraction + Control Abstraction = Object Oriented Programming

  87. Why dysfunctional? (my own unscientific theory)

  88. We don’t see colours with our eyes

  89. We see colours with our brain

  90. Our brain adjusts colours

  91. We don’t see colours we don’t have an abstract concept

    for
  92. None
  93. When we learn to speak, colour perception switches from left

    brain side to right brain side
  94. We make the rules

  95. Some rules enable good programs (For some definition of good.)

  96. Single Responsibility Principle

  97. Liskov Substitution Principle

  98. Law of Demeter

  99. Don’t abstract too much, too early

  100. None
  101. Strong external abstractions allow weak internal abstractions

  102. Distributed Applications

  103. Is magenta a colour?

  104. None
  105. Yes

  106. Inheritance

  107. Type Hierarchy Liskov Substitution Principle

  108. Implementation Sharing

  109. Mixins

  110. Composition

  111. Duck Typing

  112. Are we doing it right?

  113. Classes ≠ OOP

  114. Colour and Abstraction

  115. None
  116. None
  117. Himba Tribe (Namibia)

  118. None
  119. zuzu: dark shades of blue, red, green and purple !

    vapa: white, some shades of yellow ! buru: some shades of green and blue ! dambu: some shades of green, red and brown
  120. None
  121. None
  122. Abstractions and Security

  123. Most attacks rely on switching up or down abstraction levels

  124. None
  125. None
  126. None
  127. None
  128. Abstraction

  129. Business Logic only exists in our minds

  130. Object Oriented Programming only exists in our minds

  131. Colours only exist in our minds

  132. UI elements only exist in our minds

  133. Countries only exist in our minds

  134. Conclusion

  135. Abstraction happens in our minds

  136. All abstraction

  137. Abstractions shape how we perceive things

  138. Changing abstractions is a basic principle of innovation and progress

  139. Thanks! @konstantinhaase me@rkh.im