Anand,<br>I found that this is one of the most difficult things to do well. Triggered by this post I did some Googling and read a couple of others. I am posting a link to the Google presentation which is probably one of the best.
<br><br><a href="http://lcsd05.cs.tamu.edu/slides/keynote.pdf">http://lcsd05.cs.tamu.edu/slides/keynote.pdf</a><br><br>Dorai<br><a href="http://www.thodla.com">www.thodla.com</a><br><br><br><br><br><div class="gmail_quote">
On Jan 2, 2008 10:15 AM, Anand Balachandran Pillai &lt;<a href="mailto:abpillai@gmail.com">abpillai@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Nice post. Talking about APIs, I used to find Win32 APIs as the most<br>horrible in terms of number of parameters they take and the obscure<br>name of the params.<br><br>I did not know that .NET APIs suffer from similar issues. The Select
<br>API mentioned in the article seems to be very horribly designed and<br>not well thought of.<br><br>Some people think that if they just preserve the arguments and order<br>of arguments in an API as is the usual accepted form of it, that is
<br>enough. For example this Select(...) API does it since it kind of<br>retains the &quot;form&quot; of its UNIX select(...) function call (except for<br>using an integer instead of a structure for the timeout argument,<br>
which is a crime!) . But it is modifying the &quot;semantics&quot; of the API in<br>terms of how it modifies its arguments. It is not just important to<br>retain the &quot;form&quot; but also the &quot;semantics&quot; of an API to make it easy
<br>to use.<br><br>--Anand<br><div><div></div><div class="Wj3C7c"><br>On Jan 1, 2008 10:24 AM, Dorai Thodla &lt;<a href="mailto:dorai@thodla.com">dorai@thodla.com</a>&gt; wrote:<br>&gt; This may be a good topic for discussion.
<br>&gt;<br>&gt; Why changing APIs might become a criminal offense - Should the authors of<br>&gt; lousy APIs be held accountable for their crimes?<br>&gt; &nbsp;<a href="http://www.acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=488&amp;page=1" target="_blank">
http://www.acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=488&amp;page=1</a><br>&gt;<br>&gt;<br>&gt; --<br>&gt; Dorai Thodla (<a href="http://www.thodla.com" target="_blank">http://www.thodla.com</a>)<br>&gt; US: 650-206-2688
<br>&gt; &nbsp;India: 98408 89258<br></div></div>&gt; _______________________________________________<br>&gt; BangPypers mailing list<br>&gt; <a href="mailto:BangPypers@python.org">BangPypers@python.org</a><br>&gt; <a href="http://mail.python.org/mailman/listinfo/bangpypers" target="_blank">
http://mail.python.org/mailman/listinfo/bangpypers</a><br>&gt;<br>&gt;<br><font color="#888888"><br><br><br>--<br>-Anand<br>_______________________________________________<br>BangPypers mailing list<br><a href="mailto:BangPypers@python.org">
BangPypers@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/bangpypers" target="_blank">http://mail.python.org/mailman/listinfo/bangpypers</a><br></font></blockquote></div><br><br clear="all"><br>-- <br>
Dorai Thodla (<a href="http://www.thodla.com">http://www.thodla.com</a>)<br>US: 650-206-2688<br>India: 98408 89258