CoreRT Microsoft menjadikan C # menjadi platform silang C ++

Microsoft perlahan-lahan mengubah rantai alat .Net untuk membolehkan penyusunan lebih awal untuk aplikasi di platform yang tidak ada rantai alat .Net.

Projek CoreRT sumber terbuka menghapuskan penggunaan Command Line Runtime (CLR) .Net untuk menjalankan aplikasi. Sebaliknya, ia menghasilkan kod C ++ dari kod aplikasi .Net C # yang diberikan, yang kemudiannya dapat disusun dan dihubungkan pada platform sasaran mana pun yang menyokong C ++.

Dalam catatan di blog pengembangan Microsoft AlphaGeek, Microsoft secara ringkas memaparkan rancangannya mengenai bagaimana CoreRT akan berfungsi, bersama dengan alasan untuk membuatnya.

"Sekiranya saya benar-benar ingin menulis beberapa kod C # dan memilikinya 'hanya berfungsi' pada peranti IoT baru," tulis Microsoft, "Saya tidak mempunyai pilihan sehingga RyuJIT mampu menghasilkan kod mesin yang berfungsi dengan pemproses itu dan sistem operasi." Dengan menyusun silang C # ke C ++, pemaju .Net kemudian dapat mengirimkan aplikasi mereka tanpa perlu menunggu. Net untuk disebarkan pada platform tertentu, kata Microsoft.

Microsoft menyatakan bahawa ia telah membuat beberapa proses yang signifikan untuk mencapai tujuan ini sepanjang tahun ini, walaupun mengakui bahawa tugas itu lebih mudah diucapkan daripada dilakukan. Masalah yang paling ketara adalah masalah projek yang melibatkan penyebaran satu bahasa ke bahasa lain. C ++ dan .Net tidak mempunyai korespondensi satu lawan satu antara ciri mereka - sintaks, struktur data, logik bahasa, dan sebagainya. Oleh itu, CoreRT harus memetakan ciri-ciri .Net tertentu secara elegan ke dalam C ++.

Salah satu projek utama lain yang mengubah bahasa menjadi C ++ untuk mempercepat pelaksanaannya adalah Nuitka, yang mengubah program Python menjadi C ++. Nuitka adalah projek yang sedang berjalan yang menghadapi banyak masalah yang sama seperti CoreRT dan mungkin mempunyai masa yang lebih sukar untuk mendamaikannya. Sifat dinamik Python menjadikannya sukar untuk berubah menjadi bahasa yang disusun lebih awal, kerana setiap pembinaan dalam bahasa itu berpotensi menjadi objek dengan sifat yang sangat berubah-ubah. C # kurang bermasalah dari sudut pandang itu, kerana ia menggunakan penaipan statik untuk pemboleh ubah, tetapi seperti yang dinyatakan di atas, ia masih menghadapi banyak kesulitan.

Terdapat banyak mengenai CoreRT yang turun secara langsung dari penyesuaian semula Microsoft yang berterusan di sekitar sumber terbuka dan teknologi bukan Microsoft yang popular. Tetapi Microsoft selalu bersikap pragmatik mengapa ia melakukannya, dan di sini pragmatisme adalah untuk melihat bagaimana. Aplikasi bersih dapat berjalan di platform dan di ekosistem yang sebelumnya tidak menyokongnya.

CoreRT secara teorinya dapat memperluas jangkauan ekosistem .Net tanpa Microsoft harus melakukan usaha yang tidak semestinya. Lebih mudah untuk menulis sistem transpilasi satu kali dari C # ke C ++ daripada membuat waktu berjalan untuk sebilangan platform sasaran lain. Pasti, pihak ketiga dapat membuat masa berjalan seperti itu. Bersih kini menjadi sumber terbuka. Tetapi rancangan Microsoft adalah mencari satu cara untuk menyelamatkan mereka - dan itu sendiri - masalahnya.