PythonDotNet - IronPyton

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

PythonDotNet - IronPyton

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 - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

Oleksii Bidiuk
Hi Emmanuel,

The basic differences are highlighted in several discussions like 


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 <[hidden email]>
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 - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet



--
oleksii

_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

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



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 <[hidden email]>
>         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 - [hidden email]
>         http://mail.python.org/mailman/listinfo/pythondotnet 
>
>
>
> --
> oleksii
>


_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

Mark Tigges
On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
<[hidden email]> 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 <[hidden email]>
>>         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 - [hidden email]
>>         http://mail.python.org/mailman/listinfo/pythondotnet
>>
>>
>>
>> --
>> oleksii
>>
>
>
> _________________________________________________
> Python.NET mailing list - [hidden email]
> http://mail.python.org/mailman/listinfo/pythondotnet
>
_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

Tribble, Brett
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=[hidden email] [mailto:pythondotnet-bounces+btribble=[hidden email]] On Behalf Of Mark Tigges
Sent: Monday, January 10, 2011 9:12 AM
To: [hidden email]
Cc: [hidden email]
Subject: Re: [Python.NET] PythonDotNet - IronPyton

On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
<[hidden email]> 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 <[hidden email]>
>>         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 - [hidden email]
>>         http://mail.python.org/mailman/listinfo/pythondotnet
>>
>>
>>
>> --
>> oleksii
>>
>
>
> _________________________________________________
> Python.NET mailing list - [hidden email]
> http://mail.python.org/mailman/listinfo/pythondotnet
>
_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet

_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

Laszlo Sebo
In reply to this post by Emmanuel Lambert
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
>

_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

Oleksii Bidiuk
In reply to this post by Mark Tigges
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 <[hidden email]>
On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
<[hidden email]> 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 <[hidden email]>
>>         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 - [hidden email]
>>         http://mail.python.org/mailman/listinfo/pythondotnet
>>
>>
>>
>> --
>> oleksii
>>
>
>
> _________________________________________________
> Python.NET mailing list - [hidden email]
> http://mail.python.org/mailman/listinfo/pythondotnet
>



--
oleksii

_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: PythonDotNet - IronPyton

Emmanuel.Lambert
In reply to this post by Mark Tigges
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" <[hidden email]>:

> On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
> <[hidden email]> 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 <[hidden email]>
>>>         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 - [hidden email]
>>>         http://mail.python.org/mailman/listinfo/pythondotnet
>>>
>>>
>>>
>>> --
>>> oleksii
>>>
>>
>>
>> _________________________________________________
>> Python.NET mailing list - [hidden email]
>> http://mail.python.org/mailman/listinfo/pythondotnet
>>
>



_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet