Linked by twitterfire on Mon 24th Oct 2011 22:52 UTC
General Development "Looking past the Metro hype, the Build conference also revealed promising road maps for C#, Visual Studio, and the .Net platform as a whole. Perhaps the most exciting demo of the conference for .Net developers, however, was Project Roslyn, a new technology that Microsoft made available yesterday as a Community Technology Preview. Roslyn aims to bring powerful new features to C#, Visual Basic, and Visual Studio, but it's really much more than that. If it succeeds, it will reinvent how we view compilers and compiled languages altogether."
Thread beginning with comment 494198
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: .NET
by Nelson on Tue 25th Oct 2011 07:36 UTC in reply to "RE[2]: .NET"
Nelson
Member since:
2005-11-29

Here's how it works:

WinRT is basically every Windows API (input, devices, graphics, networking, etc.) implemented in native C++.

C#, VB.NET, and Javascript are consumers of the WinRT API.

WinRT exports metadata files which describe its API. Using this metadata, lightweight bridges are automatically generated for .NET languages and Javascript.

So I could write a WinRT component in C#, have the metadata autogenerated, and use it in C++ as if it was a native C++ class. Or use it in Javascript as a native javascript object.

The concept is incredibly powerful, but not exactly groundbreaking.

Basically: .NET, Javascript, and C++ are all first class citizens when it comes to WinRT. There is no favoritism like before, where .NET had to do convuluted interop into unmanaged code, and Javascript did god knows what.

Its all very slick, and did I mention fast?

Reply Parent Score: 2

RE[4]: .NET
by moondevil on Tue 25th Oct 2011 12:11 in reply to "RE[3]: .NET"
moondevil Member since:
2005-07-08

...
So I could write a WinRT component in C#, have the metadata autogenerated, and use it in C++ as if it was a native C++ class. Or use it in Javascript as a native javascript object.

...


And nothing is preventing Microsoft of compiling .Net directly to native code instead om MSIL. like they do with Bartok/Spec# in Singularity.

Reply Parent Score: 2

RE[5]: .NET
by Nelson on Tue 25th Oct 2011 12:38 in reply to "RE[4]: .NET"
Nelson Member since:
2005-11-29

I suppose. I don't see why they'd want to. MSIL allows them to be platform independent.

Reply Parent Score: 2

RE[4]: .NET
by dsmogor on Tue 25th Oct 2011 16:30 in reply to "RE[3]: .NET"
dsmogor Member since:
2005-09-01

What is the WinRT ABI. Will C programs be able to access it or C++ is the new lowest common denomitator?

Reply Parent Score: 2

RE[5]: .NET
by Nelson on Tue 25th Oct 2011 18:35 in reply to "RE[4]: .NET"
Nelson Member since:
2005-11-29

Well, I hope someone writes a tool to project WinRT APIs into the C programming language in a nicer way..otherwise you're stuck with an updated version of COM.

Under the hood, WinRT is all held together by COM. Only, slightly modernized.

Reply Parent Score: 2

RE[4]: .NET
by dsmogor on Tue 25th Oct 2011 16:44 in reply to "RE[3]: .NET"
dsmogor Member since:
2005-09-01

Isn't this admittance that the CLR as system platform concept (expressed heavily during the Windows .NET era) has ultimately failed?
WinRT looks to be what CLR was supposed to be, pushed lower level to support serious C++ right (read COM 2). CLR on the other hand is left as a high level application dev wrapper/runtime for ever. Looks like dreams of managed only OS'es will remain pipe forever.

Reply Parent Score: 2

RE[5]: .NET
by Nelson on Tue 25th Oct 2011 18:37 in reply to "RE[4]: .NET"
Nelson Member since:
2005-11-29

Isn't this admittance that the CLR as system platform concept (expressed heavily during the Windows .NET era) has ultimately failed?
WinRT looks to be what CLR was supposed to be, pushed lower level to support serious C++ right (read COM 2). CLR on the other hand is left as a high level application dev wrapper/runtime for ever. Looks like dreams of managed only OS'es will remain pipe forever.


I think so, but I agree with this decision because it avoids code duplication. For example, they'll write a great UI platform (WPF, or Silverlight) but then C++ and other langguages are out in the cold.

With WinRT, they ported XAML and all the graphics stack to C++ and exposed them as WinRT components, so C++ benefits from this awesome UI framework too.

The equality amonst the languages is what I love the most, and its why, even though I'm generally a hard ass, I'm willing to admit this is a better approach.

Previously they had an all-or-nothing thing going on, this is a little more encompassing. We're all Metro developers now.

Reply Parent Score: 2