Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Ingy's "Swiss Army Light Sabre" - or, "how do you design your APIs?"

by dragonchild (Archbishop)
on Mar 23, 2004 at 13:56 UTC ( #338998=note: print w/ replies, xml ) Need Help??


in reply to Ingy's "Swiss Army Light Sabre" - or, "how do you design your APIs?"

To me, a good API is something that maps a thought-space onto a problem-space without significant overlap or underlap. It's a translation between the way people think about something and the way a computer needs to be told about it.

As for how you come up with it? I don't think there's a formula for the next good API. I do think we can discuss characteristics of good APIs, though. In fact, this is exactly what the Perl6 language discussion is all about - a good API. And, from following those discussions, I think the most important thing an API designer can have is extensive experience in the problem-space. That and an obsessive-compulsive drive for simplicity. (Sorry, TimToady. *grins*)

------
We are the carpenters and bricklayers of the Information Age.

Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose


Comment on Re: Ingy's "Swiss Army Light Sabre" - or, "how do you design your APIs?"

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://338998]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2015-07-28 03:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (252 votes), past polls