{"id":273,"date":"2013-12-16T11:34:00","date_gmt":"2013-12-16T19:34:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vbteam\/2013\/12\/16\/throwing-the-big-switch-on-roslyn-matt-gertz-vs-managed-languages-development-manager\/"},"modified":"2024-07-05T12:38:34","modified_gmt":"2024-07-05T19:38:34","slug":"throwing-the-big-switch-on-roslyn-matt-gertz-vs-managed-languages-development-manager","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/vbteam\/throwing-the-big-switch-on-roslyn-matt-gertz-vs-managed-languages-development-manager\/","title":{"rendered":"Throwing the Big Switch on Roslyn (Matt Gertz, VS Managed Languages Development Manager)"},"content":{"rendered":"<div class=\"WordSection1\">\n<p class=\"MsoNoSpacing\">So, the entryway to my house has eight light switches along the wall.&nbsp; 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).&nbsp; I haven&rsquo;t the foggiest idea what the rest of the switches do.&nbsp; I&rsquo;ve been scared to try them out, actually.&nbsp; (I worry that one day I&rsquo;ll accidentally throw one of them and find out later that my couch is missing or something odd like that.)<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">However, I am pleased to announce that we&rsquo;ve turned on quite a different switch here on the Managed Languages team, with very successful results!&nbsp; As many of you know, we&rsquo;ve been diligently working on a replacement for our VB &amp; C# compilers (and certain IDE pieces that leverage them) which is code-named &ldquo;Roslyn.&rdquo;&nbsp; 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.&nbsp;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">And now, we&rsquo;ve turned on The Big Switch in the Visual Studio organization and turned on Roslyn!<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">&nbsp;<\/p>\n<p><strong>The Big Leap Forward<\/strong><\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">Specifically, I&rsquo;m pleased to announce that <em>everyone<\/em> in the Visual Studio organization is using Roslyn in their daily work now.&nbsp; In fact, the daily builds of VS are now <em>compiled<\/em> using Roslyn, all as part of a process that we refer to in the biz as &ldquo;dogfooding.&rdquo;&nbsp;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">Now, this change wasn&rsquo;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.&nbsp; 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.&nbsp; (For some reason, the other teams feel that their work is important, too&hellip; go figure.)&nbsp;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">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 &ndash; essentially, every test that they already had plus new ones specifically designed for this situation.&nbsp; At the same time, we ran and re-ran all sorts of performance tests to ensure that we wouldn&rsquo;t be slowing down either developers or our build lab.&nbsp; We did a walking tour of the rest of the org and got them educated on the changes that Roslyn would bring.&nbsp; We compiled &amp; assessed <em>over<\/em> <em>60,000 projects<\/em>, large and small, both internal and external to Microsoft (including flagship Microsoft products).&nbsp; 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.&nbsp; I&rsquo;m happy to say that all that prep work set up us well &ndash; since The Big Switch, we&rsquo;ve run into no major issues!&nbsp;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">&nbsp;<\/p>\n<p><strong>So&hellip; you&rsquo;re done?<\/strong><\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">Not quite.&nbsp; &ldquo;Dogfooding&rdquo; is a prelude to being done, but there&rsquo;s still a bit of polish to put on before the new code is truly complete.&nbsp; Nevertheless, we are at the state where Roslyn is highly usable for daily work.&nbsp; It&rsquo;s a huge milestone and essentially says that we&rsquo;ve turned the corner.&nbsp; There&rsquo;s no going back now!<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">&nbsp;<\/p>\n<p><strong>So, then, when can we see it?<\/strong><strong><\/strong><\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">As you may know, our last generally-available preview for Roslyn was September 2012.&nbsp; No, that year is not a typo.&nbsp; Yeah, we do feel a bit embarrassed about that.&nbsp; Yes, we&rsquo;ve been a little quiet.&nbsp; No, there was nothing wrong going on here, things were actually going extremely well, it&rsquo;s just that we&rsquo;ve just been really heads&rsquo; down and focused on The Big Switch and&hellip;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">Oh, to heck with the excuses, and let me just tell you what we&rsquo;re doing.&nbsp;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">Now, of course, I can&rsquo;t <em>ever<\/em> reveal shipping plans in a casual blog post like this, because <s>I want to keep my job<\/s> that&rsquo;s someone else&rsquo;s story to tell.&nbsp; However, if you can keep a secret, I&rsquo;ll tell you this much:&nbsp; we&rsquo;re now actively working through the details on starting up regular previews again.&nbsp; The code is in a really nice state these days, and we can <em>hardly wait<\/em> to show you what we&rsquo;ve been up to as we&rsquo;ve been solidifying Roslyn! &nbsp;(But don&rsquo;t tell anyone that I told you.&nbsp; This is just between you and me.)&nbsp;<\/p>\n<p class=\"MsoNormal\" style=\"text-align: justify\">&nbsp;<\/p>\n<p><strong>Onward!<\/strong><\/p>\n<p class=\"MsoNormal\">We wish you all the best for the New Year &ndash; 2014 is going to be an exciting year for us all vis-&agrave;-vis Roslyn.&nbsp; We&rsquo;re delighted to have you along with us on the journey!&nbsp;<\/p>\n<p class=\"MsoNormal\">&lsquo;Til next time,<\/p>\n<p class=\"MsoNormal\">&nbsp; &#8211;Matt&#8211;*<\/p>\n<p class=\"MsoNormal\">&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>So, the entryway to my house has eight light switches along the wall.&nbsp; 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).&nbsp; I haven&rsquo;t the foggiest idea what the rest of the switches do.&nbsp; I&rsquo;ve been scared to try [&hellip;]<\/p>\n","protected":false},"author":258,"featured_media":8818,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9,195],"tags":[101,130],"class_list":["post-273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-other-news","category-visual-basic","tag-matt-gertz","tag-roslyn"],"acf":[],"blog_post_summary":"<p>So, the entryway to my house has eight light switches along the wall.&nbsp; 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).&nbsp; I haven&rsquo;t the foggiest idea what the rest of the switches do.&nbsp; I&rsquo;ve been scared to try [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts\/273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/users\/258"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/comments?post=273"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts\/273\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/media\/8818"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/media?parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/categories?post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/tags?post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}