<?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"
	>
<channel>
	<title>Comments on: Generic Algorithms in C#</title>
	<atom:link href="http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/feed/" rel="self" type="application/rss+xml" />
	<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/</link>
	<description>Closed weekends and holidays.</description>
	<pubDate>Sat, 17 May 2008 14:56:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
		<item>
		<title>By: Gerke Geurts</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4992</link>
		<dc:creator>Gerke Geurts</dc:creator>
		<pubDate>Mon, 23 Apr 2007 10:43:36 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4992</guid>
		<description>Done!</description>
		<content:encoded><![CDATA[<p>Done!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Matthews</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4966</link>
		<dc:creator>Andrew Matthews</dc:creator>
		<pubDate>Mon, 23 Apr 2007 00:07:21 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4966</guid>
		<description>Hi Gerke,

I'd be more than happy to contribute to design discussions etc. Please feel free to add me.

My Email address is: matthews DOT andrew AT gmail DOT com</description>
		<content:encoded><![CDATA[<p>Hi Gerke,</p>
<p>I&#8217;d be more than happy to contribute to design discussions etc. Please feel free to add me.</p>
<p>My Email address is: matthews DOT andrew AT gmail DOT com</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gerke Geurts</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4962</link>
		<dc:creator>Gerke Geurts</dc:creator>
		<pubDate>Sun, 22 Apr 2007 22:04:38 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4962</guid>
		<description>My first priority is to create a core set of collection classes with as little baggage (added functionality) as possible. I want to keep the generic algorithms and additional functionality (such as views and snapshots in the current C5) as decoupled as possible from the core collections. The .NET 3.5 extension methods are interesting in this regard, though it would be nice to have a decent solution for .NET 2.0 too.

My current thinking is to provide the core collection implementations with sufficient functionality to introduce an arbitrary number of interceptors that can be used to layer additional functionality on the collections. I suspect we will also need to provide an introspection interface on the core collections to allow for example optimisation of generic algorithms. In the C5 collections a lot of the collection semantics are captured on the interfaces supported by collections and additionally on some properties. My gut feeling is that we must be able to that in a cleaner way that does not clutter the core collection API as much.

If you would be interested in reviewing/contributing to the design of the collections, I'd be more than happy to add you to the newly created nhive-development google group. That will be the right place to post and discuss ideas at this point in time. No strings attached, I'm pretty busy otherwise myself.</description>
		<content:encoded><![CDATA[<p>My first priority is to create a core set of collection classes with as little baggage (added functionality) as possible. I want to keep the generic algorithms and additional functionality (such as views and snapshots in the current C5) as decoupled as possible from the core collections. The .NET 3.5 extension methods are interesting in this regard, though it would be nice to have a decent solution for .NET 2.0 too.</p>
<p>My current thinking is to provide the core collection implementations with sufficient functionality to introduce an arbitrary number of interceptors that can be used to layer additional functionality on the collections. I suspect we will also need to provide an introspection interface on the core collections to allow for example optimisation of generic algorithms. In the C5 collections a lot of the collection semantics are captured on the interfaces supported by collections and additionally on some properties. My gut feeling is that we must be able to that in a cleaner way that does not clutter the core collection API as much.</p>
<p>If you would be interested in reviewing/contributing to the design of the collections, I&#8217;d be more than happy to add you to the newly created nhive-development google group. That will be the right place to post and discuss ideas at this point in time. No strings attached, I&#8217;m pretty busy otherwise myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Matthews</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4940</link>
		<dc:creator>Andrew Matthews</dc:creator>
		<pubDate>Sun, 22 Apr 2007 12:33:36 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4940</guid>
		<description>I wonder how your API design efforts will proceed. I imagine that you will be targeting .NET 3.5, since if the project is a long one, that will be the latest version you'll use by the time NHive comes to maturity. I'm just imagining how different my designs might be if I were to design a collections library now, with the use of Extension methods and LINQ, rather than the traditional 'hierarchy of topologies' that seems to be the norm for any large scale collections library. Maybe, the differences are ultimately pretty superficial (it is syntactic sugar after all), but in terms of readbility and genericity, you might be able to combine generic algorithms into the collections library really smoothly and without side effects using such a mechanism. It would decouple the collections cleanly from the algorithms too, which would I imagine be a major focus of your design efforts.

What are your priorities?</description>
		<content:encoded><![CDATA[<p>I wonder how your API design efforts will proceed. I imagine that you will be targeting .NET 3.5, since if the project is a long one, that will be the latest version you&#8217;ll use by the time NHive comes to maturity. I&#8217;m just imagining how different my designs might be if I were to design a collections library now, with the use of Extension methods and LINQ, rather than the traditional &#8216;hierarchy of topologies&#8217; that seems to be the norm for any large scale collections library. Maybe, the differences are ultimately pretty superficial (it is syntactic sugar after all), but in terms of readbility and genericity, you might be able to combine generic algorithms into the collections library really smoothly and without side effects using such a mechanism. It would decouple the collections cleanly from the algorithms too, which would I imagine be a major focus of your design efforts.</p>
<p>What are your priorities?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gerke Geurts</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4837</link>
		<dc:creator>Gerke Geurts</dc:creator>
		<pubDate>Sat, 21 Apr 2007 07:43:43 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4837</guid>
		<description>Andrew,

We are still in the design stage for NHive. Our intention is to create a new collection library. We will use the latest C5 library as departing point, but will not aim to maintain backward compatibility. Current thinking is to simplify the core collection classes and allow additional functionality to be layered on top/plugged in.

When it comes to iterators, I'd consider adopting the CSTL approach. Regarding LINQ, as long as we support IEnumerable wherever possible, the LINQ extension methods should work.

Regards,
Gerke.</description>
		<content:encoded><![CDATA[<p>Andrew,</p>
<p>We are still in the design stage for NHive. Our intention is to create a new collection library. We will use the latest C5 library as departing point, but will not aim to maintain backward compatibility. Current thinking is to simplify the core collection classes and allow additional functionality to be layered on top/plugged in.</p>
<p>When it comes to iterators, I&#8217;d consider adopting the CSTL approach. Regarding LINQ, as long as we support IEnumerable wherever possible, the LINQ extension methods should work.</p>
<p>Regards,<br />
Gerke.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Matthews</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4006</link>
		<dc:creator>Andrew Matthews</dc:creator>
		<pubDate>Wed, 11 Apr 2007 13:05:37 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-4006</guid>
		<description>Gerke,

That would be wonderful news! The two combined would be an awesome framework, and I would certainly adopt it. I'm not sure what the current status of CSTL is. I can't help wondering about the following:

* how compatible are the two breeds of iterators in CSTL and C5? 
* If you create whole new types of iterator, would you lose the ability to use the LINQ to objects extension methods, which will add another way to do generic methods...?

Either way, it would certainly be pleasant to put such collections to agressive use in some of my applications.

Andrew</description>
		<content:encoded><![CDATA[<p>Gerke,</p>
<p>That would be wonderful news! The two combined would be an awesome framework, and I would certainly adopt it. I&#8217;m not sure what the current status of CSTL is. I can&#8217;t help wondering about the following:</p>
<p>* how compatible are the two breeds of iterators in CSTL and C5?<br />
* If you create whole new types of iterator, would you lose the ability to use the LINQ to objects extension methods, which will add another way to do generic methods&#8230;?</p>
<p>Either way, it would certainly be pleasant to put such collections to agressive use in some of my applications.</p>
<p>Andrew</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gerke Geurts</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-3990</link>
		<dc:creator>Gerke Geurts</dc:creator>
		<pubDate>Wed, 11 Apr 2007 10:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-3990</guid>
		<description>I have done some work on the C5 Collections library to improve support for standard .NET collection interfaces. This has spawned off into the newly created &lt;a href="http://code.google.com/p/nhive" rel="nofollow"&gt;NHive&lt;/a&gt; project. One of the things I would be interested in is integrating CSTL with C5 to get the best of both worlds.

Regards,
Gerke.</description>
		<content:encoded><![CDATA[<p>I have done some work on the C5 Collections library to improve support for standard .NET collection interfaces. This has spawned off into the newly created <a href="http://code.google.com/p/nhive" rel="nofollow">NHive</a> project. One of the things I would be interested in is integrating CSTL with C5 to get the best of both worlds.</p>
<p>Regards,<br />
Gerke.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Stora</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-545</link>
		<dc:creator>Peter Stora</dc:creator>
		<pubDate>Tue, 24 Oct 2006 11:07:38 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-545</guid>
		<description>This kind of sucks... :(</description>
		<content:encoded><![CDATA[<p>This kind of sucks&#8230; :(</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Stora</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-544</link>
		<dc:creator>Peter Stora</dc:creator>
		<pubDate>Tue, 24 Oct 2006 11:06:52 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-544</guid>
		<description>Ok, I'll try with preformatted text instead:


public class Program
{
    static void Main(string[] args)
    {
        IReadableCollection&#60;int&#62; rc = null;
        IReadableCollection.Position&#60;int&#62; foundPos = Algorithms&#60;int&#62;.find(rc.Begin, 10, null);

        ISequence&#60;int&#62; s = null;
        Algorithms&#60;int&#62;.copy(rc.Begin, rc.End, s.Begin);

        ICollection&#60;int&#62; c = null;
        Algorithms&#60;int&#62;.copyBackToFront(s.Begin, s.End, c.Begin);
    }
}
</description>
		<content:encoded><![CDATA[<p>Ok, I&#8217;ll try with preformatted text instead:</p>
<p>public class Program<br />
{<br />
    static void Main(string[] args)<br />
    {<br />
        IReadableCollection&lt;int&gt; rc = null;<br />
        IReadableCollection.Position&lt;int&gt; foundPos = Algorithms&lt;int&gt;.find(rc.Begin, 10, null);</p>
<p>        ISequence&lt;int&gt; s = null;<br />
        Algorithms&lt;int&gt;.copy(rc.Begin, rc.End, s.Begin);</p>
<p>        ICollection&lt;int&gt; c = null;<br />
        Algorithms&lt;int&gt;.copyBackToFront(s.Begin, s.End, c.Begin);<br />
    }<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Stora</title>
		<link>http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-543</link>
		<dc:creator>Peter Stora</dc:creator>
		<pubDate>Tue, 24 Oct 2006 11:00:24 +0000</pubDate>
		<guid isPermaLink="false">http://aabs.wordpress.com/2006/10/05/generic-algorithms-in-c/#comment-543</guid>
		<description>Lets see if this gets formated correctly:

&lt;code&gt;
public class Program
{
    static void Main(string[] args)
    {
        IReadableCollection&#60;int&#62; rc = null;
        IReadableCollection.Position&#60;int&#62; foundPos = Algorithms&#60;int&#62;.find(rc.Begin, 10, null);

        ISequence&#60;int&#62; s = null;
        Algorithms&#60;int&#62;.copy(rc.Begin, rc.End, s.Begin);

        ICollection&#60;int&#62; c = null;
        Algorithms&#60;int&#62;.copyBackToFront(s.Begin, s.End, c.Begin);
    }
}
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Lets see if this gets formated correctly:</p>
<p><code><br />
public class Program<br />
{<br />
    static void Main(string[] args)<br />
    {<br />
        IReadableCollection&lt;int&gt; rc = null;<br />
        IReadableCollection.Position&lt;int&gt; foundPos = Algorithms&lt;int&gt;.find(rc.Begin, 10, null);</p>
<p>        ISequence&lt;int&gt; s = null;<br />
        Algorithms&lt;int&gt;.copy(rc.Begin, rc.End, s.Begin);</p>
<p>        ICollection&lt;int&gt; c = null;<br />
        Algorithms&lt;int&gt;.copyBackToFront(s.Begin, s.End, c.Begin);<br />
    }<br />
}<br />
</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>
