Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
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?
[Corion]: erix: I'm not sure if it really is MySQL - maybe MS SQL also has LIMIT 0
[erix]: it has TOP, IIRC
[Corion]: erix: Ah. I use where 1 = 0 for queries where I only am interested in the structure ;)
[erix]: 1=0 is as short as TOP :)
[erix]: "code of someone that died" -- kinda nice if your code stops working too
[erix]: hard to implement, hmm

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (10)
As of 2017-01-23 09:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (192 votes). Check out past polls.