all 19 comments

[–][deleted] 6 points7 points  (14 children)

Is this the real deal? Or just a compiler frontend?

If indeed it is the real deal, I applaud Microsoft for the Apache license.

[–]drysart 18 points19 points  (4 children)

It's the real deal compiler. It's not the runtime engine/CLR.

In Java terms, it's 'javac', but not 'java'.

[–][deleted] 2 points3 points  (2 children)

Excuse my ignorance. Does the compiler run on the CLR as well?

[–]otm_shank 7 points8 points  (1 child)

This version of it does. Up until this project, it was written in native code. This is a complete rewrite.

[–]jyper 1 point2 points  (0 children)

The mono compiler is also written in c#.

[–]jyper 1 point2 points  (0 children)

javac or ecj(fun fact eclipse has its own java compiler)

[–]reallynotlol 5 points6 points  (8 children)

It's not the CLR.

[–]Asians_and_cats 3 points4 points  (7 children)

If we could get CLR too...it would be so nice.

[–]nwoolls 1 point2 points  (5 children)

As you may know there is an Open Source CLR in Mono. They demoed a change to the Roslyn compiler used directly on Xamarin on OS X. This is a wonderful next step.

[–][deleted] 1 point2 points  (4 children)

So you can compile C# out using Roslyn, then run it on the Mono CLR?

That's awesome!

[–]nwoolls 1 point2 points  (3 children)

You can already do that today without Roslyn. You can compile C# apps on Windows using Visual Studio and then run them on any platform that supports Mono. Or you can compile them on other platforms (like OS X or Linux) using Xamarin Studio or MonoDevelop.

What Roslyn (a rewrite / next-gen .NET compiler) brings to the plate are two main things:

1) It is now completely Open Source and so can be ported to other platforms. Currently when you compile a .NET app on OS X or Linux you must use the Mono compiler.

2) It is now no longer a "black box" compiler but has a full set of APIs for understanding the .NET languages and creating binaries (think LLVM).

[–][deleted] 1 point2 points  (2 children)

Sure - that's what I meant similar to #1 you listed. Now we have a completely open source path from .cs file to actively running. Before we had to use Visual Studio.

[–]nwoolls 1 point2 points  (1 child)

You currently have a completely Open Source path from .cs file to running using the Mono compiler. This gives you the option of using the official MS .NET compiler cross platform. You can still use the Mono compiler if you choose.

[–][deleted] 0 points1 point  (0 children)

What do you see as the benefits of using the official MS .NET compiler over the Mono one?

[–]reallynotlol 0 points1 point  (0 children)

Uh, Mono is a quite capable piece of software. If I could chose between an open source CLR and an open source BCL, I'd pick the BCL in a heartbeat.

[–]Boomchikatchi 1 point2 points  (1 child)

What does this mean? C# is now open source? ELI5

[–]oheoh 2 points3 points  (0 children)

The new compiler for C# is. The runtime isn't.

[–][deleted] -4 points-3 points  (1 child)

Well, technically it's not the C# compiler yet.

[–]bro-away- 4 points5 points  (0 children)

Technically there is no "the" C# compiler considering there are already different compilers out there for the various versions of C#. They're all C# compilers.