From: Robert Feldt Date: 2001-11-29T01:21:48+09:00 Subject: [ruby-talk:26817] Re: .NET possibilities for Ruby Hi, I haven't studied .NET/MS-IL/CLR very much but I read ActiveState's white paper on Python for .NET (PFN). Some misc quotes from the paper that are somewhat related to a Ruby for .NET project: * "The current state of the [PFN] compiler and the runtime systems shows that it is possible to have compiled Python programs fully supported within the .NET framework. Most of the basic infrastructure is in place, with full bi-directional cross-language support (i.e., Python can inherit or call objects created in other languages, and other languages can inherit from or call objects created in Python)." * "The speed of the current system is so low as to render the current implementation useless for anything beyond demonstration purposes. This speed problem applies to both the compiler itself, and the code generated by the compiler. " * "The Python for .NET compiler is written using CPython. It compiles Python source code, and uses the .NET Reflection::Emit library to generate a .NET assembly. The COM Interoperability features of .NET are used to access the Reflection::Emit library." * "Although support for basic classes works fine, there are a number of areas where Python and .NET semantics collide - the most obvious being multiple inheritance (supported by Python, but not by .NET). Other more subtle examples include the ability of a Python subclass to avoid calling a base-class constructor, or to reference self (the moral equivalent of this in C#) before calling any constructors at all." * "Due to Python's dynamic nature, there are some Python features that are difficult to map into .NET semantics. A simple example is the ability for a Python object to add attributes at runtime - although no declaration or other reference to the attribute can be seen by source code analysis, reference to the attribute will succeed at runtime. Python provides many other ways to change object behaviour at runtime that are not captured by .NET." I'd also like to note that David Simmons says he's found a way to get good interoperability between .NET and a dymically typed, OO script language but there aren't any details out yet... Regards, Robert