(New page: Casey gave a good talk on [https://mollyrocket.com/forums/viewtopic.php?t=215 Designing and Evaluating Reusable Components], which was really a talk on API design.) |
|||
Line 1: | Line 1: | ||
Casey gave a good talk on | This is really just a miscellaneous collection of thoughts and links right now, not a full fledged article on API design. | ||
[http://mollyrocket.com Casey] gave a good talk at [http://game-tech.com/ Game|Tech] on | |||
[https://mollyrocket.com/forums/viewtopic.php?t=215 Designing and Evaluating Reusable Components], which was really a talk on API design. | [https://mollyrocket.com/forums/viewtopic.php?t=215 Designing and Evaluating Reusable Components], which was really a talk on API design. | ||
Here's the executive summary: | |||
* Granularity - A or BC<br>Flexibility vs. simplicity | |||
* Redundancy - A or B<br>Convenience vs. orthgonality | |||
* Coupling - A implies B<br>Less is always better | |||
* Retention - A equals B<br>Synchronization vs. automation | |||
* Flow Control - A invokes B<br>More game control is always better | |||
Another great insight on API and language design was from Larry Wall, the designer of Perl, but I heard about it from [http://number-none.com/blow Jon Blow] in [http://number-none.com/product/Lerp,%20Part%201/index.html this article]. You want your language or API to be ''diagonal'', not ''orthogonal'' like people are used to thinking. If you want to go from one place to another, you want to travel the shortest distance, not have to take the Manhattan path. |
Revision as of 05:45, 21 January 2007
This is really just a miscellaneous collection of thoughts and links right now, not a full fledged article on API design.
Casey gave a good talk at Game|Tech on Designing and Evaluating Reusable Components, which was really a talk on API design.
Here's the executive summary:
- Granularity - A or BC
Flexibility vs. simplicity - Redundancy - A or B
Convenience vs. orthgonality - Coupling - A implies B
Less is always better - Retention - A equals B
Synchronization vs. automation - Flow Control - A invokes B
More game control is always better
Another great insight on API and language design was from Larry Wall, the designer of Perl, but I heard about it from Jon Blow in this article. You want your language or API to be diagonal, not orthogonal like people are used to thinking. If you want to go from one place to another, you want to travel the shortest distance, not have to take the Manhattan path.