Notes on A Programmable Web by Aaron Swartz
At the time when I was getting into web development, I had the chance to read one of the most inspiring book about the web, Aaron Swartz's A Programmable Web. And it completely changed my mind.
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
Read Aaron's original post: Building Programmable Web Sites by Aaron Swartz, 2009.
Quotes About WWW
- “(the Internet) It should be kept open. It should be kept free.” – Steve Jobs
- “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 Jobs
- Jacques Mattheij wrote an article, about the web in 2050, which feels like the New Speak in George Orwell's 1984.
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” vs “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.
(related: http://www.aaronsw.com/weblog/mylifewithtim)