Wednesday, March 31, 2010

SharpDevelop 3.2 RC1 - with support for IronPython 2.6.1 RC1

IronPython 2.6.1 will bring some nice performance improvements and some big Unicode compatibility improvements to IronPython 2.6.

The release candidate of SharpDevelop (Windows IDE with superlative support for IronPython) includes support for the IronPython 2.6.1 release candidate.

The first release candidate for SharpDevelop 3.2 comes with updated language support, fixes to various features (eg C# <-> VB.NET conversion), as well as improvements you have asked for in our forums.
The highlights:
  • IronRuby 1.0 RC2 support
  • IronPython 2.6.1 RC1 support
  • Microsoft F#, February 2010 CTP support
  • SHFB support
  • SDR: Absolute and relative filenames for images
  • SDR: Zoom in Report Viewer

Sunday, March 21, 2010

Python in the Browser, IronPython in Visual Studio 2010 and Other PyCon Talks

PyCon 2010 was great fun, and included several talks on or including IronPython.

This is Jimmy Schementi's write-up of his talk on using Python in the Browser, with links to the video and slides:
You, the Python developer, use Python because you want to, but in the browser you use JavaScript because you think you have to. With IronPython you can write browser code in Python. I’ll only begin to answer "what can the browser bring to Python?" and "what can Python bring to the browser?" in this short overview; examples will be very simple (with the exception of a few flashy ones) to make sure you can get started immediately.

The video of Dino Veihland's talk on the new integration of IronPython with Visual Studio 2010. The integration, which works standalone with the Visual Studio extensibility shell or integrated into VS 2010, is alpha quality - but has lots of nice features for IronPython development. It includes awesome type inferencing for intellisense in Python code.
A shorter video from Dino Veihland on the current state of IronPython, including a demo of the Visual Studio 2010 integration.
A talk by Holger Krekel on the various implementations of Python, and how execnet works with all of them:
CPython 2.5/2.6/3.1, Jython, IronPython, PyPy, StacklessPython, UnladenSwallow, Cython ... what do we make of all these cool interpreter projects and versions? Where does competition help and where does it hamper?
In this interactive talk I'll highlight the main strengths of each of the Python interpreters. Furthermore, I'll discuss ways to leverage Python interpreters in a co-operative way, discuss challenges, projects and issues ahead and also briefly highlight 'execnet', one my own projects for bridging (Any) Python to (Any) Python.
A talk by Maciek Fijalkowski (PyPy developer) on how to write programs that will run on multiple implementations of Python (or more specifically - how to avoid depending on implementation details of CPython without realising it).
This talk will cover basics about writing cross-interpreter python programs. What to do and most of all what not to do. This will help you if you want at some point in time to run program on for example Java platform or faster python interpreter, but also if you want to keep it running between CPython releases.

Catching up with Jeff Hardy and Django on IronPython

Jeff Hardy is an IronPython MVP and a Python community member who has invested a lot of time in getting standard Python libraries available for IronPython. Some of his recent work has been with both Django and the zlib module. It's been a while since we've reported on his work, so this post gets us up to date with what Jeff has been working on:

The zlib module is a C extension for Python. Because it is in the Python standard library it is used by many other libraries, like setuptools, making it an important part of the Python infrastructure. Unfortunately not all of the standard library C extensions have been ported to IronPython. The problem of C extensions is one of the major drawbacks of alternative implementations of Python; both Jython and PyPy have the same problem. Even if your code is 'pure-Python' it may not run on alternative implementations if it uses C extensions.

For IronPython one solution is to use Ironclad, an open source project created by Resolver Systems that allows you to use Python C extensions with IronPython. A better solution is for 'someone' to port the C extension to IronPython; and in the case of zlib that someone is Jeff Hardy. The latest version of IronPython.Zlib targets the IronPython 2.6 release.
One of the most popular Python frameworks these days is Django, the Python web framework. Unfortunately this doesn't run out-of-the-box on IronPython, largely because of differences in the way that IronPython handles Unicode (all strings are Unicode by default). There are some important changes in IronPython 2.6.1, due to be released shortly, that should fix a lot of the issues.

Jeff has been working on a 'port' of Django to IronPython; basically getting the tests running and applying patches where necessary. He has also written up some instructions on getting the test suite to run:
This guide will explain how to setup and attempt to run the Django test suite on IronPython. Once the test suite runs, it should be much easier to fill in the parts of Django that don't work properly.

Tuesday, March 16, 2010

Acceptance Testing .NET Applications using IronPython

This article, written by Jonathan Hartley, was originally published in the Python Magazine.

Unit tests demonstrate to developers that individual functions and classes work as expected. Acceptance tests are an orthogonal complement to this. They verify to everybody, including managers and clients, that features they understand and care about are completed and working correctly. They also prove that the system as a whole is correctly integrated and that no regressions have occurred. Resolver Systems is developing a .NET desktop spreadsheet application, Resolver One, for which we have accumulated an acceptance testing framework. This framework uses Python’s standard unittest module, and is executed using IronPython. While Resolver One is written in IronPython, this technique allows IronPython tests to interact with product code written in any .NET language. This article describes the principles of this IronPython acceptance testing framework, and demonstrates them by creating an acceptance test for a small sample C# GUI application.

Tuesday, March 09, 2010

IronPython in Action: Manning Deal of the Day

March 9th (that's tomorrow at the time of typing) IronPython in Action is the Manning deal of the day. This is a one day offer with a special discount.

You can get the discount by buying IronPython in Action from the Manning website and using the discount code dotd0310tw.

It isn't only IronPython in Action that is on offer, you can also get Quick Python by Vern Ceder.