<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: IronPython is a one-way gate</title>
	<atom:link href="http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/</link>
	<description>The blog of John D. Cook</description>
	<lastBuildDate>Sat, 11 Feb 2012 01:10:06 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Michael Fooord</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-34537</link>
		<dc:creator>Michael Fooord</dc:creator>
		<pubDate>Fri, 12 Mar 2010 22:23:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-34537</guid>
		<description>@John
I&#039;m still working with IronPython but doing Silverlight development rather than desktop application development.

@rndname
The fantastic thing about IronPython is that you get *two* standard libraries - both the Python standard library *and* the full range of .NET libraries.

Yes Python is a highly dynamic language - and you lose none of that dynamism by switching to ironpython. Introspection works just as you would expect - and in fact needs to in anything calling itself an implementation of Python. In IronPython 2.6 Python stack frames (which Guido himself has called an implementation detail) even work. Pdb works as well (*and* you can use .NET debugging tools).

With a tool called Ironclad you can even use many Python C extensions with IronPython.</description>
		<content:encoded><![CDATA[<p>@John<br />
I&#8217;m still working with IronPython but doing Silverlight development rather than desktop application development.</p>
<p>@rndname<br />
The fantastic thing about IronPython is that you get *two* standard libraries &#8211; both the Python standard library *and* the full range of .NET libraries.</p>
<p>Yes Python is a highly dynamic language &#8211; and you lose none of that dynamism by switching to ironpython. Introspection works just as you would expect &#8211; and in fact needs to in anything calling itself an implementation of Python. In IronPython 2.6 Python stack frames (which Guido himself has called an implementation detail) even work. Pdb works as well (*and* you can use .NET debugging tools).</p>
<p>With a tool called Ironclad you can even use many Python C extensions with IronPython.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-34531</link>
		<dc:creator>John</dc:creator>
		<pubDate>Fri, 12 Mar 2010 20:36:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-34531</guid>
		<description>rdname, I hesitate to speak for Michael Foord, but my impression is that he is more committed to Python than to .NET. For a while there he was doing both in the form of IronPython, but I believe he is doing less IronPython these days.</description>
		<content:encoded><![CDATA[<p>rdname, I hesitate to speak for Michael Foord, but my impression is that he is more committed to Python than to .NET. For a while there he was doing both in the form of IronPython, but I believe he is doing less IronPython these days.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rndname</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-34530</link>
		<dc:creator>rndname</dc:creator>
		<pubDate>Fri, 12 Mar 2010 20:29:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-34530</guid>
		<description>Michael Foord, do you really mean that standard library is not an essential part of any language? Well, it is. If you cripple the library, you cripple the language.

In addition to the excellent standard library, *real* Python is an extremely dynamic language. It allows you to implement anything from distributed programming framework, code migration libraries and full-blown debugger for the language itself. Everything by using pure Python and nothing more. (If you say that in .NET people should use .NET debugger, you totally lost the point.) But you can&#039;t even use sys._getframe() in IronPython. Probably I should not even ask about changing the bytecode of functions on-the-fly.

Giving up some of the reflection and dropping the low-level  runtime modifiability would kill the Python even if the standard library would work perfectly. Those things make real Python one of the most powerful dynamic languages there is.

The best syntax and semantics do not make the best programming language alone. It also takes the best runtime and the standard library, too.</description>
		<content:encoded><![CDATA[<p>Michael Foord, do you really mean that standard library is not an essential part of any language? Well, it is. If you cripple the library, you cripple the language.</p>
<p>In addition to the excellent standard library, *real* Python is an extremely dynamic language. It allows you to implement anything from distributed programming framework, code migration libraries and full-blown debugger for the language itself. Everything by using pure Python and nothing more. (If you say that in .NET people should use .NET debugger, you totally lost the point.) But you can&#8217;t even use sys._getframe() in IronPython. Probably I should not even ask about changing the bytecode of functions on-the-fly.</p>
<p>Giving up some of the reflection and dropping the low-level  runtime modifiability would kill the Python even if the standard library would work perfectly. Those things make real Python one of the most powerful dynamic languages there is.</p>
<p>The best syntax and semantics do not make the best programming language alone. It also takes the best runtime and the standard library, too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Foord</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-14203</link>
		<dc:creator>Michael Foord</dc:creator>
		<pubDate>Fri, 06 Mar 2009 13:24:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-14203</guid>
		<description>&quot;You can’t run Python code and run it in IronPython unless you stay clear of any modules either those missing from the standard library or pypi,&quot;

Most of the standard library and huge swathes of the libraries on PyPi *do* work, so your argument is mainly moot anyway. You claim you can&#039;t &#039;download and use eggs&#039; but that is basically untrue (unzip them and add their directory to the path).

I assume you think Jython isn&#039;t Python either?

You are hopelessly confusing Python the language with Python libraries. You can&#039;t use Python libraries that depend on Linux functionality on Windows - and vice versa. By your rules Python isn&#039;t Python as there are plenty of libraries that don&#039;t work on any specific platform!

VB.NET *isn&#039;t* very dynamic and if you like Python and want access to functionality in the .NET framework, IronPython is a fantastic implementation of Python.</description>
		<content:encoded><![CDATA[<p>&#8220;You can’t run Python code and run it in IronPython unless you stay clear of any modules either those missing from the standard library or pypi,&#8221;</p>
<p>Most of the standard library and huge swathes of the libraries on PyPi *do* work, so your argument is mainly moot anyway. You claim you can&#8217;t &#8216;download and use eggs&#8217; but that is basically untrue (unzip them and add their directory to the path).</p>
<p>I assume you think Jython isn&#8217;t Python either?</p>
<p>You are hopelessly confusing Python the language with Python libraries. You can&#8217;t use Python libraries that depend on Linux functionality on Windows &#8211; and vice versa. By your rules Python isn&#8217;t Python as there are plenty of libraries that don&#8217;t work on any specific platform!</p>
<p>VB.NET *isn&#8217;t* very dynamic and if you like Python and want access to functionality in the .NET framework, IronPython is a fantastic implementation of Python.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rgz</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-14091</link>
		<dc:creator>rgz</dc:creator>
		<pubDate>Wed, 04 Mar 2009 15:11:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-14091</guid>
		<description>Okay, I&#039;m wrong, just explain me why.

 You can&#039;t run Python code and run it in IronPython unless you stay clear of any modules either those missing from the standard library or pypi, you can&#039;t pip or easy_install things around, nor you can run IronPython code in Python that uses any .net libraries. Your project is basically married to either one platform or the other.

 You can&#039;t download an run eggs so you can&#039;t say &quot;I can run python&quot; with only IronPython installed.

 So the only good reasons for IronPython are because you needed a dynamic language and dynamic VB.NET did&#039;t cut it or you want to provide scripting and are adamant python is the way to go. (Or just because)

 Now, there is a Python like language that allows you to ignore  types if you want, and has type inference for when you need it, it is way easier to adapt to C#/VB.NET and has some extra features, its called Boo.

 Now since IronPython is hopelessly incompatible with Python, why not using Boo? I just don&#039;t see the appeal. But don&#039;t worry we just agreed I&#039;m wrong...</description>
		<content:encoded><![CDATA[<p>Okay, I&#8217;m wrong, just explain me why.</p>
<p> You can&#8217;t run Python code and run it in IronPython unless you stay clear of any modules either those missing from the standard library or pypi, you can&#8217;t pip or easy_install things around, nor you can run IronPython code in Python that uses any .net libraries. Your project is basically married to either one platform or the other.</p>
<p> You can&#8217;t download an run eggs so you can&#8217;t say &#8220;I can run python&#8221; with only IronPython installed.</p>
<p> So the only good reasons for IronPython are because you needed a dynamic language and dynamic VB.NET did&#8217;t cut it or you want to provide scripting and are adamant python is the way to go. (Or just because)</p>
<p> Now, there is a Python like language that allows you to ignore  types if you want, and has type inference for when you need it, it is way easier to adapt to C#/VB.NET and has some extra features, its called Boo.</p>
<p> Now since IronPython is hopelessly incompatible with Python, why not using Boo? I just don&#8217;t see the appeal. But don&#8217;t worry we just agreed I&#8217;m wrong&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Foord</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-14012</link>
		<dc:creator>Michael Foord</dc:creator>
		<pubDate>Mon, 02 Mar 2009 22:13:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-14012</guid>
		<description>@rgz you are very wrong about IronPython. :-)</description>
		<content:encoded><![CDATA[<p>@rgz you are very wrong about IronPython. <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rgz</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-13891</link>
		<dc:creator>rgz</dc:creator>
		<pubDate>Sat, 28 Feb 2009 03:00:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-13891</guid>
		<description>IronPython is not Python, just a better Visual Basic.NET.</description>
		<content:encoded><![CDATA[<p>IronPython is not Python, just a better Visual Basic.NET.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Foord</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-13865</link>
		<dc:creator>Michael Foord</dc:creator>
		<pubDate>Fri, 27 Feb 2009 16:10:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-13865</guid>
		<description>C# 4 will make interacting with dynamic objects substantially simpler (at the cost of type-safety of course) but you still need to go through the IronPython hosting API to *get* the dynamic objects. Not difficult but C# 4 is not quite the magic bullet in this area that some people think it is...</description>
		<content:encoded><![CDATA[<p>C# 4 will make interacting with dynamic objects substantially simpler (at the cost of type-safety of course) but you still need to go through the IronPython hosting API to *get* the dynamic objects. Not difficult but C# 4 is not quite the magic bullet in this area that some people think it is&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mycall</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-13835</link>
		<dc:creator>mycall</dc:creator>
		<pubDate>Fri, 27 Feb 2009 00:17:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-13835</guid>
		<description>VS2010 and .NET 4.0 will have better DLR integration between IronPython and C#.  Hang in there.</description>
		<content:encoded><![CDATA[<p>VS2010 and .NET 4.0 will have better DLR integration between IronPython and C#.  Hang in there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Foord</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-13824</link>
		<dc:creator>Michael Foord</dc:creator>
		<pubDate>Thu, 26 Feb 2009 16:55:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-13824</guid>
		<description>Calling Python from C# needs to be done through the hosting API. Python classes are created at runtime rather than compile time, and unless you subclass a .NET class a Python class isn&#039;t even a static class (because Python classes are simply so much more dynamic than C# classes).

Nonetheless interacting with dynamic objects from C# can easily be done. See this article for some examples:

http://www.voidspace.org.uk/ironpython/hosting_api.shtml

IronPython in Action is an even better reference on this subject... :-)

Michael Foord</description>
		<content:encoded><![CDATA[<p>Calling Python from C# needs to be done through the hosting API. Python classes are created at runtime rather than compile time, and unless you subclass a .NET class a Python class isn&#8217;t even a static class (because Python classes are simply so much more dynamic than C# classes).</p>
<p>Nonetheless interacting with dynamic objects from C# can easily be done. See this article for some examples:</p>
<p><a href="http://www.voidspace.org.uk/ironpython/hosting_api.shtml" rel="nofollow">http://www.voidspace.org.uk/ironpython/hosting_api.shtml</a></p>
<p>IronPython in Action is an even better reference on this subject&#8230; <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Michael Foord</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel O'Boyle</title>
		<link>http://www.johndcook.com/blog/2009/02/26/ironpython-is-a-one-way-gate/comment-page-1/#comment-13821</link>
		<dc:creator>Noel O'Boyle</dc:creator>
		<pubDate>Thu, 26 Feb 2009 16:14:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=1621#comment-13821</guid>
		<description>Something to note though is that Python C extensions generated using SWIG (not numpy, but many others) can be quite easily opened up to both Jython and IronPython. We&#039;ve done this with OpenBabel, a C++ library for chemistry. The route we use is to generate CPython bindings for CPython (naturally!), Java bindings which can be used from Jython and C# bindings which can be used from IronPython.</description>
		<content:encoded><![CDATA[<p>Something to note though is that Python C extensions generated using SWIG (not numpy, but many others) can be quite easily opened up to both Jython and IronPython. We&#8217;ve done this with OpenBabel, a C++ library for chemistry. The route we use is to generate CPython bindings for CPython (naturally!), Java bindings which can be used from Jython and C# bindings which can be used from IronPython.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.359 seconds -->

