Notes on A Programmable Web by Aaron Swartz

Updated in 2017: @tommyjtl, @zimine and I are currently helping translate this post into Simplified Chinese. Any contributions are welcomed :)


Sure, it sounds a little bit crazy. But it paid off the last time they made that gamble: we ended up with a little thing called the World Wide Web. Let's see if they can do it again.

—— Aaron

Aaron’s post: Building Programmable Web Sites by Aaron Swartz, 2009

Quotes About WWW

  1. “(the Internet) It should be kept open. It should be kept free.” – Steve Jobs1
  2. “The third reason it’s very exciting is that Microsoft doesn’t own it and I don’t think they can. It’s the one thing in the industry that Microsoft can probably never own. I think one of the things that’s essential is that the government continue to fund the Internet as a public trust, as a public facility and remove any of these ridiculous notions of privatizing it that have been brought up. I don’t think they’re going to fly, thankfully.” – Steve Jobs1
  3. Jacques Mattheij wrote an article7, it’s like the New Speak in 1984 by George Orwell, but on the Internet.

Quotes from Aaron’s Post

About API

APIs only let you look at the data in a particular way, typically the way that the hosting site looks at it

About API, II (Q: differences between data, protocol, API?)

pass the noun to the verb: /share?v=1234 pass the verb to the noun: /v/1234?m=share

Then he describes the interesting hybrid that the Web adopted, which he terms "Representational State Transfer" or REST.

About “standard” and “design”

And instead of spending time building things, they've convinced people interested in these ideas that the first thing we need to do is write standards. (To engineers, this is absurd from the start -- standards are things you write after you've got something working, not before!)

Fortunately for us, the Web was designed with this future in mind. The protocols that underpin it are not designed simply to provide pages for human consumption, but also to easily accommodate the menagerie of spiders, bots, and scripts that explore its fertile soil. ...for applications.

Then we'll look into what it means for your application to be not just another tool for people and software to use, but part of the ecology -- a section of the programmable web. This means exposing your data to be queried and copied and integrated, even without explicit permission, into the larger software ecosystem, while protecting users' freedom.

The more likely option is, of course, to break away from the Web altogether, and force people to download special software to use your application. ... If that's a choice you want to make, you probably shouldn't be reading this book.

This is one of the secrets of success on the Web: the more you send people away, the more they come back

About URL and URI

Moreover, URLs do not just exist as isolated entities

URLs shouldn't change (and if they do change, the old ones should redirect to the new ones) so they should only contain information about the page that never changes. This leads to some obvious requirements.

First, URLs shouldn't include technical details of the software you used to build your website, since that could change at any moment

About TBL

And even then, they're far more limited than the wide-reaching interactivity that Berners-Lee imagined.

Instead, they used the clone created by a team at the University of Illinois Urbana-Champaign (UIUC), which never supported editing because programmer Marc Andreesen was too dumb to figure out how to do page editing with inline pictures, something Tim Berners-Lee's version had no problem with.

further reading: http://www.aaronsw.com/weblog/mylifewithtim

  1. Steve Jobs interview: One-on-one in 1995
  2. Solid: Re-decentralizing the web
  3. Aaron’s public links & notes tagged with “web” on Pinboard
  4. “URLs shouldn't include technical details”: 天猫首页
  5. Semantic Web – W3C
  6. Tim Berners-Lee: The next web
  7. The Web in 2050 · Jacques Mattheij: “reboot the web”