What does HackerNews think of roslyn?

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.

Language: C#

#5 in C#
#70 in Hacktoberfest
It's an absolute massive codebase, but the compilers and analyzers in Roslyn[0] are very clearly written.

For a random example, here is the analyzer finding variable swaps of the form

     tmp = a;
     a = b;
     b = tmp;
that can better be done using tuples: https://github.com/dotnet/roslyn/blob/main/src/Analyzers/CSh...

And here is the code fix that automatically performs the substitution: https://github.com/dotnet/roslyn/blob/main/src/Analyzers/CSh...

[0]: https://github.com/dotnet/roslyn

Ah come on! It's more complicated than that.

Most of the heavy lifting in OmniSharp is done by Roslyn [0]. Roslyn is the open source C# compiler and code analysis library maintained by MS. You cannot overstate how much effort has gone into Roslyn, and how much money MS has invested to make it work. OmniSharp is essentially a wrapper[1] around Roslyn (before Roslyn it was Mono), and while the OmniSharp team did a nice job developing a nice intellisense UX around it all, it is not like MS is taking it all away from them. Incidentally, it is almost certain that new intellisense plugin by MS will also be built on top of Roslyn.

[0] https://github.com/dotnet/roslyn [1] https://github.com/OmniSharp/omnisharp-vscode#the-c-extensio...

For me there was a huge divide between those who were supplying Smalltalk and worked that side of the fence, and the customers who were trying to solve problems. I saw that as why Smalltalk lost to simpler/arguably stupider tech like Java.

I have sometimes pondered whether to try making a system that kind of rhymed with Smalltalk, but using Roslyn[0] instead. Although I envisage it as being a kind of playground where you code like Smalltalk, with the artifacts being produced as conventional class files and whatnot so the final build could be done with the normal command line tools.

[0] https://github.com/dotnet/roslyn

Clearly nobody ever manages to use this Go thing with over 700: https://github.com/golang/go/issues. Or .net, over 5000 issues for the compiler alone: https://github.com/dotnet/roslyn. I'd guess stuff like Java, glibc would be similar if they used github
.Net 5 and C# 9.0 are very much 100% open all the way down to the core.

https://github.com/dotnet/roslyn (c#)

https://github.com/dotnet/winforms (UI) https://github.com/dotnet/wpf (UI) https://github.com/dotnet/core (Foundation)

I don't consider the Win32 API itself part of .NET or C# as they've existed long before either.

Opinionated +1 :)

The C# compiler is called Roslyn which might not be obvious for people trying to find it on GitHub - it's incredibly well supported, regularly updated, and lively:

https://github.com/dotnet/roslyn

I would point to https://github.com/dotnet/roslyn itself as an example of a modern codebase. We try to adopt and use all of the new language features there as we write them to try and determine if the ergonomics are good.