Diposting oleh Mads Torgersen, Lead C # Architect di MicrosoftProyek RoslynRoslyn adalah nama kode yang ditugaskan ke kompiler open-source untuk C # dan Visual Basic.NET. Proyek ini dimulai dalam kegelapan terdalam dekade terakhir kehidupan korporat Microsoft - dan berakhir sebagai proyek sumber terbuka, lintas-platform, mesin universal publik untuk C # (dan VB, yang akan saya terima begitu saja dalam sisa artikel ini).
Pembicaraan pertama tentang proyek, yang kemudian dikenal sebagai Roslyn, sudah berlangsung ketika saya bergabung dengan Microsoft pada tahun 2005 - sesaat sebelum rilis. NET 2.0. Ada pembicaraan tentang penulisan ulang C # ke C #. Ini adalah praktik normal untuk bahasa pemrograman - bukti kedewasaan bahasa. Tetapi ada motivasi yang lebih praktis dan penting: kami, pencipta C #, tidak memprogram dalam C # diri kami sendiri, kami memprogram dalam C ++! Jika Anda memprogram dalam C # setiap hari, maka Anda berubah pikiran: kekuatan luar biasa untuk mengerjakan alat yang Anda kembangkan (dogfooding).
Pengguna bergantung pada perilaku kompiler baru seperti yang lama. Menulis kompiler baru untuk C # adalah upaya untuk menemukan korespondensi bug-to-bug.
Kesulitan penulisan ulang kompiler, yang telah digunakan secara aktif selama beberapa tahun, adalah bahwa pengguna bergantung pada perilaku kompiler baru seperti yang lama. Menulis kompiler baru untuk C # adalah upaya untuk menemukan korespondensi bug-to-bug. Dan saya berbicara tidak hanya tentang bug yang diketahui, tetapi juga tentang kesalahan yang tidak diketahui dan bentuk perilaku yang tidak diinginkan yang telah ditemukan dan digunakan oleh pengembang, seringkali tanpa disadari.
Selama bertahun-tahun, skala masalah ini bahkan tidak memungkinkan kami untuk memulai proyek.
Meskipun pengembang dari kelompok bahasa di Microsoft menerima banyak keuntungan dari kompiler C # baru yang ditulis dalam C #, nilai untuk pengguna akhir tidak begitu jelas: bagaimana kompiler baru akan menguntungkan mereka? Mungkin satu-satunya orang yang peduli bahwa kompiler C # ditulis dalam C # adalah pengembang kompiler itu sendiri.
Pada saat yang sama, masalah lain memanifestasikan dirinya lebih dan lebih: duplikasi upaya antara berbagai alat yang berjalan pada kode C #. Selain kompiler, tim lain bekerja pada dukungan IDE untuk C # di Visual Studio, dan mereka juga harus menulis banyak kode (pada waktu itu juga di C ++) untuk memahami sintaks dan semantik C #.
Pada saat yang sama, jumlah alat dari Microsoft dan perusahaan lain, seperti StyleCop, CodeRush, dll, semakin bertambah: semuanya harus menerapkan pemrosesan kode C # yang berarti. Masing-masing program memiliki kesalahannya sendiri sedikit berbeda, tingkat pemahaman yang berbeda, berbagai kompromi dan konsesi. Dan mereka semua akan menghabiskan banyak upaya untuk mencapai pemahaman bersama tentang kode tersebut.
Dan kami memutuskan pada proposal penting: untuk memastikan bahwa hanya ada satu basis kode di dunia - satu basis untuk semua alat yang bekerja dengan kode C #!
Nilai proposal semacam itu berasal dari peningkatan jumlah alat yang tersedia, dan terutama dari peningkatan kualitas alat yang ada. Semua persyaratan untuk kebenaran dan kinerja bahasa ditugaskan untuk basis kode tunggal. Upaya tunggal yang cukup untuk membuat dasar kualitas bintang dan fleksibilitas yang hebat. Kami akan membuat mesin nyata untuk bahasa! API terpadu dan terbuka untuk kode C #. Kami akan memberikan definisi baru untuk konsep "kompiler".
Tentu saja, setelah Anda membuat API untuk komunitas C # yang lebih luas, tidak perlu dikatakan lagi bahwa itu harus .NET API yang diimplementasikan dalam C #. Jadi, mimpi lama menulis C # dalam C # datang hampir seperti efek samping acak.
Dengan demikian, Roslyn lahir dari pola pikir terbuka: berbagi pekerjaan batin C # untuk penggunaan terprogram oleh dunia. Itu sendiri adalah sedikit proposisi berani untuk budaya perusahaan Microsoft yang masih agak tertutup.
Akankah kita membagikan kekayaan intelektual secara gratis? Akankah kita memberdayakan alat yang bersaing dengan kita?
Dalam diskusi perusahaan, kami dibantu untuk memenangkan argumen tentang memperkuat ekosistem dan menciptakan bahasa dengan alat terbaik di planet ini. Itu tentang pertumbuhan jangka panjang C # dan. NET dibandingkan dengan monetisasi jangka pendek dan perlindungan aset Microsoft. Jadi, tanpa menyebutkan kode sumber terbuka, bertaruh pada Roslyn adalah langkah besar dan berani bagi Microsoft.
Tentu saja, mengembangkan sesuatu seperti ini tidak mudah. Prospek Roslyn sangat ambisius dan penuh dengan masalah teknis, dan kami butuh lima puluh tahun untuk mengatasi semuanya. Tapi itu cerita lain.
Untuk sebagian besar pengembangan awal, Roslyn tetap menjadi proyek sumber tertutup.
Sejak awal pekerjaan serius pada proyek pada tahun 2009, kami memiliki ide untuk membuat kompiler terbuka, tetapi Microsoft belum siap.
Microsoft telah memiliki budaya pengembangan tertutup dan perlindungan kode sumber paten sejak 1970-an. Meskipun perubahan ada di udara, mereka lebih lambat dari yang diharapkan tim kami.
Kenyataannya, untuk beberapa waktu kelihatannya perusahaan itu bergerak ke arah yang benar-benar berlawanan.
Proyek Windows 8 telah sangat mempengaruhi seluruh perusahaan. Berkat model pemrograman baru, tentakelnya menembus jauh ke dalam tim pengembangan alat dan bahasa, dan semuanya tercakup dalam kerahasiaan ekstrem, tidak hanya dari luar, tetapi bahkan di dalam perusahaan. Sebagai contoh, fungsi async yang kami kembangkan saat itu dikoordinasikan dan dicampur dengan model pemrograman Windows 8, dan saya tidak akan berani menerbitkan catatan tentang desainnya bahkan di dalam perusahaan, karena takut tidak sengaja membocorkan informasi tentang Windows 8 dan masalah di kepala saya. ! Ini menciptakan iklim yang buruk untuk inovasi, dan tentu saja, tidak memungkinkan kami untuk mengandalkan kompiler C # open source.
Namun, pada akhirnya, ketika Windows 8 berjalan dengan caranya sendiri, perusahaan mulai mengubah dan menemukan arah baru, kepemimpinan baru dan filosofi yang sama sekali berbeda - Microsoft yang kita kenal sekarang. Open source sekarang menyebar dengan cepat di Microsoft.
F # dirilis pada 2010 dengan lisensi terbuka dan organisasinya sendiri -
F # Software Foundation . Sebuah komunitas yang luar biasa telah terbentuk di sekitarnya, yang segera menjadi kecemburuan kita semua. Tim kami bersikeras untuk mendapatkan lisensi gratis untuk Roslyn - dan, akhirnya, infrastruktur perusahaan memungkinkan ini dilakukan.
Pada 2012, Microsoft menciptakan organisasi Microsoft Open Tech, yang secara khusus berfokus pada proyek sumber terbuka. Roslyn datang di bawah sayapnya dan secara resmi menjadi proyek open source. Roslyn cukup matang untuk ini: semua sumber daya pembangunan bersifat internal dan terkenal, dan proyek itu sendiri tidak menderita dari sejumlah besar ketergantungan yang dapat menimbulkan konflik perizinan.
Pada April 2014, di Build Developer Conference di San Francisco, Anders Halesberg memperkenalkan
Roslyn sebagai proyek open source , dan kode sumbernya sendiri diterbitkan 3 April di CodePlex (mantan platform Microsoft untuk repositori) di bawah lisensi Apache 2.0.

