HOUSE_OVERSIGHT_015957.jpg

1.87 MB

Extraction Summary

2
People
2
Organizations
0
Locations
0
Events
3
Relationships
4
Quotes

Document Information

Type: Book page / document from house oversight committee
File Size: 1.87 MB
Summary

This page discusses the concept of "horizontal abstraction" in computer science, explaining how it simplifies tasks but has practical limitations described by Joel Spolsky's "Law of Leaky Abstractions." It uses the TCP/IP protocol as an example of how underlying implementation details (like packet loss) can "leak" through to the user experience, and theoretically connects this impossibility of perfect abstraction to the Halting Problem.

People (2)

Name Role Context
Joel Spolsky
Turing

Organizations (2)

Relationships (3)

from

Key Quotes (4)

"Computer systems are built ‘on the shoulders of giants’."
Source
HOUSE_OVERSIGHT_015957.jpg
Quote #1
"Whenever we work at an abstract level, we risk being exposed to its inner guts at some point."
Source
HOUSE_OVERSIGHT_015957.jpg
Quote #2
"Joel Spolsky, a computer scientist who worked on Microsoft Excel, proposed the Law of Leaky Abstractions to explain this."
Source
HOUSE_OVERSIGHT_015957.jpg
Quote #3
"We know this is impossible, so non-leaky abstraction cannot exist."
Source
HOUSE_OVERSIGHT_015957.jpg
Quote #4

Full Extracted Text

Complete text extracted from the document (2,913 characters)

Software
267
Horizontal abstraction is the simpler of the two to understand,
and the more common. Computer systems are built ‘on the shoulders of
giants’. That is to say we no longer need to place individual pixels onto
the computer screen. We can assume a computer will draw a square if we
specify the dimension and coordinates of the center. That’s abstraction.
Today’s computers are even more helpful. We can ask them to draw a
rotating cube lit from a certain angle and the computer will do the whole
job for us. But, there are always practical limitations to this.
I want my cubes to move around the screen naturally but I am not
sure what physics model has been implemented. What will happen when
they bump into each other? If the abstraction is not thoroughly thought
through they pass through each other in a very odd way, breaking up
and showing me they are really made of triangles, the illusion of three
dimensions is lost. Whenever we work at an abstract level, we risk being
exposed to its inner guts at some point. Joel Spolsky, a computer scientist
who worked on Microsoft Excel, proposed the Law of Leaky Abstractions
to explain this. An example of his law in action is the TCP/IP protocol
stack that transports data over the Internet. The stack is hugely reliable,
yet I have to debug one of these stacks at least four times a year!
The problem is that the TCP (Transmission Control Protocol) is
designed to provide reliable delivery of information: internet pages,
my bank account and the like. But, the internet protocol ‘IP’ on which
it relies is only designed for best-efforts. When a link loses a packet of
information, the TCP has to retransmit it. This takes additional time. TCP
provides an abstraction of a reliable connection, but the implementation
is not as robust as it may seem, and the details leak through as variable
latency and throughput. This explains why your web pages sometimes
do not completely render. You are told it is reliable, but often it is not!
Experience is so valuable to a programmer because they know which of
these specifications to take with a pinch of salt and when they are likely
to leak. They are battle scarred by previous naivety.
I think Spolsky’s Law follows from Rice’s Theorem and ultimately
from Turing’s no halting proof. If leak-less abstraction was possible you
could, in principle, write a recursive partial halting solution. By layering
abstraction on top of abstraction you would be able to solve some very
complex problems, eventually including the Halting Problem. We know
this is impossible, so non-leaky abstraction cannot exist.
The other method of splitting software is vertically. This is often
done following the natural boundaries of an organization: functional or
geographic. Again there will be leakage between the systems; the data
you get from the finance department might not be detailed enough for
HOUSE_OVERSIGHT_015957

Discussion 0

Sign in to join the discussion

No comments yet

Be the first to share your thoughts on this epstein document