- From: Charles McCathie Nevile <chaals@yandex-team.ru>
- Date: Tue, 12 Feb 2013 01:58:15 +0100
- To: "Brian Kardell" <bkardell@gmail.com>
- Cc: "Marcos Caceres" <w3c@marcosc.com>, "Robin Berjon" <robin@w3.org>, "www-tag@w3.org" <www-tag@w3.org>
- Message-ID: <op.wsdbndsby3oazb@chaals.local>
On Tue, 12 Feb 2013 01:02:38 +0100, Brian Kardell <bkardell@gmail.com> wrote: > >> Or, thinking of it from the perspective of a working group chair, and >> then again from the perspective of someone who teaches developers >> simple stuff about >>APIs, it would help with testing. It would also >> provide good material to assist uptake, at least to the point where >> "end-user developers" (by which I mean simple >>folk like me) could >> have meaningful conversations with people who can make their own >> libraries that are good enough for other users (by which I mean clever >> >>folk like Yehuda), where the "end users" could explain their problems >> and the designers could clearly explain whether this is an issue in the >> API they have >>created, or just a missing bit of library code that >> "can probably be done in a couple of days"... which is of course an >> invitation to spend the couple of days and >>prove it. >> >> [...] >> >>> For the bad design bit, well, we've been missing a manual on how to >>> write good APIs for a long time. >> >> Yes. An important aspect, as Marcos noted, is to identify what bits of >> "good" APIs are generally good, and what bits of them are good in the >> specific case of that >>API. And likewise, what things are not good. >> > > While there probably are some good general rules, I think this is > somewhat like saying "good paintings are 20% yellow" or something. Yeah, definitely... > The best API is the one the most people are able to feel comfortable and > productive with - they'll know it when they use it. It seems that really > the best way to >know that is to get people involved and using early > (maybe even competing) and forward compatible versions of them before > they go so far as to become a >standard.... > I really think that the success of any one of them ultimately has very > little to do with how many people created it, what process they used, > whether it is high or low >level, etc. and more about the simple "will > people find this useful/intuitive and want to use it". I'm not > suggesting it's just wild-west free-for-all or anything, just that > >those are important components of what I think a really excellent > solution looks like. Something that can provide data to those questions. "People will find this intuitive and want to use it" is pretty clearly one of the big clues to a great API. And I don't expect that there is a magic formula - in part because making things intuitive can be done by showing people what they have already seen, and that depends in large extent on where they have been before. But explaining what has worked and what hasn't gives people something to think about, and some kind of frame to think in, which in turn can help them get right answers more often. (And asking people to rethink things if what they are doing looks like something that went wrong before is good too - even if it turns out that this time that thing is the right answer...) cheers Chaals -- Charles McCathie Nevile - Consultant (web standards) CTO Office, Yandex chaals@yandex-team.ru Find more at http://yandex.com
Received on Tuesday, 12 February 2013 00:58:47 UTC