Microsoft has been working with some other organizations on an ECMA draft standard that would cover certain core portions of .NET. The information in this draft standard would be enough to implement a usable core of .NET on Linux, Mac OS X, or some other platform.
It’s possible that work is already in progress to bring .NET to non-Windows platforms. In September 2000, the ECMA TC39 group met to discuss the .NET draft standard. Some of Tony Goodhew’s (Tony is the C# Product Manager) responses may shed a little light on what is to come (emphasis mine):
Bill Gibbons: conventional wisdom has it that
standardization shouldn’t start until there at least
2 independent implementations. What is the situation
with regards to C# and CLI.
Tony: Microsoft is working on two implementations.
Bill: it would be good to see an implementation from another company such as HP.
Tony: we are interested in working with other companies to encourage the development of other implementations.
Jim Miller: Microsoft’s two implementations are
independent, although there is some code overlap for
the class libraries.
Tony: we are working towards an open source
implementation, but we don’t intend to tag this as a
Pamela: is CLI available on non-WinTel platforms?
Tony: Yes, but Microsoft can’t comment on this at this
time. Toby would love to see other companies involved.
Is Microsoft working on an open source implementation? It depends on what you mean by “working towards.” That could simply mean that they are trying to find someone else to do it. What’s this “non-Wintel platform”? My guess is that it’s either Linux or PalmOS.
Later on, on a public mailing list, Tony clarifies some of his comments:
“Additionally I was asked about open-source
implementations, specifically a
reference implementation. The sponsors of this project
are considering an
open-source implementation but have not made any
Currently Microsoft has these frameworks running on all
the Windows platforms (Win2K through WinCE) and 1
platform. Unfortunately I’m not able to comment any
the non-Windows platform.”
Fascinating… I wonder when we’ll know the whole story. Whether or not Microsoft supplies a cross-platform implementation of .NET, Portable.NET is a project to keep an eye on - that project aims to provide a highly portable implementation of .NET for Linux and other platforms.