How Microsoft rewrote the C # compiler in C # and made it open

 3r3176. 3r3-31.
The author of the article is Mads Torgersen, lead architect of C # at Microsoft
3r3162.  3r3176. 3r3162.  3r3176. 3r3154. Project Roslyn [/b] 3r3162.  3r3176. 3r3162.  3r3176. 3r3154. Roslyn [/b] - this is the code name that was assigned to the open-source compiler for C # and Visual Basic .NET. The project began in the deepest darkness of the last decade of Microsoft's corporate life - and ended as an open source project, a cross-platform, public universal C # engine (and VB, which I will take for granted in the rest of the article). 3r3162.  3r3176. 3r3162.  3r3176. The first talk about the project, which would later become known as Roslyn, was already going on when I came to work at Microsoft in 2005 - shortly before the release of .NET 2.0. There was talk about rewriting C # to C #. This is a normal practice for programming languages ​​- proof of the maturity of a language. But there was a more practical and important motivation: we, the creators of C #, did not program in C #, we programmed in C ++! If you program on C # every day, then you change your mind: the great power of working on the tool you are developing (dogfooding). 3r3162.  3r3176. .NET Foundation 3r3165. announced base for .NET projects, including Roslyn. 3r3162.  3r3176. 3r3162.  3r3176. This release has become a real breath of fresh air! We began to reap the benefits of openness in CodePlex, and then the remaining procedural obstacles to open source at Microsoft were eliminated, so today open source is a natural and integral part of how we work in many of our teams. 3r3162.  3r3176. 3r3162.  3r3176.
We don’t see GitHub as a place to publish source codes - it’s just our place of work. 3r3133. 3r3162.  3r3176. On other fronts, the company also realized that it was not necessary to strive to control everything. It became clear that there were no compelling reasons for the existence of CodePlex - and Roslyn, along with other projects, migrated to GitHub, by which time the de facto main platform for open source projects. Not only the code itself, but also the process of its creation is conducted in GitHub: we no longer consider GitHub as a place for publishing source codes - it is just a place for our work. 3r3162.  3r3176. 3r3162.  3r3176. 3r3141. 3r3162.  3r3176. 3r3162.  3r3176. The C # language design and compiler implementation are now fully open processes, with significant third-party participation. They create including whole language functions. The value of C # simply rolls over not only due to the scaling of efforts in writing functions and correcting errors, but also due to the understanding and correction of the course that we produce thanks to an instantaneous daily feedback loop with the community. 3r3162.  3r3176. 3r3162.  3r3176. It was a long and crazy journey, and for me it symbolizes the enormous changes that Microsoft has undergone in the last decade. Nugget Roslyn was born in the dark, but grew up with ideas of openness - and today he exploded in a million different applications thanks to the power of open source. 3r3162.  3r3176. 3r3162.  3r3176. 3r3154. Learn Roslyn and C # Language Design: [/b] 3r3162.  3r3176. 3r3162.  3r3176. 3r3-3160. Roslyn on GitHub
3r3162.  3r3176. 3r3164. C # on github
3r3172. 3r3176. 3r3176.
! function (e) {function t (t, n) {if (! (n in e)) {for (var r, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e.parentNode.insertBefore (r, e)}; "[object Opera]" == e.opera? a.addEventListener? a.addEventListener ("DOMContentLoaded", d,! 1): e.attachEvent ("onload", d ): d ()}}} t ("//"""_mediator") () (); 3r33170. 3r3176. 3r3172. 3r3176. 3r3176. 3r3176. 3r3176.
+ 0 -

Add comment