http://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&feed=atom&action=historyBlogs:JaroslavTulach:Theory:DiamondsVsStars - Revision history2024-03-29T06:37:56ZRevision history for this page on the wikiMediaWiki 1.12.0rc1http://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=9992&oldid=prevJaroslavTulach at 12:33, 7 May 20192019-05-07T12:33:40Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 12:33, 7 May 2019</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the [[TheAPIBook|Practical API Design]] book to [[Evolving_the_API_Universe|chapter 15]] and [[End_Of_Life_Procedures|chapter 19]], you'll find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black </del>hole <del style="color: red; font-weight: bold; text-decoration: none;">and make it disappear there. Moreover, you can do it in a completely ''user driven'' way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the [[NetBeans]] project done that few times.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">{{:Black </ins>hole<ins style="color: red; font-weight: bold; text-decoration: none;">}}</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>In short, although APIs look eternal, they are not ''forever'', they are more like stars.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>In short, although APIs look eternal, they are not ''forever'', they are more like stars.</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=3523&oldid=prevJaroslavTulach at 18:53, 17 February 20102010-02-17T18:53:23Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 18:53, 17 February 2010</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>{{:Parallel <ins style="color: red; font-weight: bold; text-decoration: none;">Inventions</ins>}}</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>{{:Parallel <del style="color: red; font-weight: bold; text-decoration: none;">Invetions</del>}}</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch had spent some time thinking about API design too. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch had spent some time thinking about API design too. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=3519&oldid=prevJaroslavTulach at 18:52, 17 February 20102010-02-17T18:52:09Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 18:52, 17 February 2010</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that [[Blogs:JaroslavTulach:Theory:DiamondsVsStars|uncommon]]. I know that [[wikipedia::Lightning_rod|lightning rod]] has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">For a centuries great mathematicians were troubled by [[wikipedia</del>:<del style="color: red; font-weight: bold; text-decoration: none;">:Euclid|Euclid]]'s [[wikipedia::Parallel_postulate|fifth postulate]]. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently [[wikipedia::János_Bolyai|János Bolyai]], [[wikipedia::Nikolai_Ivanovich_Lobachevsky|Nikolaj Lobačevsky]] and maybe also [[wikipedia::Carl_Friedrich_Gauss|Gauss]] discovered that [[wikipedia::Parallel_postulate|fifth postulate]] is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">{{</ins>:<ins style="color: red; font-weight: bold; text-decoration: none;">Parallel Invetions}}</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to frequencies helping discover similar solutions.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch had spent some time thinking about API design too. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch had spent some time thinking about API design too. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1413&oldid=prevJaroslavTulach at 03:38, 26 September 20082008-09-26T03:38:19Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 03:38, 26 September 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 9:</td>
<td colspan="2" class="diff-lineno">Line 9:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the [[TheAPIBook|Practical API Design]] book to [[Evolving_the_API_Universe|chapter 15]] and [[End_Of_Life_Procedures|chapter 19]], you find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black hole and make it disappear there. Moreover, you can do it in a completely ''user driven'' way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the [[NetBeans]] project done that few times.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the [[TheAPIBook|Practical API Design]] book to [[Evolving_the_API_Universe|chapter 15]] and [[End_Of_Life_Procedures|chapter 19]], you<ins style="color: red; font-weight: bold; text-decoration: none;">'ll </ins>find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black hole and make it disappear there. Moreover, you can do it in a completely ''user driven'' way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the [[NetBeans]] project done that few times.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>In short, although APIs look eternal, they are not ''forever'', they are more like stars.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>In short, although APIs look eternal, they are not ''forever'', they are more like stars.</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1412&oldid=prevJaroslavTulach at 03:36, 26 September 20082008-09-26T03:36:57Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 03:36, 26 September 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to frequencies helping discover similar solutions.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to frequencies helping discover similar solutions.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch had <del style="color: red; font-weight: bold; text-decoration: none;">also </del>spent some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch had spent some time thinking <ins style="color: red; font-weight: bold; text-decoration: none;">about </ins>API design <ins style="color: red; font-weight: bold; text-decoration: none;">too</ins>. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1411&oldid=prevJaroslavTulach at 03:36, 26 September 20082008-09-26T03:36:28Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 03:36, 26 September 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to frequencies helping discover similar solutions.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to frequencies helping discover similar solutions.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that <del style="color: red; font-weight: bold; text-decoration: none;">the </del>Josh Bloch also <del style="color: red; font-weight: bold; text-decoration: none;">spend </del>some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that Josh Bloch <ins style="color: red; font-weight: bold; text-decoration: none;">had </ins>also <ins style="color: red; font-weight: bold; text-decoration: none;">spent </ins>some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready]. They just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1408&oldid=prev213.220.235.180 at 03:32, 26 September 20082008-09-26T03:32:36Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 03:32, 26 September 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that uncommon. I know that [[wikipedia::Lightning_rod|lightning rod]] has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that <ins style="color: red; font-weight: bold; text-decoration: none;">[[Blogs:JaroslavTulach:Theory:DiamondsVsStars|</ins>uncommon<ins style="color: red; font-weight: bold; text-decoration: none;">]]</ins>. I know that [[wikipedia::Lightning_rod|lightning rod]] has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>For a centuries great mathematicians were troubled by [[wikipedia::Euclid|Euclid]]'s [[wikipedia::Parallel_postulate|fifth postulate]]. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently [[wikipedia::János_Bolyai|János Bolyai]], [[wikipedia::Nikolai_Ivanovich_Lobachevsky|Nikolaj Lobačevsky]] and maybe also [[wikipedia::Carl_Friedrich_Gauss|Gauss]] discovered that [[wikipedia::Parallel_postulate|fifth postulate]] is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>For a centuries great mathematicians were troubled by [[wikipedia::Euclid|Euclid]]'s [[wikipedia::Parallel_postulate|fifth postulate]]. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently [[wikipedia::János_Bolyai|János Bolyai]], [[wikipedia::Nikolai_Ivanovich_Lobachevsky|Nikolaj Lobačevsky]] and maybe also [[wikipedia::Carl_Friedrich_Gauss|Gauss]] discovered that [[wikipedia::Parallel_postulate|fifth postulate]] is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?</div></td></tr>
</table>213.220.235.180http://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1407&oldid=prevJaroslavTulach at 21:17, 25 September 20082008-09-25T21:17:33Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 21:17, 25 September 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that the Josh Bloch also spend some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that the Josh Bloch also spend some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were <del style="color: red; font-weight: bold; text-decoration: none;">already] cooked and </del>ready. <del style="color: red; font-weight: bold; text-decoration: none;">There </del>just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were ready<ins style="color: red; font-weight: bold; text-decoration: none;">]</ins>. <ins style="color: red; font-weight: bold; text-decoration: none;">They </ins>just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the [[TheAPIBook|Practical API Design]] book to [[Evolving_the_API_Universe|chapter 15]] and [[End_Of_Life_Procedures|chapter 19]], you find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black hole and make it disappear there. Moreover, you can do it in a completely ''user driven'' way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the [[NetBeans]] project done that few times.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the [[TheAPIBook|Practical API Design]] book to [[Evolving_the_API_Universe|chapter 15]] and [[End_Of_Life_Procedures|chapter 19]], you find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black hole and make it disappear there. Moreover, you can do it in a completely ''user driven'' way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the [[NetBeans]] project done that few times.</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1405&oldid=prevJaroslavTulach at 21:04, 25 September 20082008-09-25T21:04:25Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 21:04, 25 September 2008</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that uncommon. I know that [[wikipedia::Lightning_rod|lightning rod]] has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that uncommon. I know that [[wikipedia::Lightning_rod|lightning rod]] has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>For a centuries great mathematicians were troubled by [[wikipedia::Euclid|Euclid]]'s [[wikipedia::Parallel_postulate|fifth postulate]]. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently [[wikipedia::János_Bolyai]], [[wikipedia::Nikolai_Ivanovich_Lobachevsky]] and maybe also [[wikipedia::Carl_Friedrich_Gauss]] discovered that [[wikipedia::Parallel_postulate|fifth postulate]] is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>For a centuries great mathematicians were troubled by [[wikipedia::Euclid|Euclid]]'s [[wikipedia::Parallel_postulate|fifth postulate]]. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently [[wikipedia::János_Bolyai<ins style="color: red; font-weight: bold; text-decoration: none;">|János Bolyai</ins>]], [[wikipedia::Nikolai_Ivanovich_Lobachevsky<ins style="color: red; font-weight: bold; text-decoration: none;">|Nikolaj Lobačevsky</ins>]] and maybe also [[wikipedia::Carl_Friedrich_Gauss<ins style="color: red; font-weight: bold; text-decoration: none;">|Gauss</ins>]] discovered that [[wikipedia::Parallel_postulate|fifth postulate]] is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to discover similar solutions.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to <ins style="color: red; font-weight: bold; text-decoration: none;">frequencies helping </ins>discover similar solutions.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that the Josh Bloch also spend some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that the Josh Bloch also spend some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.''.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.'' <ins style="color: red; font-weight: bold; text-decoration: none;">This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 ideas were already] cooked and ready. There just waited for someone to put them into a book. When I finally began to write [[TheAPIBook]], I was searching proper allegory to introduce the reader to the special context of API design. I knew the ''diamonds'' methaphor, but I could not use it, as I believe it is missing something important!</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the [[TheAPIBook|Practical API Design]] book to [[Evolving_the_API_Universe|chapter 15]] and [[End_Of_Life_Procedures|chapter 19]], you find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black hole and make it disappear there. Moreover, you can do it in a completely ''user driven'' way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the [[NetBeans]] project done that few times.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">In short, although APIs look eternal, they are not ''forever'', they are more like stars</ins>.</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Theory:DiamondsVsStars&diff=1404&oldid=prevJaroslavTulach: New page: Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if yo...2008-09-25T20:37:02Z<p>New page: Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if yo...</p>
<p><b>New page</b></p><div>Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that uncommon. I know that [[wikipedia::Lightning_rod|lightning rod]] has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?<br />
<br />
For a centuries great mathematicians were troubled by [[wikipedia::Euclid|Euclid]]'s [[wikipedia::Parallel_postulate|fifth postulate]]. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently [[wikipedia::János_Bolyai]], [[wikipedia::Nikolai_Ivanovich_Lobachevsky]] and maybe also [[wikipedia::Carl_Friedrich_Gauss]] discovered that [[wikipedia::Parallel_postulate|fifth postulate]] is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?<br />
<br />
There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to discover similar solutions.<br />
<br />
I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded [http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi BOF]. However I still believed [[NetBeans]] is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the [http://www.artima.com/weblogs/viewpost.jsp?thread=142428 end of 2005], that the Josh Bloch also spend some time thinking API design. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his [http://lcsd05.cs.tamu.edu/slides/keynote.pdf presentation] are similar to mine. There must have been something in the air, mustn't it?<br />
<br />
As one comment stated: ''These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.''.</div>JaroslavTulach