3 ms·
Roslyn ships v1.0-rc2 with "Go-Live" license
- mikerichards 11y agoThis 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.
- twotwotwo 11y agoInteresting 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.
- xenadu02 11y agoLike 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)
- tracker1 11y agoI think being able to do syntax extensions (a la LINQ) as a language feature would be great. Although I don't do much of it now, when VB.Net introduced XML literals I craved it in C#... other nice to haves would be regexp literal notations (or even expressions like perl), or template string handling like ES6. It's a really nice time to be working as a programmer, although the proliferation of options has gotten to be nearly too much to keep up with even the fraction that I try to.
- _random_ 11y agoAmong other scenarios it is very useful as a way of moving some internal DSL validation to compile time. I would imagine people who will benefit the most are big third-party framework designers. Of course internal DSLs are limited in their syntax so meta-programming would be welcome. I think it's not the top priority in C# 7 though.