The C# team posts answers to common questions and describes new language features
So, the entryway to my house has eight light switches along the wall. Two of them control the porch lights, and another two work the same entryway light (despite the switches being only a couple of feet apart). I haven’t the foggiest idea what the rest of the switches do. I’ve been scared to try them out, actually. (I worry that one day I’ll accidentally throw one of them and find out later that my couch is missing or something odd like that.)
However, I am pleased to announce that we’ve turned on quite a different switch here on the Managed Languages team, with very successful results! As many of you know, we’ve been diligently working on a replacement for our VB & C# compilers (and certain IDE pieces that leverage them) which is code-named “Roslyn.” Roslyn introduces a far more open model for compilation, which will allow developers to reach inside the compiler itself and see the world (or, at least, solutions and projects) as it does; this, in turn, will lead to far richer IDE and diagnostics being able to be developed at considerably reduced effort and cost.
And now, we’ve turned on The Big Switch in the Visual Studio organization and turned on Roslyn!
The Big Leap Forward
Specifically, I’m pleased to announce that everyone in the Visual Studio organization is using Roslyn in their daily work now. In fact, the daily builds of VS are now compiled using Roslyn, all as part of a process that we refer to in the biz as “dogfooding.”
Now, this change wasn’t trivial and, as with the mysterious light switches in my entryway, there was a lot of caution involved before we got to the point where Anders ceremoniously turned on the switch and enabled Roslyn for the division. Although we are part of the Visual Studio org, in many ways the rest of the VS org is like a customer to us as well, and so we had to be really careful not to derail any teams in our enthusiasm to reach this milestone. (For some reason, the other teams feel that their work is important, too… go figure.)
So, earlier this year, we engaged the toughest bunch of critics we could find (that is, the other VS test teams), and asked them to do several weeks of hard-core tests against their code – essentially, every test that they already had plus new ones specifically designed for this situation. At the same time, we ran and re-ran all sorts of performance tests to ensure that we wouldn’t be slowing down either developers or our build lab. We did a walking tour of the rest of the org and got them educated on the changes that Roslyn would bring. We compiled & assessed over 60,000 projects, large and small, both internal and external to Microsoft (including flagship Microsoft products). We fixed whatever blocking bugs we found as a result of all of that and then, at the end of October, we switched the entire division to using Roslyn bits. I’m happy to say that all that prep work set up us well – since The Big Switch, we’ve run into no major issues!
So… you’re done?
Not quite. “Dogfooding” is a prelude to being done, but there’s still a bit of polish to put on before the new code is truly complete. Nevertheless, we are at the state where Roslyn is highly usable for daily work. It’s a huge milestone and essentially says that we’ve turned the corner. There’s no going back now!
So, then, when can we see it?
As you may know, our last generally-available preview for Roslyn was September 2012. No, that year is not a typo. Yeah, we do feel a bit embarrassed about that. Yes, we’ve been a little quiet. No, there was nothing wrong going on here, things were actually going extremely well, it’s just that we’ve just been really heads’ down and focused on The Big Switch and…
Oh, to heck with the excuses, and let me just tell you what we’re doing.
Now, of course, I can’t ever reveal shipping plans in a casual blog post like this, because I want to keep my job that’s someone else’s story to tell. However, if you can keep a secret, I’ll tell you this much: we’re now actively working through the details on starting up regular previews again. The code is in a really nice state these days, and we can hardly wait to show you what we’ve been up to as we’ve been solidifying Roslyn! (But don’t tell anyone that I told you. This is just between you and me.)
We wish you all the best for the New Year – 2014 is going to be an exciting year for us all vis-à-vis Roslyn. We’re delighted to have you along with us on the journey!
‘Til next time,
Have been waiting for this project to mature so that we can use it for our mainstream projects.
It would be nice to see documentation and/or tutorials on how to use the scripting features. This would include new features added to the Interactive Window and working with the csx/vbx files (single and multiple).
Look forward to the new bits.
@Doug Finke: Thanks for the note, always nice to see references to Roslyn out there! (Sneak preview list?)
@Daniel C: Although F# is not part of Roslyn, the F# folks on our team haven't been idle (if you'll pardon yet another unintentional teaser).
@Simon Timms: That, to me, is the most exciting thing about Roslyn -- it's nature means that it is more generally useful in a much wider variety of situations. (I love being back on this team -- can you tell?)
@BSalita: C++ is a different team than mine, but I'll pass along the love to them. :-)
@David Hanson: Thanks for the kind words!
@Letu: Yep, it's always gratifying when a project that you've worked hard on starts to really come together. We had quite the party when we threw the Big Switch!
@Great: That's exactly what the rest of VS said, too! :-)
@Shaggygi: Without being too specific at this point on content or dates, in general we will try to be more communicative going forward on features.
@Marsh: Late? :-) We're just on time, no? (Seriously, though -- no one wants to get Roslyn out there more than us!)
@Thorn: As I say, we're actively working on a plan to get previews going again. That's all I can say for now...
I wonder, Is Roslyn somehow connected with the new x64 compiler ?
Are there any plans to leverage Roslyn in the Excel/VBA space as a replacement?
Any chance we could simultaneously get built-in support for assembly merging, so we don't have to use external tools like ILMerge?
I was being flippant about a "sneak preview list" =)
I was hoping I could get an early look at this release of Roslyn.
Finally! Looking forward to using it.
Just one question: will Roslyn be open source(d)?
@Doug Finke: Yeah, I know, but I couldn't resist a cheeky response. Apologies. :-)
Just a note to all: most of the team is going on much-needed holidays in the next day or so (some of us are already out), so if you don't see an answer to question, it's for one of two reasons: either (a) we are not here or (b) we hit our heads while skiing and can't remember the answer.
I have been using VS since the start and I must say
2012 and 2013 are garbage
the intellisense is crap
2013 is worse then 2012
the look hurts my freaken eyes developing for 10 + hrs a day
you have choice of staring at the side of a battle ship or the night sky
you want to see this reproduced google - visual studio 2012 looks horrible
I WISH I COULD GO BACK TO 2010
Whoever created vs12/13 & win 8 should be fired
Congrats! Roslyn is an awesome technology! I can't resist though taking this holiday moment to ask for 2 more gifts from Santa.
1. Ship a solid scripting engine. scriptcs (https://github.com/scriptcs) loves Roslyn's scripting engine, and it is at it's heart. The CSX format has opened some amazing possibilities for authoring C# applications and extensions.
2. Cross platform please!
Congratulations again on a fantastic product and thank you for Roslyn!
Gratz, really excited and looking forward to the next release
Very much awaited and nice news. Happy new year :)