Roslyn ships v1.0-rc2 with "Go-Live" license

  • Like edit-and-continue I bet the code-aware library concept will be scoffed at by some, but provide a huge productivity boost to those who adopt it.

    You can design the API as nicely as possible but there is just some information that can't be communicated that way. Now the library can ship with some compile-time code (instead of run-time code) that can analyze your usage of the library and provide feedback.

    I'm also curious if C# begins to evolve some meta-programming constructs, letting you write "macros" or syntax extensions in C#. Everyone hates on the C preprocessor (as do I and for good reason) but few compiled languages provide a truly suitable replacement. Back when I was doing C# on a daily basis I would use reflection to generate DynamicMethod instances and emit the IL instructions in 2.0; later being able to convert Expressions to machine code was a step up for the cases where its needed and the T4 template engine works ok for other scenarios.

    Now that I'm doing iOS full time that's my one major complaint - complete lack of any meta-programming facility. (That and they took away __conversion)

  • Interesting to note .NET and Go have both gone to some effort to make their internals more accessible to regular coders that build on them. Roslyn has a C# compiler in C# and has APIs you can use to build things like static checks. Go tip is in Go (converted from Plan 9 C) and has stdlib packages with APIs you can use to build things like static checks. Plenty of differences, of course, but sort of a surprising parallel between two very different ecosystems.

  • This was the first time I had heard of code aware libraries. I can see them being very beneficial.

    With resharper, I love going through all the little warnings and fix suggestions on old code that people that had written. I think I can have some fun with the analyzers while improving the quality of code.