Saya baru saja membaca beberapa buku putih & contoh dari Microsoft "Roslyn" dan konsepnya tampak sangat menarik. Dari apa yang saya tahu, itu membuka kotak hitam yang merupakan kompiler dan menyediakan antarmuka yang dapat kita gunakan untuk mendapatkan informasi dan metrik tentang kode yang ditulis dalam Visual Studio.
Roslyn juga tampaknya memiliki kemampuan untuk "skrip" kode dan mengkompilasi / menjalankannya dengan cepat (mirip dengan CodeDom) tetapi saya hanya menemukan penggunaan terbatas untuk jenis fungsionalitas dalam pengalaman saya.
Sementara analisis kode & elemen metrik adalah ruang yang menarik ... ini adalah sesuatu yang telah ada sejak lama dan ada banyak penyedia yang telah menginvestasikan banyak uang ke dalam analisis kode & alat refactoring (mis. ReSharper, CodeRush , nCover, dll) dan mereka melakukan pekerjaan yang cukup bagus!
Mengapa ada perusahaan yang berupaya menerapkan sesuatu yang dapat disediakan dengan biaya yang sangat murah dengan membeli lisensi untuk salah satu alat yang ada?
Mungkin saya telah melewatkan beberapa fungsi kunci dari proyek Roslyn yang menempatkannya di luar domain alat yang disebutkan ...
sumber
Jawaban:
Kompilasi dan eksekusi on-the-fly adalah manfaat utama Roslyn. Saya pikir Anda mungkin meremehkan manfaat fitur ini karena Anda belum pernah menemukan kasus penggunaan dalam pengalaman Anda di mana itu benar-benar bersinar. Dan ini masuk akal; kebutuhan akan kompilasi dinamis mungkin merupakan fitur khusus, tetapi memiliki kompilasi yang menyediakan beberapa aplikasi canggih yang akan jauh lebih sulit tanpanya.
Berikut adalah beberapa contoh dari atas kepala saya di mana kompilasi dinamis akan sangat berguna. Ada beberapa cara lain untuk mencapai semua ini, tetapi Roslyn membuatnya lebih mudah.
Jadi, singkatnya, Anda mungkin tidak pernah menemukan penggunaan untuk Roslyn, tergantung pada perangkat lunak apa yang Anda habiskan untuk menulis. Namun, ada banyak kasus penggunaan di mana Roslyn membawa banyak hal. Tidak ada alat yang Anda sebutkan menyediakan fitur ini. Mereka juga tidak bisa berdasarkan pada arsitektur dan tujuan mereka.
sumber
Saya yakin perusahaan yang menyediakan perkakas (mis., JetBrains *) sangat tertarik pada Roslyn. Microsoft ingin membuatnya mudah untuk membuat perkakas, karena perkakas yang baik mendorong penggunaan ekosistem Microsoft.
* Per blog JetBrains ( entri ini ), JetBrians telah mengumumkan bahwa mereka tidak akan menggunakan Roslyn. Namun, saya membayangkan bahwa setiap pesaing baru untuk JetBrains (yang tidak memiliki basis kode yang sudah ada untuk bekerja) akan menggunakan Roslyn; itu memberi mereka awal.
Pertanyaan 6 dalam 10 Pertanyaan, 10 Jawaban tentang Roslyn :
sumber
Dengan penuh semangat saya menunggu hari ketika semua kompiler secara rutin menawarkan Compiler sebagai Layanan (CaaS). Kita perlu berhenti berpikir bahwa kompiler hanya memancarkan kode pra-tautan dan mulai berpikir bahwa kompiler memancarkan pohon yang dapat diubah menjadi beberapa target. Semua kompiler harus memiliki fitur untuk memancarkan pohon dan secara opsional JSON / XML. Output kemudian dapat diubah menjadi banyak jenis target seperti bahasa yang dipercantik yang sama, sumber C, IL, biner IL, Java, Javascript, LLVM, PIC dapat dieksekusi, dan bahkan kode pre-linker.
Saya menulis kompiler untuk mencari nafkah. Pelanggan saya dijual dengan CaaS karena membuka pintu bagi fleksibilitas, portabilitas, dan analisis yang fantastis.
Saya benar-benar kecewa bahwa Microsoft belum mengimplementasikan CaaS sejak lama. Misalnya, itu bisa digunakan sebagai jalur migrasi untuk VB6 ke sesuatu yang lain, atau .Net ke C ++.
sumber
Jawaban sederhana mengapa MSFT berinvestasi di Roslyn adalah bahwa basis kode yang ada untuk kompiler C # sekarang 5 versi lama - 11 tahun sekarang. Itu waktu yang lama untuk basis kode apa pun untuk tetap dapat dikelola. Plus, karena mereka menulis ulang, mereka memutuskan untuk berinvestasi dalam melakukannya sehingga semua internalnya terekspos sebagai milik API.
sumber