<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Danny Thorpe &#187; Variant</title>
	<atom:link href="http://dannythorpe.com/tag/variant/feed/" rel="self" type="application/rss+xml" />
	<link>http://dannythorpe.com</link>
	<description>Dream &#38; Deliver</description>
	<lastBuildDate>Wed, 04 Jan 2012 21:20:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>C# Future Focus: Delphi History Repeating</title>
		<link>http://dannythorpe.com/2008/02/21/c-future-focus-delphi-history-repeating/</link>
		<comments>http://dannythorpe.com/2008/02/21/c-future-focus-delphi-history-repeating/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 22:17:32 +0000</pubDate>
		<dc:creator>Danny Thorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DLR]]></category>
		<category><![CDATA[IDispatch]]></category>
		<category><![CDATA[Variant]]></category>
		<category><![CDATA[Win32]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/02/21/c-future-focus-delphi-history-repeating/</guid>
		<description><![CDATA[Charlie Calvert writes about dynamic method invocation that has been implemented in the .NET DLR and is working its way into getting proper support by the full VS.NET tool set.  Dynamic method invocation is late binding to the extreme &#8211; the lookup is performed at runtime, every time the function call executes.  The compiler has <a href='http://dannythorpe.com/2008/02/21/c-future-focus-delphi-history-repeating/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx">Charlie Calvert writes about dynamic method invocation</a> that has been implemented in the .NET DLR and is working its way into getting proper support by the full VS.NET tool set.  Dynamic method invocation is late binding to the extreme &#8211; the lookup is performed at runtime, every time the function call executes.  The compiler has no idea whether the function you&#8217;re referring to exists at compile time, so it emits code to make the lookup and call the address with a hope and a prayer.</p>
<p>Hey!  It&#8217;s Delphi Variants all over again!  ;&gt;  In Delphi Win32, you can assign an IDispatch COM interface to a Variant, and then make method calls using that variant.  The method calls were reduced by the compiler to a call to GetIDsOfNames, passing the method name in as a string param, and then a call to Invoke, passing the explicit arguments wrapped up in Variants.</p>
<p>Dynamic invoke is certainly a powerful construct for dynamic languages, but it is oft maligned by compiled languages for inherent performance problems and nail-biting ambiguity.  For JavaScript, ambiguity is the source of its seductive dark power.  In the highly structured, explicit, dare I say predictable universe of Delphi syntax, late-binding ambiguity is the entropy engine of insanity.</p>
<div style="text-align:center;width:100%;"><div style="margin:0px 0px 0px 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-0861479594738165";
/* End of Post */
google_ad_slot = "6510912161";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></div><p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;counturl=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;count=none&amp;text=C%23%20Future%20Focus%3A%20Delphi%20History%20Repeating" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;counturl=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;count=none&amp;text=C%23%20Future%20Focus%3A%20Delphi%20History%20Repeating" scrolling="no" style="border:none;overflow:hidden;width:55px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;size=medium&amp;count=false" scrolling="no" style="border:none;overflow:hidden;width:32px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fdannythorpe.com%2F2008%2F02%2F21%2Fc-future-focus-delphi-history-repeating%2F&amp;title=C%23%20Future%20Focus%3A%20Delphi%20History%20Repeating" id="wpa2a_4">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/02/21/c-future-focus-delphi-history-repeating/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  dannythorpe.com/tag/variant/feed/ ) in 0.34049 seconds, on Feb 7th, 2012 at 11:24 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 7th, 2012 at 12:24 pm UTC -->