Pada saat yang sama,
.NET Foundation dinyatakan sebagai basis untuk proyek .NET, termasuk Roslyn.
Rilis ini telah menjadi angin segar yang nyata! Kami mulai menuai manfaat dari keterbukaan yang sudah ada di CodePlex, dan kemudian hambatan prosedural yang tersisa untuk open source di Microsoft dihapus, jadi hari ini open source adalah bagian alami dan integral dari cara kami bekerja di banyak tim kami.
Kami tidak lagi melihat GitHub sebagai tempat untuk mempublikasikan kode sumber - itu hanya tempat kami bekerja.
Di sisi lain, perusahaan juga menyadari bahwa tidak perlu berusaha untuk mengendalikan semuanya. Menjadi jelas bahwa tidak ada alasan yang baik untuk keberadaan CodePlex - dan Roslyn, bersama dengan proyek-proyek lain, bermigrasi ke GitHub, pada saat itu platform utama de facto untuk proyek-proyek sumber terbuka. Tidak hanya kode itu sendiri, tetapi juga proses pembuatannya dilakukan di GitHub: kami tidak lagi menganggap GitHub sebagai tempat untuk menerbitkan kode sumber - ini hanya tempat kerja kami.

Desain bahasa C dan implementasi kompiler sekarang sepenuhnya proses terbuka, dengan keterlibatan pihak ketiga yang signifikan. Mereka membuat termasuk fungsi seluruh bahasa. Nilai C # hanya berguling tidak hanya karena penskalaan upaya dalam fungsi penulisan dan memperbaiki kesalahan, tetapi juga karena pemahaman dan koreksi kursus yang kami hasilkan berkat loop umpan balik harian instan dengan komunitas.
Itu adalah perjalanan yang panjang dan gila, dan bagi saya itu melambangkan perubahan luar biasa yang telah dialami Microsoft dalam dekade terakhir. Roslyn Nugget dilahirkan dalam kegelapan, tetapi tumbuh dengan gagasan keterbukaan - dan hari ini meledak dalam sejuta kegunaan berbeda berkat kekuatan sumber terbuka.
Belajar Desain Bahasa Roslyn dan C #:Roslyn di githubC # di GitHub