<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: You know you&#8217;ve found a bad C# API when&#8230;</title>
	<atom:link href="http://reedcopsey.com/2009/04/07/you-know-youve-found-a-bad-c-api-when/feed/" rel="self" type="application/rss+xml" />
	<link>http://reedcopsey.com/2009/04/07/you-know-youve-found-a-bad-c-api-when/</link>
	<description>Thoughts on C#, WPF, .NET, and programming for Scientific Visualization</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:38:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Mark</title>
		<link>http://reedcopsey.com/2009/04/07/you-know-youve-found-a-bad-c-api-when/#comment-3</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Thu, 09 Apr 2009 16:30:33 +0000</pubDate>
		<guid isPermaLink="false">http://reedcopsey.com/?p=19#comment-3</guid>
		<description>Oh yes, I have seen a few of these as well.

One was a commercial product that sold itself as a wonderful object oriented programming API to help with driver interfaces to telephone equipment. That was the sales pitch. 

After getting to work with the product, I found that what they meant is they used standard Studio objects for their UI but the driver interfaces ... not so much. For example, absolutely every property of all classes was implemented as a static, making it global to the application. They did this in the name of &quot;simplicity&quot; for other programmers. They didn&#039;t want us to have to fuss with things like creating properties.

So it was not possible to create a local variable of any sort, and even a loop counter was static in their system. Everything was one big global pool of data. If you wanted to use a second copy of one of their classes, you would have to define an entirely new pool of data for every parameter, temporary variable, array ... otherwise you would clobber data in the first class instance.

Yuck.

[WORDPRESS HASHCASH] The poster sent us &#039;0 which is not a hashcash value.</description>
		<content:encoded><![CDATA[<p>Oh yes, I have seen a few of these as well.</p>
<p>One was a commercial product that sold itself as a wonderful object oriented programming API to help with driver interfaces to telephone equipment. That was the sales pitch. </p>
<p>After getting to work with the product, I found that what they meant is they used standard Studio objects for their UI but the driver interfaces &#8230; not so much. For example, absolutely every property of all classes was implemented as a static, making it global to the application. They did this in the name of &#8220;simplicity&#8221; for other programmers. They didn&#8217;t want us to have to fuss with things like creating properties.</p>
<p>So it was not possible to create a local variable of any sort, and even a loop counter was static in their system. Everything was one big global pool of data. If you wanted to use a second copy of one of their classes, you would have to define an entirely new pool of data for every parameter, temporary variable, array &#8230; otherwise you would clobber data in the first class instance.</p>
<p>Yuck.</p>
<p>[WORDPRESS HASHCASH] The poster sent us &#8217;0 which is not a hashcash value.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
 
