I thought this deserved a post, and not be buried in a comment. Dave asks:
Wow! it seems you are empowering c++ for CLR. will .net be available for non-windows platforms?
IT ALREADY IS! Being Microsoft, you'd think .NET would be a Windows-only innovation. But, happily, it isn't. My buddy Joel is PM of the Rotor team, which is working to bring the CLI (Common Language Infrastructure - the core of the .NET Framework) and the C# compiler to other platforms. Check out the SSCLI 1.0 release - which already builds on WindowsXP, FreeBSD, and Mac OS X 10.2, released under Microsoft's Shared Source Initiative. As Joel says, boot your FreeBSD box, download, untar, build, have a cup of coffee, and start playing with the CLR today!
(Ripped from the download page for SSCLI 1.0):
The Shared Source CLI archive contains the following technologies in source code form:
- An implementation of the runtime for the Common Language Infrastructure (ECMA-335) that builds and runs on Windows XP, the FreeBSD operating system, and Mac OS X 10.2.
- Compilers that work with the Shared Source CLI for C# (ECMA-334) and JScript.
- Development tools for working with the Shared Source CLI such as assembler/disassemblers (ilasm, ildasm), a debugger (cordbg), metadata introspection (metainfo), and other utilities.
- The Platform Adaptation Layer (PAL) used to port the Shared Source CLI from Windows XP to FreeBSD and Mac OS X.
- Build environment tools (nmake, build, and others).
- Documentation for the implementation.
- Test suites used to verify the implementation.
- A rich set of sample code and tools for working with the Shared Source CLI.
What about the C++/CLI binding on non-Windows platforms? Well, Microsoft isn't typically in the business of making compilers for non-Windows platforms. But Herb Sutter, with lots of collaboration with other groups (Plum Hall, EDG, and Dinkumware), are hard at work standardizing the C++/CLI binding with the ECMA Standards Group. Then, there will be a standard that can be used by other groups and companies to develop C++ compilers those non-Windows platforms that can target the CLI, which will be available on those platforms through Rotor. We're even working with the C and C++ standards groups to try and bring some of our innovations to the language into those standards!
Thanks for the question, Dave! And you're right about the empowerment - but it isn't C++ we're empowering for CLR - it's our USERS!