Facebook, leaky abstractions, and gettin’ used to it
In a famous blog post, computer programmer Joel Spolsky proposed the “Law of Leaky Abstractions,” arguing that it is inevitable that computer abstractions will fail because lower-level layers of computer code will eventually come bubbling up to the surface. The easiest way to explain this is to point to a very common phenomenon: the Blue Screen of Death in Windows. If you’re using Windows XP, and something’s really, really wrong with your computer’s memory, you’ll see the BSOD. It supersedes the icons and file folders you’re used to. This means that the abstraction of the graphical interface is sitting on top of the abstractions associated with memory addresses (among other layers). But if your memory is failing, that lower layer bubbles up to the top and confronts you. In short, this is abstraction failure. The abstraction-GUI fails because something more fundamental went wrong. As Spolsky puts it,
Abstractions fail. Sometimes a little, sometimes a lot. There’s leakage. Things go wrong. It happens all over the place when you have abstractions.
Since this is, after all, a “law,” it has a sort of inevitability. If your computer keeps giving you the BSOD, but if it seems to work well for a while after you press and hold the power key, then you sorta get used to it. If a bug happens, you can get mad, but really you’re supposed to throw your hands up and say, “It happens.” Dealing with bugs is part of owning computers.
Facebook’s rites of spring seem to be the Web 2.0 version of the law of leaky abstractions. It seems like every spring Facebook deals with a privacy controversy. This year’s controversy is centered on a blog post in which Facebook announced a pre-emptive policy to share user data with “pre-approved” third-party Web sites. The announcement starts innocuously enough:
Today, when you use applications such as games on Facebook.com or choose to connect to Facebook on sites across the web, you are able to find and interact with your friends. These applications require a small set of basic information about you in order to provide a relevant experience. After feedback from many of you, we announced in August that we were moving toward a model that gives you clearer controls over what data is shared with applications and websites when you choose to use them.
Ho-hum. The controversial bit appears in the next paragraph:
Apparently, this change is mitigated by a global opt-out choice offered to users. However, the default is that we all of us Facebookers are enrolled in this program.
The raison d’etre of Facebook is to observe our connections and watch us communicate with one another, archive those activities, and then sell the resulting data to advertisers. This is an ugly fact of the service. However, this ugly fact can be covered up with the Web 2.0 version of the software abstraction. If Facebook puts enough glossy apps such as photo sharing or Farmville on top of the legal agreements and surveillance technologies it houses in its servers, most users don’t really notice or think about being watched by Papa John’s or Walmart or whomever is “partnering” with the social network.