Skip to content

Instantly share code, notes, and snippets.

@macintux
Created August 30, 2017 13:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save macintux/b9671a82cef9cb7eb1e45dc9f9e9bbb2 to your computer and use it in GitHub Desktop.
Save macintux/b9671a82cef9cb7eb1e45dc9f9e9bbb2 to your computer and use it in GitHub Desktop.
Talk proposal for CodeMash 2018: Of Abstraction and Precision

The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. – Edsger W. Dijkstra

The entire history of software engineering is that of the rise in levels of abstraction. – Grady Booch

We live in a world dominated by a virtual machine (the JVM) and a virtual platform (AWS). These are concrete abstractions, despite the apparent contradiction in terms.

Virtualization, however, is just one form of abstraction. We'll talk about the evolution of programming languages, networking, hardware, systems orchestration... and while abstraction will undoubtedly be extolled as a good thing™ we'll discuss the sea monsters that dwell hidden behind the curtain, to mix some abstract metaphors. What is a leaky abstraction and what can you do about it?

This is, indeed, an abstract discussion; practical applications of this talk are left as an exercise for the attendee.

@matthewvon
Copy link

  1. c++ now has lambda functions: plug in the body of a function instead of calling a function. Great for "{return false;}" sort of things, but horrible for stuff any bigger. Not easy to unit test and therefore prove precise.

  2. virtual machines, like JVM, take care of resource management such as memory allocations. This lets the developer "focus on the problem". But what if the memory allocation management is the source of your problem, i.e. the garbage collection cycle is killing your response time?

@matthewvon
Copy link

  1. RAM and hypervisors: The available RAM for all virtual machines is often a combination of physical RAM and swap space from the host machine. Performance can change radically if enough virtual machines start using virtual RAM and cause swapping to occur within the physical environment. How do you find this problem from within a VM?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment