Friday, February 29, 2008

Building a DLR Language - Answering SOME Questions

Martin Maly answers some questions about building a dynamic language using the DLR:

DLRScript: use DLR-based languages in the Script tag of a normal HTML Page

An intriguing new project has just surfaced on Codeplex:
DLRScript is a SilverLight 2.0 sample using the DLR. It lets you use DLR-based languages in the Script tag of a normal HTML (or .aspx, or .jsp or .php, etc.) page.

This is an alpha and should work with the Silverlight 1.1 alpha, but is aimed at Silverlight 2 - due to be released (well - a beta anyway) at Mix 2008 shortly. So far it only works with IronPython, but is intended to work with all the DLR languages. It allows you to include scripts (marked with DLRScript) in webpages using Python!

Thursday, February 28, 2008

Twining: IronPython DSL for Database Update III - Plus Other Incidentals

MetaDeveloper continues his exploration of IronPython with an update to his DSL for working with databased:
Unfortunately Peter Seale includes IronPython in his list of things that he won't be learning!

Mark Ramm has written an interesting entry on the JVM as a Platform for Dynamic Languages which is relevant to IronPython. An interesting debate in the comments follows.

I've also found an interesting link from late last year that I don't think I've posted before: on integrating IronPython with Visual Studio 2005.

Wednesday, February 27, 2008

Apodora: A New Web Testing Tool

Actually a blog entry from inCisif.net (who have their own testing tool scriptable in IronPython), about Apodora - which apparently is a new web testing tool (free and open source) programmable via (and based on) IronPython:

Python GUI Programming Platforms for Windows

The GITS blog has a great entry showing the code (and results) for quite a few of the alternatives for Windows GUI Programming. It includes all the usual suspects (well, most of them), as well as native-win32 with ctypes and IronPython and Windows Forms:

Extending Abobe Flash Player and AIR with Python and Ruby

An intriguing blog entry about an Adobe experimental project. It is a C/C++ cross- compiler for the flash player and AIR. This means that you can (will be able to?) cross-compile the Python / Ruby/ lots of other language runtimes and then run them in Flash. The blog entry contrasts this approach to the DLR which requires the re-implementation of dynamic languages - hence IronPython and IronRuby.

The project is already beyond proof-of concept, they even have Quake III cross-compiled and running in Flash.

