The Sharp Edges of Leaky Abstractions

The Sharp Edges of Leaky Abstractions

This talk explores some of the complexities and issues we introduce when we use and implement abstractions in computer programming.

7330b65ea54e1b90a987a552e5c5cf32?s=128

Mark Allen

June 20, 2017
Tweet

Transcript

  1. THE SHARP EDGES OF LEAKY ABSTRACTIONS MARK ALLEN – ALERT

    LOGIC MRALLEN1@YAHOO.COM @BYTEMEORG
  2. “Every man shares a secret pain. Share it with me

    and gain strength from the sharing” -Sybok, Star Trek V
  3. None
  4. ABSTRACTION •Introduce levers •Encapsulate behaviors or domains •Remove complexity from

    problems
  5. ABSTRACTIONS AS A SERVICE •TensorFlow •Amazon •Azure

  6. ON PREMISE ABSTRACTIONS •Search (e.g., Elastic or Solr) •“Big Data”

    (e.g., Spark or Hadoop or $APACHE_PROJECT)
  7. None
  8. THE PITCH You don't need to know or understand these

    messy details about the abstraction you're using. The system accounts for all the things, so relax; write your system as you would expect to.
  9. “It’ll be fine.”

  10. None
  11. None
  12. LOOK AT ALL THIS FREE STUFF! • three different programming

    languages (!!), • automatic work division, • job retry on failure, • automatic collation of output from worker nodes, • job scheduling (with your own pluggable scheduler, even!) and • a reasonably nice web UI to track jobs and progress. It will even draw a DAG of the work elements!
  13. None
  14. The computer is not your friend

  15. “I COME TO BURY CAESAR, NOT TO PRAISE HIM.” -

    ANTONY, JULIUS CAESAR, ACT 3, SCENE II
  16. Obligatory cat picture

  17. Spolsky’s Law of Software Abstractions: All non-trivial abstractions, to some

    degree, are leaky.
  18. None
  19. None
  20. What are we to do?

  21. What causes leaky abstractions?

  22. Abstracting the “wrong” thing

  23. Abstracting something that can’t be abstracted

  24. Leaky by design

  25. Let us be honest with one another

  26. Tutorials and documentation help

  27. Give thought to how people might use your abstraction

  28. Give thought to how people might operate your abstraction

  29. Thank you

  30. REFERENCES • https://hackernoon.com/leaky-by-design-7b423142ece0 • https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ • https://hackernoon.com/what-really-happened-with-vista-4ca7ffb5a1a • http://www.mayofamily.com/RLM/txt_Clarke_Superiority.html