1541
Comment:
|
3547
Revert vandalism.
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
IronPython is [http://hugunin.net/index.html JimHugunin's] implementation of Python on the .NET CLR. | [[http://ironpython.net|IronPython]] is an open source implementation of Python for the .NET CLR and Mono, originally created by [[http://hugunin.net/index.html|Jim Hugunin]]. |
Line 5: | Line 5: |
The project has a [http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742 workspace] where you can get news and download the latest version. An older site, http://ironpython.com/ appears to be unmaintained. | The project has a [[http://ironpython.codeplex.com/|workspace]] where you can get news and download the latest version: |
Line 7: | Line 7: |
Early results are promising, showing great performance, even better than CPython 2.3 on the Pystone benchmark, but remember this is an early prototype, not a full implementation. | * Stable Version is 2.6.2 (targeting Python 2.6) * Developers Version is 2.7 Beta 1 (targeting Python 2.7) |
Line 9: | Line 10: |
These results caused a flurry of discussion, which has since died down, pending more information from Jim. * http://www.python.org/~jeremy/weblog/031209a.html * http://www.hole.fi/jajvirta/weblog/20031210T0901.html * http://primates.ximian.com/~miguel/archive/2003/Dec-09.html |
IronPython uses the Dynamic Language Runtime, a framework for writing dynamic languages for .NET which originated in IronPython 1. It also runs on Silverlight, a .NET browser plugin that runs on Windows and the Mac (and a Mono port called Moonlight runs on Linux). This means that IronPython can be used for client-side scripting ''in the browser''. IronPython is a Python compiler. It compiles Python code to in memory bytecode before execution (which can be saved to disk, making binary only distributions possible). Performance is comparable to CPython - much faster for some things (where it can take advantage of the JIT compiler in the underlying platform), but slower for other things (particularly the built in container types where a lot of work has been done on optimising the CPython types). Reasons that CPython programmers might be interested in IronPython include: * Corporate credibility (introducing new technologies can be very difficult in some companies, if .NET is already established then you may need no excuse to start using IronPython) * No GlobalInterpreterLock - IronPython has ''no GIL'' and multi-threaded code can use multi core processors * The .NET framework library is ''very big''. Particularly the user interface library Windows Forms is very good. * IronPython is easy to embed in .NET applications as a scripting language * Easier to extend than CPython (C# is memory managed and C# types can be used directly in IronPython with no wrapping) * Silverlight! A book on IronPython for Python and .NET developers: [[http://www.ironpythoninaction.com/|IronPython in Action]]. A useful resource for IronPython code examples, is the [[http://www.ironpython.info|IronPython Cookbook]]. A book that introduces core concepts of IronPython programming using a .NET–centric approach is [[http://www.apress.com/book/view/9781430219620|Pro IronPython]]. [[http://www.zetcode.com/tutorials/ironpythontutorial/|IronPython Winforms tutorial]] at [[http://www.zetcode.com/|ZetCode]]. Mozilla announced a project to port the DLR (well, the underlying Core CLR that it uses in fact) to run on their Tamarin JIT. This means that IronPython could also run in future versions of Firefox. (See [[http://wiki.mozilla.org/Tamarin:IronMonkey|IronMonkey]]). Unfortunately this project has not made any progress since its announcement. |
Line 17: | Line 39: |
* BooLanguage - Syntax is very similar to Python's, yet the language is statically compiled. It implements many features that have been suggested for ["Python3.0"]. See [http://boo.codehaus.org/Gotchas+for+Python+Users Gotchas for Python Users] for specific comparisons between boo and CPython. * [http://www.prothon.org/ Prothon] - now defunct |
* BooLanguage - Syntax is very similar to Python's, yet the language is statically compiled. It implements many features that have been suggested for [[Python3.0]]. See [[http://boo.codehaus.org/Gotchas+for+Python+Users|Gotchas for Python Users]] for specific comparisons between boo and CPython. * [[http://cobra-language.com/|Cobra Language]] |
Line 22: | Line 46: |
[http://www.zope.org/Members/Brian/PythonNet/index_html Python for .NET] is the reverse of IronPython, it lets you access .NET assemblies from CPython. | [[http://www.zope.org/Members/Brian/PythonNet/index_html|Python for .NET]] is the reverse of IronPython, it lets you access .NET assemblies from CPython. |
Line 27: | Line 51: |
See also: PythonAndParrot, LoGix | See also: PythonAndParrot, LoGix, IronPython IDE |
IronPython
IronPython is an open source implementation of Python for the .NET CLR and Mono, originally created by Jim Hugunin.
The project has a workspace where you can get news and download the latest version:
- Stable Version is 2.6.2 (targeting Python 2.6)
- Developers Version is 2.7 Beta 1 (targeting Python 2.7)
IronPython uses the Dynamic Language Runtime, a framework for writing dynamic languages for .NET which originated in IronPython 1. It also runs on Silverlight, a .NET browser plugin that runs on Windows and the Mac (and a Mono port called Moonlight runs on Linux). This means that IronPython can be used for client-side scripting in the browser.
IronPython is a Python compiler. It compiles Python code to in memory bytecode before execution (which can be saved to disk, making binary only distributions possible).
Performance is comparable to CPython - much faster for some things (where it can take advantage of the JIT compiler in the underlying platform), but slower for other things (particularly the built in container types where a lot of work has been done on optimising the CPython types).
Reasons that CPython programmers might be interested in IronPython include:
Corporate credibility (introducing new technologies can be very difficult in some companies, if .NET is already established then you may need no excuse to start using IronPython)
No GlobalInterpreterLock - IronPython has no GIL and multi-threaded code can use multi core processors
The .NET framework library is very big. Particularly the user interface library Windows Forms is very good.
IronPython is easy to embed in .NET applications as a scripting language
Easier to extend than CPython (C# is memory managed and C# types can be used directly in IronPython with no wrapping)
- Silverlight!
A book on IronPython for Python and .NET developers: IronPython in Action.
A useful resource for IronPython code examples, is the IronPython Cookbook.
A book that introduces core concepts of IronPython programming using a .NET–centric approach is Pro IronPython.
IronPython Winforms tutorial at ZetCode.
Mozilla announced a project to port the DLR (well, the underlying Core CLR that it uses in fact) to run on their Tamarin JIT. This means that IronPython could also run in future versions of Firefox. (See IronMonkey). Unfortunately this project has not made any progress since its announcement.
Other Python-Like Languages for .NET/Mono
Some other Python-like languages for .NET and Mono include:
BooLanguage - Syntax is very similar to Python's, yet the language is statically compiled. It implements many features that have been suggested for Python3.0. See Gotchas for Python Users for specific comparisons between boo and CPython.
Accessing .NET from CPython
Python for .NET is the reverse of IronPython, it lets you access .NET assemblies from CPython.
See also: PythonAndParrot, LoGix, IronPython IDE