[Python.NET] PythonDotNet - IronPyton

Oleksii Bidiuk oleksii.bidiuk at gmail.com
Mon Jan 10 21:00:16 CET 2011


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 <mtigges at gmail.com>

> On Mon, Jan 10, 2011 at 4:18 AM, Emmanuel Lambert
> <emmanuel.lambert at intec.ugent.be> 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 <emmanuel.lambert at intec.ugent.be>
> >>         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 at python.org
> >>         http://mail.python.org/mailman/listinfo/pythondotnet
> >>
> >>
> >>
> >> --
> >> oleksii
> >>
> >
> >
> > _________________________________________________
> > Python.NET mailing list - PythonDotNet at python.org
> > http://mail.python.org/mailman/listinfo/pythondotnet
> >
>



-- 
oleksii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythondotnet/attachments/20110110/031d2b23/attachment.html>


More information about the PythonDotNet mailing list