<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Are iterators fundamentally flawed ?</title><link>http://msmvps.com/blogs/bill/archive/2008/08/02/are-iterators-fundamentally-flawed.aspx</link><description>It seems apparent that with computers as we currently know them, processors are now set to scale out not up.. that is, clock speeds aren’t rapidly growing, and certainly not doubling every year or two, instead the number of processors on a chip is.&amp;#160;</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>re: Are iterators fundamentally flawed ?</title><link>http://msmvps.com/blogs/bill/archive/2008/08/02/are-iterators-fundamentally-flawed.aspx#1643487</link><pubDate>Tue, 05 Aug 2008 22:00:21 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1643487</guid><dc:creator>Tetsuo</dc:creator><description>&lt;p&gt;Iterators, objects and threads are not broken or flawed. They just weren&amp;#39;t designed to be optimal in a parallel processing environment.&lt;/p&gt;
&lt;p&gt;OO languages (at least mainstream ones) pass object references, objects have state, and are mutable &amp;#39;by default&amp;#39; (in contrast of pass-by-copy semantics in Pascal or C, in which even if you can change a struct property, it won&amp;#39;t reflect onto the original one). STATE is what makes difficult programming in a multi-core environment, not common constructs in mainstream languages.&lt;/p&gt;
&lt;p&gt;And that is what makes languages like Scala, which uses the concept of Actors and message-passing, more multi-core-friendly, not closures.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1643487" width="1" height="1"&gt;</description></item><item><title>re: Are iterators fundamentally flawed ?</title><link>http://msmvps.com/blogs/bill/archive/2008/08/02/are-iterators-fundamentally-flawed.aspx#1643433</link><pubDate>Tue, 05 Aug 2008 13:26:55 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1643433</guid><dc:creator>Markus Kohler</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I agree iterators are somehow flawed. &lt;/p&gt;
&lt;p&gt;They are used because writing control flow operations cannot be done properly in languages that do not support closures. &lt;/p&gt;
&lt;p&gt;Fortunately support for closures fixes is under way in most major programming languages. &lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Markus&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1643433" width="1" height="1"&gt;</description></item><item><title>re: Are iterators fundamentally flawed ?</title><link>http://msmvps.com/blogs/bill/archive/2008/08/02/are-iterators-fundamentally-flawed.aspx#1643408</link><pubDate>Tue, 05 Aug 2008 09:33:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1643408</guid><dc:creator>bill</dc:creator><description>&lt;p&gt;Hi Granville,&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t looked at it yet either. &amp;nbsp;I suspect they would call GetEnumerator, and then work with the enumerator, sharing that across threads. &amp;nbsp;that&amp;#39;d of course be contrary to using the language constructs in C# ;)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1643408" width="1" height="1"&gt;</description></item><item><title>re: Are iterators fundamentally flawed ?</title><link>http://msmvps.com/blogs/bill/archive/2008/08/02/are-iterators-fundamentally-flawed.aspx#1643120</link><pubDate>Sat, 02 Aug 2008 16:29:50 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1643120</guid><dc:creator>Granville Barnett</dc:creator><description>&lt;p&gt;In Thread Building Blocks (TBB, by Intel for C++) you can use iterators to tell TBB how to split something up. &lt;/p&gt;
&lt;p&gt;I&amp;#39;ve not looked at it yet, but have you looked at the TPL and its classes using Reflector? It might shed some light on the subject.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1643120" width="1" height="1"&gt;</description></item></channel></rss>