PythonDotNet - IronPyton
Dear all, I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/ The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome... regards Emmanuel
Hi Emmanuel,
The basic differences are highlighted in several discussions like
http://stackoverflow.com/questions/1168914/ironpython-vs-python-net
http://stackoverflow.com/questions/1168914/ironpython-vs-python-netIn
short IronPython is a complete managed implementation of Python interpreter
in .NET (developed parallel to the regular Python or CPython), just like
Jython. Python for .NET on the other hand is a .NET wrapper around the
CPython interpreter providing access to the CPython from .NET application
and back. There are differences in implementation (e.g. no GIL in
IronPython) and in the accessibility of the libraries (no access to the C
libraries from IronPython out of box).
I am also interested in any hints to the roadmaps of the both products.
IronPython seem to be more mature, but it is also way more effort than
Python for .NET. So far I have difficulties to choose strategically for
either one as both are lagging behind the solid community of CPython.
Comments are more than welcome!
2011/1/10 Emmanuel Lambert
Dear all,
I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/
The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome...
regards Emmanuel
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
Hi Oleksii Bidiuk, While access to the native Python libraries is apprently a nice feature of "Python for .NET", I don't think it is very useful in real-world .NET centric projects (in a corporate environment for example). An implementation like IronPython restricts itself to the use of native .NET features and thus cannot cause dangerous side-effects that inflict memory leak for example. With "Python for .NET", that is not the case. Therefore, in my opinion, IronPython looks like an implementation that is potentially useful for real-world projects, while "Python for .NET" looks more experimental in its nature... Emmanuel On Mon, 2011-01-10 at 09:55 +0100, Oleksii Bidiuk wrote:
Hi Emmanuel,
The basic differences are highlighted in several discussions like
http://stackoverflow.com/questions/1168914/ironpython-vs-python-net
In short IronPython is a complete managed implementation of Python interpreter in .NET (developed parallel to the regular Python or CPython), just like Jython. Python for .NET on the other hand is a .NET wrapper around the CPython interpreter providing access to the CPython from .NET application and back. There are differences in implementation (e.g. no GIL in IronPython) and in the accessibility of the libraries (no access to the C libraries from IronPython out of box).
I am also interested in any hints to the roadmaps of the both products. IronPython seem to be more mature, but it is also way more effort than Python for .NET. So far I have difficulties to choose strategically for either one as both are lagging behind the solid community of CPython. Comments are more than welcome!
2011/1/10 Emmanuel Lambert
Dear all, I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/
The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome...
regards Emmanuel
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
Hi Oleksii Bidiuk,
While access to the native Python libraries is apprently a nice feature of "Python for .NET", I don't think it is very useful in real-world .NET centric projects (in a corporate environment for example). An implementation like IronPython restricts itself to the use of native .NET features and thus cannot cause dangerous side-effects that inflict memory leak for example. With "Python for .NET", that is not the case. Therefore, in my opinion, IronPython looks like an implementation that is potentially useful for real-world projects, while "Python for .NET" looks more experimental in its nature...
Emmanuel
Emmanual, You're very mistaken. In our "corporate environment" (a large game studio), we use both. IronPython is used where we want to extend a .net environment with python scripting capabilities. PythonDotNet is used when we want to use our .net assemblies from another program which has cpython embedded. PythonDotNet allows us to extend Maya & MotionBuilder by leveraging all the .net code we write for our tools. Your opinion is yours, but trust me, while PythonDotNet is a little rough around the edges it is hugely beneficial to us and others. We use a cpython distribution augmented with PythonDotNet as our standard python for distribution to client machines. The only place we use IronPython is embedded in our tools. The start up time for IronPython (about .5 secs) the last time I checked pretty much makes it useless. Mark.
On Mon, 2011-01-10 at 09:55 +0100, Oleksii Bidiuk wrote:
Hi Emmanuel,
The basic differences are highlighted in several discussions like
http://stackoverflow.com/questions/1168914/ironpython-vs-python-net
In short IronPython is a complete managed implementation of Python interpreter in .NET (developed parallel to the regular Python or CPython), just like Jython. Python for .NET on the other hand is a .NET wrapper around the CPython interpreter providing access to the CPython from .NET application and back. There are differences in implementation (e.g. no GIL in IronPython) and in the accessibility of the libraries (no access to the C libraries from IronPython out of box).
I am also interested in any hints to the roadmaps of the both products. IronPython seem to be more mature, but it is also way more effort than Python for .NET. So far I have difficulties to choose strategically for either one as both are lagging behind the solid community of CPython. Comments are more than welcome!
2011/1/10 Emmanuel Lambert
Dear all, I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/
The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome...
regards Emmanuel
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
There are also logistical and political considerations. Some environments are tied to cpython, and switching to IronPython is impossible (such as the python environment included with Autodesk Maya). Also, many engineers have religious leanings, and would never tie their environment to .NET or other MicroSoft technologies. Adding .NET functionality "on the side" is usually an easier sell.
-----Original Message-----
From: pythondotnet-bounces+btribble=ea.com@python.org [mailto:pythondotnet-bounces+btribble=ea.com@python.org] On Behalf Of Mark Tigges
Sent: Monday, January 10, 2011 9:12 AM
To: emmanuel.lambert@intec.ugent.be
Cc: pythondotnet@python.org
Subject: Re: [Python.NET] PythonDotNet - IronPyton
On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
Hi Oleksii Bidiuk,
While access to the native Python libraries is apprently a nice feature of "Python for .NET", I don't think it is very useful in real-world .NET centric projects (in a corporate environment for example). An implementation like IronPython restricts itself to the use of native .NET features and thus cannot cause dangerous side-effects that inflict memory leak for example. With "Python for .NET", that is not the case. Therefore, in my opinion, IronPython looks like an implementation that is potentially useful for real-world projects, while "Python for .NET" looks more experimental in its nature...
Emmanuel
Emmanual, You're very mistaken. In our "corporate environment" (a large game studio), we use both. IronPython is used where we want to extend a .net environment with python scripting capabilities. PythonDotNet is used when we want to use our .net assemblies from another program which has cpython embedded. PythonDotNet allows us to extend Maya & MotionBuilder by leveraging all the .net code we write for our tools. Your opinion is yours, but trust me, while PythonDotNet is a little rough around the edges it is hugely beneficial to us and others. We use a cpython distribution augmented with PythonDotNet as our standard python for distribution to client machines. The only place we use IronPython is embedded in our tools. The start up time for IronPython (about .5 secs) the last time I checked pretty much makes it useless. Mark.
On Mon, 2011-01-10 at 09:55 +0100, Oleksii Bidiuk wrote:
Hi Emmanuel,
The basic differences are highlighted in several discussions like
http://stackoverflow.com/questions/1168914/ironpython-vs-python-net
In short IronPython is a complete managed implementation of Python interpreter in .NET (developed parallel to the regular Python or CPython), just like Jython. Python for .NET on the other hand is a .NET wrapper around the CPython interpreter providing access to the CPython from .NET application and back. There are differences in implementation (e.g. no GIL in IronPython) and in the accessibility of the libraries (no access to the C libraries from IronPython out of box).
I am also interested in any hints to the roadmaps of the both products. IronPython seem to be more mature, but it is also way more effort than Python for .NET. So far I have difficulties to choose strategically for either one as both are lagging behind the solid community of CPython. Comments are more than welcome!
2011/1/10 Emmanuel Lambert
Dear all, I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/
The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome...
regards Emmanuel
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
Hi Emmanuel et al,
I wouldn't jump to conclusions that fast. There are situations when you want
to use wide variety of C libraries that can be called from CPython but not
available directly from IronPython and in the same time trigger application
logic written in .NET. An alternative to this is IronCLAD in combination
with IronPython, but there are differences that may make you use one or
another.
Memory management is just one thing that may be in fact better done in
CPython and not turned over to IronPython. CPython works with reference
counting, so you know when there are no references your object is free'd,
while in IronPython you are at a mercy of Garbage Collector. It is not
difficult to cause 'memory leaks' in .NET by accidentally holding a
reference to something or forgetting to dispose an object holding a
reference to a large (unmanaged) memory block. What I understood from people
doing a lot of data processing with CPython and NumPy/SciPy this combination
works great as heavy duty processing and things like creation of
intermediate buffers, etc done efficiently and *predictable* with the
underlying C libraries (and sometimes Fortran), while Python serves as a
glue holding things together.
Unfortunatley there is no solution that has it all, therefore personally I
am still looking for a good combination of accessing .NET and usage of the
existing Python libraries. I also think both Python for .NET and IronPython
have to pass a certain tipping point to be future proof if you have to make
a strategic choice for long term. Other opinions on this subject are highly
appreciated!
2011/1/10 Mark Tigges
On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
wrote: Hi Oleksii Bidiuk,
While access to the native Python libraries is apprently a nice feature of "Python for .NET", I don't think it is very useful in real-world .NET centric projects (in a corporate environment for example). An implementation like IronPython restricts itself to the use of native .NET features and thus cannot cause dangerous side-effects that inflict memory leak for example. With "Python for .NET", that is not the case. Therefore, in my opinion, IronPython looks like an implementation that is potentially useful for real-world projects, while "Python for .NET" looks more experimental in its nature...
Emmanuel
Emmanual,
You're very mistaken. In our "corporate environment" (a large game studio), we use both. IronPython is used where we want to extend a .net environment with python scripting capabilities. PythonDotNet is used when we want to use our .net assemblies from another program which has cpython embedded. PythonDotNet allows us to extend Maya & MotionBuilder by leveraging all the .net code we write for our tools.
Your opinion is yours, but trust me, while PythonDotNet is a little rough around the edges it is hugely beneficial to us and others.
We use a cpython distribution augmented with PythonDotNet as our standard python for distribution to client machines. The only place we use IronPython is embedded in our tools. The start up time for IronPython (about .5 secs) the last time I checked pretty much makes it useless.
Mark.
On Mon, 2011-01-10 at 09:55 +0100, Oleksii Bidiuk wrote:
Hi Emmanuel,
The basic differences are highlighted in several discussions like
http://stackoverflow.com/questions/1168914/ironpython-vs-python-net
In short IronPython is a complete managed implementation of Python interpreter in .NET (developed parallel to the regular Python or CPython), just like Jython. Python for .NET on the other hand is a .NET wrapper around the CPython interpreter providing access to the CPython from .NET application and back. There are differences in implementation (e.g. no GIL in IronPython) and in the accessibility of the libraries (no access to the C libraries from IronPython out of box).
I am also interested in any hints to the roadmaps of the both products. IronPython seem to be more mature, but it is also way more effort than Python for .NET. So far I have difficulties to choose strategically for either one as both are lagging behind the solid community of CPython. Comments are more than welcome!
2011/1/10 Emmanuel Lambert
Dear all, I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/
The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome...
regards Emmanuel
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
Hello Mark and others,
thank you for the clarification. Very interesting, I hadn't though of
these two distinct use cases, i.e. :
-on the one hand embedding Python scripting in .NET applications
-on the other hand calling .NET assemblies from applications that
otherwise run outside of the .NET scope.
My background with .NET is more into monolytic business applications
that don't have embedded scripting. It might be worthwhile to upgrade
the "Python for .NET" website and clarify these different use cases.
Both technologies now seem to have a clear use case and rationale.
good evening.
Emmanuel
Quoting "Mark Tigges"
On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
wrote: Hi Oleksii Bidiuk,
While access to the native Python libraries is apprently a nice feature of "Python for .NET", I don't think it is very useful in real-world .NET centric projects (in a corporate environment for example). An implementation like IronPython restricts itself to the use of native .NET features and thus cannot cause dangerous side-effects that inflict memory leak for example. With "Python for .NET", that is not the case. Therefore, in my opinion, IronPython looks like an implementation that is potentially useful for real-world projects, while "Python for .NET" looks more experimental in its nature...
Emmanuel
Emmanual,
You're very mistaken. In our "corporate environment" (a large game studio), we use both. IronPython is used where we want to extend a .net environment with python scripting capabilities. PythonDotNet is used when we want to use our .net assemblies from another program which has cpython embedded. PythonDotNet allows us to extend Maya & MotionBuilder by leveraging all the .net code we write for our tools.
Your opinion is yours, but trust me, while PythonDotNet is a little rough around the edges it is hugely beneficial to us and others.
We use a cpython distribution augmented with PythonDotNet as our standard python for distribution to client machines. The only place we use IronPython is embedded in our tools. The start up time for IronPython (about .5 secs) the last time I checked pretty much makes it useless.
Mark.
On Mon, 2011-01-10 at 09:55 +0100, Oleksii Bidiuk wrote:
Hi Emmanuel,
The basic differences are highlighted in several discussions like
http://stackoverflow.com/questions/1168914/ironpython-vs-python-net
In short IronPython is a complete managed implementation of Python interpreter in .NET (developed parallel to the regular Python or CPython), just like Jython. Python for .NET on the other hand is a .NET wrapper around the CPython interpreter providing access to the CPython from .NET application and back. There are differences in implementation (e.g. no GIL in IronPython) and in the accessibility of the libraries (no access to the C libraries from IronPython out of box).
I am also interested in any hints to the roadmaps of the both products. IronPython seem to be more mature, but it is also way more effort than Python for .NET. So far I have difficulties to choose strategically for either one as both are lagging behind the solid community of CPython. Comments are more than welcome!
2011/1/10 Emmanuel Lambert
Dear all, I was wondering : what is the difference between PythonDotNet and IronPython? It looks like IronPython is rapidly becoming a maturing implementation for the .NET platform, with also a plugin for Visual Studio becoming available : http://ironpython.net/
The distinction between the two implementations, future roadmaps, etc, is not clear to me. Any comments are welcome...
regards Emmanuel
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
-- oleksii
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
Hi Emmanuel, Python.Net lets you use .net assemblies from within any cpython environment. You can't do that via ironpython. So you can integrate common .net libraries with applications that have their own python interpreters. We use this quite heavily integrating .net with maya, nuke and a lot of standalone python tools. So i would say, ironpython is used best when your host environment is .net, and python.net is used best if the host environment is python. cheers, laszlo On 10/01/2011 4:18 AM, Emmanuel Lambert wrote:
Hi Oleksii Bidiuk,
While access to the native Python libraries is apprently a nice feature of "Python for .NET", I don't think it is very useful in real-world .NET centric projects (in a corporate environment for example). An implementation like IronPython restricts itself to the use of native .NET features and thus cannot cause dangerous side-effects that inflict memory leak for example. With "Python for .NET", that is not the case. Therefore, in my opinion, IronPython looks like an implementation that is potentially useful for real-world projects, while "Python for .NET" looks more experimental in its nature...
Emmanuel
participants (6)
-
Emmanuel Lambert
-
Emmanuel.Lambert@UGent.be
-
Laszlo Sebo
-
Mark Tigges
-
Oleksii Bidiuk
-
Tribble, Brett