Quake 3 has already been ported to managed code, but this is even more impressive. Whether the Python interpreter can be cross-compiled to run on top of another runtime (with completely different basic types), without changing the language semantics at all, has yet to be proved - but it is a very interesting project. (It also means that Python/Ruby will possibly be enabled only by additional optional downloads - but don't forget that IronMonkey is another possibility for browser scripting with Python.)

Saturday, February 23, 2008

IronPython in Action Available for Pre-Order

IronPython in Action is now up on Amazon and available for pre-order:

Friday, February 22, 2008

Ironclad 0.1 Released:

William Reade (and an able team of companions from Resolver Systems) have been working on a project to allow you to use Python C extensions from IronPython. The first release is now available (still very much a work in progress) as a google code project, and you can read the details on my blog:

First Look at Silverlight 2

A preview from Scott Guthrie on what we can expect from the forthcoming beta release of Silverlight 2.
Silverlight is the Microsoft browser plugin for creating Rich Internet Applications, and is scriptable with IronPython. Silverlight 2 was previously known as Silverlight 1.1, and the new release (next month) will include rich controls and APIs including network support and threading. Scott's blog says:

The Beta1 release of Silverlight 2 is 4.3MB in size, and takes 4-10 seconds to install on a machine that doesn't already have it. Once Silverlight 2 is installed you can browse the Web and automatically run rich Silverlight applications within your browser of choice (IE, FireFox, Safari, etc).

IronPython DSL for DB Update II

Metadeveloper posts an update to his IronPython DSL for working with databases:

Thursday, February 21, 2008

Embedding PowerShell in IronPython and vice versa

PowerShell and Python may both be scripting languages, but their strengths are in different areas. This blog entry by Steve Gilham shows how the two can play nicely together:

Wednesday, February 20, 2008

Want to Work on Languages at Microsoft?

There are several job vacancies on the Microsoft dynamic languages team. These include devs and testers for IronPython and IronRuby. John Lam's blog has the details:

Get List of Types from Assembly in IronPython

Saqib Ullah shows how easy .NET reflection is in IronPython by listing all the types in an assembly:

SharpDevelop 3.0 Beta 1 Available

SharpDevelop 3.0 Beta 1 (a Windows IDE for .NET) is now available. One of the new features is IronPython support:

IronPython DSL for ETL

David Seruyange has been experimenting with creating a Domain Specific Language for working with databases:

Lang.NET Videos Available

Videos from the Lang.NET 2008 conference have gone up (Silverlight 1.0 required to watch videos). Videos available include talks by Jim Hugunin, Seo Sanghyeon, Martin Maly and Giles Thomas:

Sunday, February 17, 2008

Graphics with SDL, OpenGL and the Tao Framework

Sylvain Hellegouarch has posted some examples of working with OpenGL, from IronPython, to the IronPython Cookbook: These examples use the Tao Framework.

Friday, February 15, 2008

OpenSimulator Python Scripting via realXtend

This is all new to me, but it looks really interesting. This is a blog post introducing the new 'Open Simulator' planet aggregator, and the work of realXtend.
OpenSimulator is an Open Source Application Platform which can be used for creating immersive 3D Virtual Interactive Environments such as Virtual worlds. According to the blog entry they have had a lot of work contributed by realXtend:

Creating an open source platform for interconnected virtual worlds is the goal of realXtend project. We collaborate with OpenSim, OpenViewer and realXtend viewer projects.

Their work includes:

On the serverside, RealXtend have implemented some nifty features such as Python scripting support (via IronPython)

Wednesday, February 13, 2008

Techdays 2008

Not everything that is good in the IronPython world happens in the English Language (duh!), but it is only occasionally I can understand enough to post news on non-English events. This one seems straightforward enough though, it is an IronPython talk by Alcides Fonseca at Techdays 2008 in Portugal:

Installing Python.NET 2.0 Alpha 2 on Windows XP

Feihong Hsu explains how to install (including compiling from source with the free Visual Studio Express 2008) Python.NET 2 Alpha 2 for Windows XP. Python.NET is an alternative to IronPython that lets you use the .NET framework from CPython:

Tuesday, February 12, 2008

Download Modules on Demand with Resolverforge

Resolverforge implements a 'require' function that you can place before imports. If the required module is not available then it will be downloaded. A Windows Forms message box is used to ask the user to confirm the download.

Resolverforge was implemented for the Resolver One spreadsheet program, but should work fine with any IronPython code where Windows Forms is available. (i.e. not inside ASP.NET!)
This is only a client-side implementation. Currently it fetches individual Python files from a respository on the Resolverhacks site (although the repository it uses is configurable). At some point there will be a companion website for uploading modules to.

Python Mini Benchmark

After the debate on comp.lang.python about Python vs IronPython performance, 'sokoide' has posted a mini-benchmark comparing Python and IronPython (but heed Steve Holden's wise words on benchmarks in the newsgroup thread).

It appears to benchmark an implementation of the N-Queens puzzle (although I don't think he has posted the code used). In this benchmark IronPython comes out as a clear winner.
Interestingly Python on Windows appears to do better than Python on Mac OS X. In the past this has been attributed to Visual Studio (the Windows compiler) being optimised for performance where gcc is optimised for portability.

Saturday, February 09, 2008

Academic Resource Kit from Microsoft Romania

IronPython is included in the "Academic Resource Kit", a DVD of free tools put together by Microsoft Romania:

Wednesday, February 06, 2008

Tenuous Links

A few recent links that are more or less relevant to IronPython...
  • Ruby.NET is dead, long live IronRuby
  • Alex Reich Hypothesises that a Microsoft Yahoo merger might mean more IronPython use
  • Claudio M. E. Bastos Iorio looks at how VB.NET is returning to its roots through the influence of the DLR and IronPython
  • A comp.lang.python discussion on whether IronPython is really faster than CPython
  • The Da Vinci Machine Project is an experimental Java project which is their answer to the DLR (how Sun is furthering dynamic language support on the JVM). "This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself."
  • Curt Hagenlocher announces a new project that will generate static assemblies from IronPython code, so that classes defined in IronPython can be used from other .NET languages. This will become a CodePlex project, but he has posted some code.
  • Cobra - a new .NET high level language, with Python inspired syntax. The docs include a Comparison to Python. Features include:
    • a clean, high-level syntax
    • It runs on Windows, Mac and Linux
    • static and dynamic binding
    • first class support for unit tests and contracts
    • compiled performance with scripting conveniences
    • ...and more

Building on the DLR

Tomas Restrepo has a series of posts on building a language with the DLR, drawing from both the provided ToyScript example and IronPython:

Grabbing SQL 2005 Blobs with IronPython

A post, with code, on grabbing 'blob data' from SQL Server 2005 from IronPython:

Debugging Memory Problems in IronPython

Kamil Dworakowski has done an update to his post on the "Static Subject to Observer Mapping Anti-Pattern" that was causing a memory leak in Resolver One. This post details the tools and techniques he used to trace the memory leak in an IronPython application.

Tuesday, February 05, 2008

Hephaestus Games Engine replacing Lua with IronPython

Pirogoth, one of the developers of the Hephaestus Games Engine, blogs about the decision to change their development languages:
  • IronPython will replace Lua as the scripting language
  • C# will replace C++
The examples of the C++/Lua rendering engine output are amazing, so it will be interesting to see what they can achieve moving to the .NET platform over the coming months.

http://torquedev.blogspot.com/2008/02/changes-in-air.html

Friday, February 01, 2008

More from Lang.NET

Lang.NET is now over, but it left a lot of impressed people - particularly the presentations on the DLR and Mono (and Resolver of course).
  • Morning Coffee with Devhawk - who rates Martin's talk on the DLR as the coolest Microsoft talk and was also impressed with Mono and Moonlight and the new Second Life script runner which uses the Mono engine (which should allow second life scripts to be written in IronPython in due course). His take on Resolver: "Creating a spread-sheet based app development environment is one of those ideas that seems obvious in retrospect".
  • Mig Tamale in da Sim - Miguel is also back from the conference and has a screenshot of Secondlife on Linux: "The work that we are doing on Mono's runtime to support Silverlight (the sandbox system and the hardening of the runtime) is going to enable the use of other programming languages to script components on Second Life". (He also posted a blog entry commenting on the Mono/Second Life integration.)
  • Perl 6 on the DLR - impressed by the DLR, Mr. Colliertech (who's real name I still haven't worked out) wonders what it would take to get Perl running on the DLR. (Hell freezing over I hope personally, but people have to try...)
  • The Resolver - Coding the markets has finally given Resolver a spin: "Where it scores big over Excel is in exposing its internals, specifically the calc model and worksheet in one seamless view."
  • Lang.NET Highlights from Knowing.NET - I intend to write more about Resolver soon. Like OneNote, this is one of those applications that give you a shock of recognition -- "Yes! This is what I want!"
  • West Coast Grid Discovers Resolver One - The title says it all: "Hey, Excel: Resolver One understands .NET. Are you learning?".