Sunday, April 19, 2009

Alex Payne Speaks at Stanford

Watch the whole video here

Random notes, taken as I watched and listened to Twitter's API Lead Alex Payne talk about API as UI, and various Twitter details:

The fact that in many schools, a student's first programming experience is with VB6 might explain why so many kids are turned off by by CS. If they were exposed to APIs with more thought put into usability they might be more likely to pursue CS.

API to HCI: millions of computer users are developers, and the way they interact with their computers is via APIs. API == super geeky UI.

100's of Millions of requests per day to the Twitter API.

Oooh Tweetie for OSX. Nice.

Twitter API support collaborates on one twitter account using CoTweet.

StockTwits: many of these users never go to after registering. StockTwits is how they interact with twitter.

Hardware Hack: BakerTweet: a baker in london turns the dial to "cupcakes" and hits a button to tweet that cupcakes are ready.
Hardware Hack: Kill-a-watt

inconsistency upsets developers
- actions that can be interpreted multiple ways
- don't provide UI conventions - devs have to use the twitter website first to understand what to do with the data.

java.util.Calendar/Date is indeed a fucking awful API.

import in Scala lets you do "import java.util.{Calendar, Date}" - Mmmmm love that syntactic sugar.

Yelp has an API? hehe aww how cute.

Yelp Docs don't match the actual API. Examples use single-quoted strings in JSON, which isn't valid JSON.

Yelp API puts response codes into the JSON payload instead of using HTTP headers to indicate OK, ERROR and so on.

! in Scala can mean either the traditional boolean NOT operator, or "send the following message to this actor": actorObj ! "message"
This is somewhat ambiguous. Al3x: "You get used to it." If it's okay for Scala why is it not okay for Win32 APIs? Many developers have just gotten "Used to it" in Win32. This is a nit, and I see his point.

REST vs. SOAP, WS-*: SOAP does a lot for the programmer: machine readable API definition -> auto-code generation.
REST doesn't write any code for you, but is intuitive enough not to require that.

"In my experience programmers don't like having details hidden from them" - but encapsulation and information hiding are fundamental to OO, if not API design.

"Smalltalk never really took off as a programming language" I know some pros who sold a shit ton of Smalltalk to banks in the 1980/90s who would disagree.

High traffic Twitter API users have requested Thrift access instead of REST API access. This makes total sense and I expect to see more of it.

"what reason do you have for not offering your own url shortening service, or not including URLs in the message itself?"
Al3x: "we don't have a good reason, which is why how we deal with urls is going to change" This sounds like twitter is going to offer its own URL shortener. Can't tell from his comments, but they are just dropping a lot of out-click data on the floor currently.

Al3x: The people who build the most interesting stuff bug us the least on mailing lists.

I have to wonder if in the future, as wifi becomes more prevalent, will Twitter : SMS :: Blogger : FTP ?

SignUp API coming soon?

how much did CNN pay for @cnnbrk? (would indicate $ value of followers to CNN)

>90% of their traffic is to the API rather than the web UI.