<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Anders Hejlsberg - What influenced the development of C#?</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C/RSS"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 - Anders Hejlsberg - What influenced the development of C#?</title>
		<link></link>
	</image>
	<description>Anders Hejlsberg, the distinguished engineer who is one of the key designers on the C# team, talks about the&amp;nbsp;languages and other things that inspired&amp;nbsp;the development of C#.</description>
	<link></link>
	<language>en</language>
	<pubDate>Wed, 22 May 2013 00:16:21 GMT</pubDate>
	<lastBuildDate>Wed, 22 May 2013 00:16:21 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[If C# was built upon the languages Anders mentioned then why didn't he include Generics in 1.0?(Just curious, not slagging him off or anything)<p>posted by Gambit</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232097530000000</link>
		<pubDate>Sat, 19 Jun 2004 02:42:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232097530000000</guid>
		<dc:creator>Gambit</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[I don't know what actually transpired, but I do know that generics require changes in the CLR - it's not just within the scope of C#.&nbsp; So, it may have been out of his hands.&nbsp; I am certainly glad that we will finally get generics in dotnet.&nbsp; Transitioning
 from C&#43;&#43; to C# was quite painful&nbsp;because there were no&nbsp;templates.<p>posted by sparky</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232139550000000</link>
		<pubDate>Sat, 19 Jun 2004 03:52:35 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232139550000000</guid>
		<dc:creator>sparky</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[One of the first things that caught my attention when learning C# was the dependencies it has on the framework.<br>
For example, the using construct &quot;knows about&quot; the IDisposable interface, foreach knows about IEnumerable (well, GetEnumerator at least), lock knows about Monitor, and the list goes on.<br>
This is a clear departure from C&#43;&#43;, where the language is well isolated from whatever code the user writes.<br>
I suppose that with support for reflection and boxing, it may have been unavoidable.&nbsp; Am I the only one who felt a little uncomfortable with that?<p>posted by sparky</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232146140000000</link>
		<pubDate>Sat, 19 Jun 2004 04:03:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232146140000000</guid>
		<dc:creator>sparky</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[
<p>Don Syme and Andrew Kennedy&nbsp;from MSR Cambridge came up with <a href="http://research.microsoft.com/~dsyme/papers/generics_abs.htm">
the implementation techniques used for .NET generics</a> - and they beat pretty much everything else out there in terms of expressibility, speed, and performance. Note that the original paper is from 2001: it can take a LONG time to take a good idea from research
 and get it into the hands of customers!</p>
<p>posted by jonathanh</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232193830000000</link>
		<pubDate>Sat, 19 Jun 2004 05:23:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232193830000000</guid>
		<dc:creator>jonathanh</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[
<p>- Sparky</p>
<p>&nbsp;</p>
<p>I agree that C# and the framework were closely tied together during their development and various features of one influenced the other. However, I don’t believe those features of C# as a language are as tightly coupled with the framework features as you
 mentioned. Those are just the implementation details of C# on the .NET platform. The ‘using’ construct means “free up this resource after this block exits”. From the language perspective it doesn’t matter how it goes about freeing the resource, just that it
 frees it. Similarly, the ‘lock’ keyword is a generic (relatively) thread synchronization feature. It just so happens that the C# .NET compiler uses a Monitor to achieve that. Same goes for the foreach statement. It’s to iterate over a collection. The fact
 that the compiler translates that into the whole IEnumerable deal is a platform implementation detail.
</p>
<p>&nbsp;</p>
<p>In other words, C# using, lock, and foreach know nothing about IDisposable, Monitor, and IEnumerator any more than the C&#43;&#43; operators new and delete know about the CRT malloc and free functions that will likely get called as a result of those operators.</p>
<p>posted by LobsterDK</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232339030000000</link>
		<pubDate>Sat, 19 Jun 2004 09:25:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232339030000000</guid>
		<dc:creator>LobsterDK</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[Regarding C&#43;&#43;'s new and delete, I can almost agree, but I think they carefully side-stepped the issue.&nbsp; I could write a custom allocator, and then I wouldn't need to even link with the runtime.<br>
<br>
In the CLR, I think they have also carefully side-stepped the dependencies.&nbsp; The 'box' instruction, for example, has to specify a type handle to the boxed type you want returned.&nbsp; So, you could (in theory at least) write your own Int32 struct and use it instead
 of the framework's.<br>
<br>
However, C# doesn't seem to side-step the dependency.&nbsp; In the docs for 'using', it states: &quot;The object you instantiate must implement the System.IDisposable interface.&quot;&nbsp; This is in contrast to the docs for 'foreach', where it seems that the issue was side-stepped:
 &quot;Evaluates to a type that implements IEnumerable or a type that declares a GetEnumerator method.&quot;<br>
<br>
I haven't tested the statements in MSDN's 'using' page against the actual implementation, so it may be that the docs are just wrong.<br>
<br>
I'll test it and write again here with the results.<br>
<br>
<br>
<p>posted by sparky</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232847700000000</link>
		<pubDate>Sat, 19 Jun 2004 23:32:50 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632232847700000000</guid>
		<dc:creator>sparky</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[
<p>Nice catch sparky&nbsp;;o))<br>
<br>
But this program will answer you that.<br>
<br>
using in C# Rocks !<br>
foreach in C# Rocks !<br>
<br>
<br>
using&nbsp;System;<br>
using&nbsp;System.Collections;<br>
<br>
namespace&nbsp;Test<br>
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;MyGetEnumerator<br>
&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;IEnumerator&nbsp;GetEnumerator()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield&nbsp;return&nbsp;&quot;foreach&nbsp;in&nbsp;C#&nbsp;Rocks&nbsp;!&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;MyDispose<br>
&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;Dispose()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&quot;using&nbsp;in&nbsp;C#&nbsp;Rocks&nbsp;!&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;EntryPoint<br>
&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;Main(string[]&nbsp;args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyDispose&nbsp;myDispose&nbsp;=&nbsp;new&nbsp;MyDispose();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;(myDispose)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Cast&nbsp;white&nbsp;magic&nbsp;spell<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyGetEnumerator&nbsp;myGetEnumerator&nbsp;=&nbsp;new&nbsp;MyGetEnumerator();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(string&nbsp;message&nbsp;in&nbsp;myGetEnumerator)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(message);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
}<br>
<br>
</p>
<p>posted by AT</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632233211690000000</link>
		<pubDate>Sun, 20 Jun 2004 09:39:29 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632233211690000000</guid>
		<dc:creator>AT</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[
<blockquote>
<div>AT wrote:</div>
<div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yield&nbsp;return&nbsp;&quot;foreach&nbsp;in&nbsp;C#&nbsp;Rocks&nbsp;!&quot;;<br>
</p>
</div>
</blockquote>
Hmm.&nbsp; Looks like you're using the beta thingamajig.&nbsp; Here's what happens in csc version 7.10.3052.4:<br>
<br>
error CS0029: Cannot implicitly convert type 'Test.MyDispose' to 'System.IDisposable'<br>
<br>
namespace Test<br>
{<br>
&nbsp;&nbsp;&nbsp; class MyDispose<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void Dispose()<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Console.WriteLine(&quot;! using in C# Rocks&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; class EntryPoint<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; using (MyDispose myDispose = new MyDispose())<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Cast white magic spell<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
}<br>
<p>posted by sparky</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632233468020000000</link>
		<pubDate>Sun, 20 Jun 2004 16:46:42 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632233468020000000</guid>
		<dc:creator>sparky</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg - What influenced the development of C#?</title>
		<description>
			<![CDATA[I know this is off topic, but where did the &quot;Watch this video&quot; links go in the RSS feeds? Now I have to navigate to the site in order to watch.<br>
<p>posted by ern</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632234232530000000</link>
		<pubDate>Mon, 21 Jun 2004 14:00:53 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/TheChannel9Team/Anders-Hejlsberg-What-influenced-the-development-of-C#c632234232530000000</guid>
		<dc:creator>ern</dc:creator>
	</item>
</channel>
</rss>