<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/App_Themes/default/rss.xslt"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:evnet="http://www.mscommunities.com/rssmodule/"><channel><title>Comment Feed for .NET Rant (Coffeehouse on Channel 9)</title><atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/forums/coffeehouse/256061-net-rant/rss/default.aspx" /><image><url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url><title>Comment Feed for .NET Rant (Coffeehouse on Channel 9)</title><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/</link></image><description>.NET Rant</description><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/</link><language>en-us</language><pubDate>Sun, 23 Sep 2007 23:25:09 GMT</pubDate><lastBuildDate>Sun, 23 Sep 2007 23:25:09 GMT</lastBuildDate><generator>EvNet (EvNet, Version=1.0.3608.3122, Culture=neutral, PublicKeyToken=null)</generator><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;blowdart wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;blockquote&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;ManipUni wrote:&lt;/strong&gt;&lt;i&gt;﻿&lt;blockquote&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;blowdart wrote:&lt;/strong&gt;&lt;i&gt;And always forget the naming guidelines and call your exceptions &lt;i&gt;example&lt;/i&gt;Exception &lt;img src="http://channel9.msdn.com/emoticons/emotion-4.gifborder="&gt;&lt;br&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Name guidelines and common sense are overrated. I name all my variables letters of the alphabet starting at A on up. If some variables are related I add 0-9 to the end ... &lt;br&gt;&lt;br&gt;e.g. &lt;br&gt;&lt;br&gt;Object b33 = new String("hello world"); &lt;br&gt;&lt;br&gt;I also hard-code all of my strings because English is the only language. Nice trick ... To reduce the number of variables you use setup a ton of objects, and randomly change what they do though-out the execution path. &lt;br&gt;&lt;br&gt;PS&amp;nbsp;- This post contains no sarcasm &lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;You sir are a fool. You need to do the following&lt;br&gt;&lt;br&gt;public readonly static string A = "A";&lt;br&gt;public readonly static string B = "B";&lt;br&gt;&lt;br&gt;and so on, then concatenate them using the overloaded + operator for maximum flexibility&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Surely it's more secure to do &lt;br&gt;&lt;br&gt;public readonly static string A = new string(new char[]{0x40});&lt;br&gt;public readonly static string B = new string(new char[]{0101});&lt;br&gt;&lt;br&gt;because you then even have the advantage that A == "B" and B == "A".&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354675</link><pubDate>Sun, 23 Sep 2007 23:25:09 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354675</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354675/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>blowdart wrote:﻿ManipUni wrote:﻿blowdart wrote:And always forget the naming guidelines and call your exceptions exampleException Name guidelines and common sense are overrated. I name all my variables letters of the alphabet starting at A on up. If some variables are related I add 0-9 to the end ...&amp;#8230;</evnet:previewtext><dc:creator>evildictaitor</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354675/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Minh wrote:&lt;/div&gt;&lt;div&gt;﻿I can tell you play nice with others.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Teach them for trying to mess with my code :P&lt;BR&gt;&lt;BR&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354531</link><pubDate>Sat, 22 Sep 2007 21:37:02 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354531</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354531/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Minh wrote:﻿I can tell you play nice with others.Teach them for trying to mess with my code :P</evnet:previewtext><dc:creator>ManipUni</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354531/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;ManipUni wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;blockquote&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;blowdart wrote:&lt;/strong&gt;&lt;i&gt;And always forget the naming guidelines and call your exceptions &lt;i&gt;example&lt;/i&gt;Exception &lt;img src="http://channel9.msdn.com/emoticons/emotion-4.gifborder="&gt;&lt;br&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Name guidelines and common sense are overrated. I name all my variables letters of the alphabet starting at A on up. If some variables are related I add 0-9 to the end ... &lt;br&gt;&lt;br&gt;e.g. &lt;br&gt;&lt;br&gt;Object b33 = new String("hello world"); &lt;br&gt;&lt;br&gt;I also hard-code all of my strings because English is the only language. Nice trick ... To reduce the number of variables you use setup a ton of objects, and randomly change what they do though-out the execution path. &lt;br&gt;&lt;br&gt;PS&amp;nbsp;- This post contains no sarcasm &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;You sir are a fool. You need to do the following&lt;br&gt;&lt;br&gt;public readonly static string A = "A";&lt;br&gt;public readonly static string B = "B";&lt;br&gt;&lt;br&gt;and so on, then concatenate them using the overloaded + operator for maximum flexibility&lt;br&gt;&lt;br&gt;&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354529</link><pubDate>Sat, 22 Sep 2007 21:23:07 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354529</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354529/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>ManipUni wrote:﻿blowdart wrote:And always forget the naming guidelines and call your exceptions exampleException Name guidelines and common sense are overrated. I name all my variables letters of the alphabet starting at A on up. If some variables are related I add 0-9 to the end ... e.g. Object b33&amp;#8230;</evnet:previewtext><dc:creator>blowdart</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354529/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;ManipUni wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;PS&amp;nbsp;- This post contains no sarcasm &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;I can tell you play nice with others.&lt;br&gt;&lt;br&gt;PS - This post is 50% sarcasm :)&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354528</link><pubDate>Sat, 22 Sep 2007 21:19:16 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354528</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354528/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>ManipUni wrote:﻿PS&amp;nbsp;- This post contains no sarcasm I can tell you play nice with others.PS - This post is 50% sarcasm :)</evnet:previewtext><dc:creator>Minh</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354528/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;blowdart wrote:&lt;/div&gt;&lt;div&gt;And always forget the naming guidelines and call your exceptions &lt;I&gt;example&lt;/I&gt;Exception &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-4.gifborder=0&gt;&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Name guidelines and common sense are overrated. I name all my variables letters of the alphabet starting at A on up. If some variables are related I add 0-9 to the end ... &lt;BR&gt;&lt;BR&gt;e.g. &lt;BR&gt;&lt;BR&gt;Object b33 = new String("hello world"); &lt;BR&gt;&lt;BR&gt;I also hard-code all of my strings because English is the only language. Nice trick ... To reduce the number of variables you use setup a ton of objects, and randomly change what they do though-out the execution path. &lt;BR&gt;&lt;BR&gt;PS&amp;nbsp;- This post contains no sarcasm</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354527</link><pubDate>Sat, 22 Sep 2007 21:16:44 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354527</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354527/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>blowdart wrote:And always forget the naming guidelines and call your exceptions exampleException Name guidelines and common sense are overrated. I name all my variables letters of the alphabet starting at A on up. If some variables are related I add 0-9 to the end ... e.g. Object b33 = new&amp;#8230;</evnet:previewtext><dc:creator>ManipUni</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354527/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;W3bbo wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;The normal types, I can understand: Intxx, String, Object, Array... but "Exception" is too special to be a class in a BCL.&lt;br&gt;&lt;br&gt;How do other languages solve this problem?&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Why special? It's part of the error handling approach, so it belongs in there. What's your thinking behind this?&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354519</link><pubDate>Sat, 22 Sep 2007 19:30:31 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354519</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354519/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>W3bbo wrote:﻿The normal types, I can understand: Intxx, String, Object, Array... but "Exception" is too special to be a class in a BCL.How do other languages solve this problem?Why special? It's part of the error handling approach, so it belongs in there. What's your thinking behind this?</evnet:previewtext><dc:creator>blowdart</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354519/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;blowdart wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;blockquote&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;ManipUni wrote:&lt;/strong&gt;&lt;i&gt;﻿&lt;p&gt;&lt;br&gt;catch(Flame flame) &lt;br&gt;{&lt;br&gt;Use&amp;nbsp;structured exception handling and reflection in your code only where absolutely necessary. &lt;br&gt;} &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;And always forget the naming guidelines and call your exceptions &lt;i&gt;example&lt;/i&gt;Exception &lt;img src="http://channel9.msdn.com/emoticons/emotion-4.gifborder="&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;That's one of the few things I don't like with many OOP languages: is that certain types of a BCL are integral to features of a &lt;i&gt;language&lt;/i&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;The normal types, I can understand: Intxx, String, Object, Array... but "Exception" is too special to be a class in a BCL.&lt;br&gt;&lt;br&gt;How do other languages solve this problem?&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354518</link><pubDate>Sat, 22 Sep 2007 19:19:28 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354518</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354518/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>blowdart wrote:﻿ManipUni wrote:﻿catch(Flame flame) {Use&amp;nbsp;structured exception handling and reflection in your code only where absolutely necessary. } And always forget the naming guidelines and call your exceptions exampleException That's one of the few things I don't like with many OOP&amp;#8230;</evnet:previewtext><dc:creator>W3bbo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354518/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;ManipUni wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;p&gt;&lt;br&gt;catch(Flame flame) &lt;br&gt;{&lt;br&gt;Use&amp;nbsp;structured exception handling and reflection in your code only where absolutely necessary. &lt;br&gt;} &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;And always forget the naming guidelines and call your exceptions &lt;i&gt;example&lt;/i&gt;Exception :p&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354517</link><pubDate>Sat, 22 Sep 2007 19:13:30 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354517</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354517/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>ManipUni wrote:﻿catch(Flame flame) {Use&amp;nbsp;structured exception handling and reflection in your code only where absolutely necessary. } And always forget the naming guidelines and call your exceptions exampleException :p</evnet:previewtext><dc:creator>blowdart</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354517/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;P&gt;try&lt;BR&gt;{&lt;BR&gt;Slow and dirty methods of doing things are slow and dirty. News at 11. &lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;catch(Flame flame) &lt;BR&gt;{&lt;BR&gt;Use&amp;nbsp;structured exception handling and reflection in your code only where absolutely necessary. &lt;BR&gt;} &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354516</link><pubDate>Sat, 22 Sep 2007 19:10:24 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354516</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354516/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>try{Slow and dirty methods of doing things are slow and dirty. News at 11. }catch(Flame flame) {Use&amp;nbsp;structured exception handling and reflection in your code only where absolutely necessary. } </evnet:previewtext><dc:creator>ManipUni</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354516/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;kachchhu wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;P&gt;hello, i want know about only bill gates if you are american so that help me &amp;amp; give me conectivity of bill gates.....................................kachchhu fr:uk&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;big_g@nevergonnahappen.com</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354490</link><pubDate>Sat, 22 Sep 2007 15:09:10 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354490</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354490/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>kachchhu wrote:﻿
hello, i want know about only bill gates if you are american so that help me &amp;amp; give me conectivity of bill gates.....................................kachchhu fr:uk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;big_g@nevergonnahappen.com</evnet:previewtext><dc:creator>Lloyd Humphreys</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354490/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Sven Groot wrote:&lt;/div&gt;&lt;div&gt;﻿Reflection is not just slower, it's orders of magnitude slower than a regular method call. This is perfectly normal because of the extra work it has to do.&amp;nbsp;If you're really worried about it, &lt;a href="http://www.ookii.org/post/reflection_vs_dynamic_code_generation.aspx"&gt;use a dynamic method&lt;/a&gt;.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;
&lt;P&gt;I know that this is an old thread drudged up by that weird Bill Gates groupie, but I hadn't read this post in the past, and this DynamicMethod thing looks really interesting.&amp;nbsp; On the other hand, I may just use something like IronPython (or IronRuby or even VBX someday) if my code requirements are that dynamic, because DynamicMethod generation code &lt;a href="http://c2.com/cgi/wiki?LanguageSmell"&gt;smells&lt;/a&gt;.&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354486</link><pubDate>Sat, 22 Sep 2007 15:04:27 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354486</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354486/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Sven Groot wrote:﻿Reflection is not just slower, it's orders of magnitude slower than a regular method call. This is perfectly normal because of the extra work it has to do.&amp;nbsp;If you're really worried about it, use a dynamic method.
I know that this is an old thread drudged up by that weird Bill&amp;#8230;</evnet:previewtext><dc:creator>JChung2006</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354486/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;P&gt;hello, i want know about only bill gates if you are american so that help me &amp;amp; give me conectivity of bill gates.....................................kachchhu fr:uk&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354468</link><pubDate>Sat, 22 Sep 2007 08:48:09 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=354468</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/354468/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>hello, i want know about only bill gates if you are american so that help me &amp;amp; give me conectivity of bill gates.....................................kachchhu fr:uk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;</evnet:previewtext><dc:creator>kachchhu</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/354468/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Sven Groot wrote:&lt;/div&gt;&lt;div&gt;﻿If you're really worried about it, &lt;a href="http://www.ookii.org/post/reflection_vs_dynamic_code_generation.aspx"&gt;use a dynamic method&lt;/a&gt;.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Interesting. Do you have any good references for learning IL op codes?</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323779</link><pubDate>Sun, 08 Jul 2007 16:19:26 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323779</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323779/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Sven Groot wrote:﻿If you're really worried about it, use a dynamic method.Interesting. Do you have any good references for learning IL op codes?</evnet:previewtext><dc:creator>amotif</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323779/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Sven Groot wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;Depends on what you're doing. A few reflection calls won't make a different, but do it millions of times in a tight loop and you'll feel it.&lt;br&gt;&lt;br&gt;Reflection is not just slower, it's orders of magnitude slower than a regular method call. This is perfectly normal because of the extra work it has to do.&amp;nbsp;If you're really worried about it, &lt;a href="http://www.ookii.org/post/reflection_vs_dynamic_code_generation.aspx"&gt;use a dynamic method&lt;/a&gt;.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Wow, talk about obfusticated.&lt;br&gt;&lt;br&gt;Anyway, I thought you might be interested in the results from VB.NET, slightly revised, and including VB's late-binding abilities.&lt;br&gt;&lt;br&gt;NOT optimised, and may have errors.&lt;br&gt;&lt;br&gt;DEBUG:&lt;br&gt;&lt;pre&gt;Each test will perform 1000000 iterations.&lt;br&gt;&lt;br&gt;Compiled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00.3801251&lt;br&gt;Dynamic Method&amp;nbsp; 00:00:00.3956237&lt;br&gt;Reflection 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:10.0621492&lt;br&gt;Reflection 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:12.1479894&lt;br&gt;Late Binding&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:22.9242498&lt;/pre&gt;&lt;br&gt;RELEASE:&lt;br&gt;&lt;pre&gt;Each test will perform 1000000 iterations.&lt;br&gt;&lt;br&gt;Compiled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00.3749116&lt;br&gt;Dynamic Method&amp;nbsp; 00:00:00.3929541&lt;br&gt;Reflection 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:08.9885750&lt;br&gt;Reflection 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:10.8800976&lt;br&gt;Late Binding&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:21.4694188&lt;/pre&gt;&lt;br&gt;The source (Console):&lt;br&gt;&lt;pre&gt;Imports System&lt;br&gt;Imports System.Diagnostics&lt;br&gt;Imports System.Reflection&lt;br&gt;Imports System.Reflection.Emit&lt;br&gt;&lt;br&gt;Class Foo&lt;br&gt;  Private _bar As String&lt;br&gt;&lt;br&gt;  Public Property Bar() As String&lt;br&gt;    Get&lt;br&gt;      Return _bar&lt;br&gt;    End Get&lt;br&gt;    Set(ByVal value As String)&lt;br&gt;      _bar = value&lt;br&gt;    End Set&lt;br&gt;  End Property&lt;br&gt;End Class&lt;br&gt;&lt;br&gt;Module Module1&lt;br&gt;  Public Const kITER = 1000000&lt;br&gt;&lt;br&gt;  Delegate Sub TestDelegate(ByVal arg As Foo, ByVal str As String)&lt;br&gt;&lt;br&gt;  Function CreateMethod() As TestDelegate&lt;br&gt;    Dim args() As Type = {GetType(Foo), GetType(String)}&lt;br&gt;    Dim method As New DynamicMethod("Test", Nothing, args, GetType(Module1))&lt;br&gt;    Dim gen As ILGenerator = method.GetILGenerator()&lt;br&gt;    gen.Emit(OpCodes.Ldarg_0)&lt;br&gt;    gen.Emit(OpCodes.Ldarg_1)&lt;br&gt;    Dim m As MethodInfo = GetType(Foo).GetProperty("Bar").GetSetMethod()&lt;br&gt;    gen.EmitCall(OpCodes.Call, m, Nothing)&lt;br&gt;    gen.Emit(OpCodes.Ret)&lt;br&gt;    Return method.CreateDelegate(GetType(TestDelegate))&lt;br&gt;  End Function&lt;br&gt;&lt;br&gt;&lt;br&gt;  Sub Main()&lt;br&gt;    Dim i As Integer&lt;br&gt;    Dim f As New Foo&lt;br&gt;    Dim w As New Stopwatch&lt;br&gt;&lt;br&gt;    Console.WriteLine("Each test will perform {0} iterations." &amp;amp; vbCrLf, kITER)&lt;br&gt;&lt;br&gt;    Console.Write("Compiled" &amp;amp; vbTab)&lt;br&gt;    w.Start()&lt;br&gt;    For i = 1 To kITER&lt;br&gt;      f.Bar = i.ToString()&lt;br&gt;    Next&lt;br&gt;    w.Stop()&lt;br&gt;    Console.WriteLine(w.Elapsed)&lt;br&gt;&lt;br&gt;    Console.Write("Dynamic Method" &amp;amp; vbTab)&lt;br&gt;    Dim test As TestDelegate = CreateMethod()&lt;br&gt;    w.Reset()&lt;br&gt;    w.Start()&lt;br&gt;    For i = 1 To kITER&lt;br&gt;      test(f, i.ToString())&lt;br&gt;    Next&lt;br&gt;    w.Stop()&lt;br&gt;    Console.WriteLine(w.Elapsed)&lt;br&gt;&lt;br&gt;    Console.Write("Reflection 1" &amp;amp; vbTab)&lt;br&gt;    w.Reset()&lt;br&gt;    w.Start()&lt;br&gt;    Dim t As Type = f.GetType()&lt;br&gt;    Dim pi As PropertyInfo = t.GetProperty("Bar")&lt;br&gt;    For i = 1 To kITER&lt;br&gt;      pi.SetValue(f, i.ToString(), Nothing)&lt;br&gt;    Next&lt;br&gt;    w.Stop()&lt;br&gt;    Console.WriteLine(w.Elapsed)&lt;br&gt;&lt;br&gt;    Console.Write("Reflection 2" &amp;amp; vbTab)&lt;br&gt;    w.Reset()&lt;br&gt;    w.Start()&lt;br&gt;    For i = 1 To kITER&lt;br&gt;      Dim t2 As Type = f.GetType()&lt;br&gt;      Dim pi2 As PropertyInfo = t2.GetProperty("Bar")&lt;br&gt;      pi2.SetValue(f, i.ToString(), Nothing)&lt;br&gt;    Next&lt;br&gt;    w.Stop()&lt;br&gt;    Console.WriteLine(w.Elapsed)&lt;br&gt;&lt;br&gt;    Console.Write("Late Binding" &amp;amp; vbTab)&lt;br&gt;    Dim o As Object = f&lt;br&gt;    w.Reset()&lt;br&gt;    w.Start()&lt;br&gt;    For i = 1 To kITER&lt;br&gt;      o.Bar = i.ToString()&lt;br&gt;    Next&lt;br&gt;    w.Stop()&lt;br&gt;    Console.WriteLine(w.Elapsed)&lt;br&gt;&lt;br&gt;    Console.Write(vbCrLf &amp;amp; "Done. Press a key")&lt;br&gt;    Console.ReadKey()&lt;br&gt;  End Sub&lt;br&gt;&lt;br&gt;End Module&lt;br&gt;&lt;br&gt;&lt;/pre&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323765</link><pubDate>Sun, 08 Jul 2007 12:40:11 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323765</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323765/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Sven Groot wrote:﻿Depends on what you're doing. A few reflection calls won't make a different, but do it millions of times in a tight loop and you'll feel it.Reflection is not just slower, it's orders of magnitude slower than a regular method call. This is perfectly normal because of the extra work&amp;#8230;</evnet:previewtext><dc:creator>RichardRudek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323765/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;DigitalDud wrote:&lt;/div&gt;&lt;div&gt;﻿How is "looking up metadata in order to invoke a method" any different from doing a virtual call by looking up a vtable?&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;Because the vtable's layout is determined by the compiler. If you make a virtual call, the compiler will translate the method name into an index in the vtable. So at runtime, it's just a direct index.&lt;BR&gt;&lt;BR&gt;With reflection, the type information must be loaded. The list of methods must be searched for one with a matching name for the one requested (string comparisons, which is slow). It has to check the type of the arguments (again something which the compiler normally does). Only then can it call the method.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323762</link><pubDate>Sun, 08 Jul 2007 12:09:26 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323762</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323762/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>DigitalDud wrote:﻿How is "looking up metadata in order to invoke a method" any different from doing a virtual call by looking up a vtable?Because the vtable's layout is determined by the compiler. If you make a virtual call, the compiler will translate the method name into an index in the vtable. So&amp;#8230;</evnet:previewtext><dc:creator>Sven Groot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323762/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>I agree with the original poster. None of these things need to be this way. Just look at other languages/virtual machines where overhead was considered more carefully during design. You can see examples where startup is fast, reflection is fast, basic memory overhead is minimal. From what I can tell it is a general reflection of a "code and move on" style of development, continual planned obsolecence.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323716</link><pubDate>Sat, 07 Jul 2007 23:45:36 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323716</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323716/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>I agree with the original poster. None of these things need to be this way. Just look at other languages/virtual machines where overhead was considered more carefully during design. You can see examples where startup is fast, reflection is fast, basic memory overhead is minimal. From what I can tell&amp;#8230;</evnet:previewtext><dc:creator>Frank Hileman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323716/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>For the record, I said I reflection wasn't slow.. slow suggests its a real sacrifice to use.&lt;BR&gt;&lt;BR&gt;I don't think many systems using reflection are going to be calling reflection based methods millions of times recursively..&lt;BR&gt;&lt;BR&gt;Edit: the dynamic method is an interesting class..</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323699</link><pubDate>Sat, 07 Jul 2007 21:12:37 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323699</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323699/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>For the record, I said I reflection wasn't slow.. slow suggests its a real sacrifice to use.I don't think many systems using reflection are going to be calling reflection based methods millions of times recursively..Edit: the dynamic method is an interesting class..</evnet:previewtext><dc:creator>stevo_</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323699/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;WillemM wrote:&lt;/div&gt;&lt;div&gt;﻿So why's reflection slow: It has to lookup the metadata of the application before it can invoke the method. That's perfectly normal and after that it executes normally.&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Exactly, people are just taking this for granted.&amp;nbsp; How is "looking up metadata in order to invoke a method" any different from doing a virtual call by looking up a vtable?&amp;nbsp; Just because the design is inherently slow doesn't mean it's not a bug.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323696</link><pubDate>Sat, 07 Jul 2007 20:54:45 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323696</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323696/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>WillemM wrote:﻿So why's reflection slow: It has to lookup the metadata of the application before it can invoke the method. That's perfectly normal and after that it executes normally.Exactly, people are just taking this for granted.&amp;nbsp; How is "looking up metadata in order to invoke a method" any&amp;#8230;</evnet:previewtext><dc:creator>DigitalDud</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323696/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;stevo_ wrote:&lt;/div&gt;&lt;div&gt;﻿Reflection is slow? I've just written an app that uses reflection quite a lot, and its far from slow.. reflection might not be as performant as normal code but its far from slow..&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;Depends on what you're doing. A few reflection calls won't make a different, but do it millions of times in a tight loop and you'll feel it.&lt;BR&gt;&lt;BR&gt;Reflection is not just slower, it's orders of magnitude slower than a regular method call. This is perfectly normal because of the extra work it has to do.&amp;nbsp;If you're really worried about it, &lt;a href="http://www.ookii.org/post/reflection_vs_dynamic_code_generation.aspx"&gt;use a dynamic method&lt;/a&gt;.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323648</link><pubDate>Sat, 07 Jul 2007 16:05:25 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323648</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323648/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>stevo_ wrote:﻿Reflection is slow? I've just written an app that uses reflection quite a lot, and its far from slow.. reflection might not be as performant as normal code but its far from slow..Depends on what you're doing. A few reflection calls won't make a different, but do it millions of times in&amp;#8230;</evnet:previewtext><dc:creator>Sven Groot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323648/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>So why's reflection slow: It has to lookup the metadata of the application before it can invoke the method. That's perfectly normal and after that it executes normally.&lt;BR&gt;&lt;BR&gt;I've used .NET since the first beta of version 1.0 and I never experienced unmanagably slow applications with it. The key here is that you need to be very aware of how the garbage collector and the other mechanics work. &lt;BR&gt;&lt;BR&gt;Java has the same issues, especially with the swing GUI library. Of cource C++ is faster, but it has the other downsides as well, like a lack of checks on the boundaries of buffers and memory management that doesn't protect against memory leaks.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323633</link><pubDate>Sat, 07 Jul 2007 14:56:11 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323633</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323633/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>So why's reflection slow: It has to lookup the metadata of the application before it can invoke the method. That's perfectly normal and after that it executes normally.I've used .NET since the first beta of version 1.0 and I never experienced unmanagably slow applications with it. The key here is&amp;#8230;</evnet:previewtext><dc:creator>WillemM</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323633/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;stevo_ wrote:&lt;/div&gt;&lt;div&gt;﻿Reflection is slow? I've just written an app that uses reflection quite a lot, and its far from slow.. reflection might not be as performant as normal code but its far from slow..&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;The time taken to execute a method using reflection compared to directly executing the method is much longer... reflection is slow &lt;i&gt;compared to&lt;/i&gt; directly accessing methods, properties, classes etc.&lt;br&gt;&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323615</link><pubDate>Sat, 07 Jul 2007 13:00:01 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323615</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323615/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>stevo_ wrote:﻿Reflection is slow? I've just written an app that uses reflection quite a lot, and its far from slow.. reflection might not be as performant as normal code but its far from slow..The time taken to execute a method using reflection compared to directly executing the method is much&amp;#8230;</evnet:previewtext><dc:creator>Martin Carolan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323615/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>Reflection is slow? I've just written an app that uses reflection quite a lot, and its far from slow.. reflection might not be as performant as normal code but its far from slow..</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323605</link><pubDate>Sat, 07 Jul 2007 10:57:14 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323605</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323605/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Reflection is slow? I've just written an app that uses reflection quite a lot, and its far from slow.. reflection might not be as performant as normal code but its far from slow..</evnet:previewtext><dc:creator>stevo_</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323605/Trackback.aspx</trackback:ping></item><item><title>Re: .NET Rant</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;DigitalDud wrote:&lt;/div&gt;&lt;div&gt;﻿So there's a number of well-known performance issues with .NET.&amp;nbsp; Reflection is slow.&amp;nbsp; Throwing exceptions takes half a second.&amp;nbsp; Cold starts take forever, the memory footprint is high.&amp;nbsp; Half these performance bugs people just take for granted, "Oh yeah don't use reflection a lot, its pretty slow". But WHY is reflection slow?&amp;nbsp; Why doesn't someone at MS open a bug against .NET, "Priority 1, fix NOW, millions of customers experiencing millions of dollars lost in operating costs cause of a slow reflection code, blah blah"&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;Well with the things you mentioned it's likely not to be performance issues. Its simply design issues. And as you wrote these have been VERY well documented and are widely known. If you have Exceptions in your normal execution path its simply plain wrong.&lt;BR&gt;Moreover as these were design choices they are&lt;BR&gt;a) likely to not be correctable without changing the design&lt;BR&gt;b) speeding them up would not help anybody, because nobody uses these constructs in performance-critical code anyways.&lt;BR&gt;&lt;BR&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;DigitalDud wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;BR&gt;Environments like .NET are supposedly awesome because if you make performance improvements to the runtime, the JIT compiler, etc., every single program that targets .NET receives a performance benefit.&amp;nbsp; And today that is A LOT of programs.&amp;nbsp; But the thing is, they DON'T update the runtime.&amp;nbsp; They haven't touched it in years, and 2.0 didn't do much for performance anyway.&amp;nbsp; And it's not like you can't make runtime changes without breaking compatibility.&amp;nbsp; You don't have to touch the libraries, just make the compiler faster.&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;I'm here with you for this one (mostly). Obviously not the compiler, but the JIT-results, but I guess thats what you meant anyways.&lt;BR&gt;E.g. why do NGEN compiled programs usually still perform worse that the same application compiled with an optimizing c++ compiler?&lt;BR&gt;With the additionaly system information that NGEN has (Exact processor type, available RAM, ...). It should always be able to outperform or at least be on line with precompilers.&lt;BR&gt;And the JIT still isn't able to take advantage from its special execution semantics&amp;nbsp;to dynamically optimize applications (e.g. like HotSpot).</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323594</link><pubDate>Sat, 07 Jul 2007 09:05:39 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/256061-NET-Rant/?CommentID=323594</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/323594/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>DigitalDud wrote:﻿So there's a number of well-known performance issues with .NET.&amp;nbsp; Reflection is slow.&amp;nbsp; Throwing exceptions takes half a second.&amp;nbsp; Cold starts take forever, the memory footprint is high.&amp;nbsp; Half these performance bugs people just take for granted, "Oh yeah don't use&amp;#8230;</evnet:previewtext><dc:creator>Foxfire</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/323594/Trackback.aspx</trackback:ping></item></channel></rss>