Microsoft bertujuan untuk kesederhanaan dengan bahasa pemrograman Bosque

Microsoft telah meluncurkan proyek sumber terbuka baru untuk mengembangkan bahasa pemrograman Bosque. Tujuan dari proyek bahasa Bosque adalah untuk membangun bahasa pemrograman fungsional yang menghindari "kompleksitas yang tidak disengaja" dalam proses pengembangan.

Sasaran desain untuk bahasa Bosque mencakup peningkatan produktivitas pengembang, kualitas perangkat lunak yang lebih baik, dan pemberdayaan berbagai kompiler baru dan pengalaman alat. Bahasa baru ini diposisikan sebagai eksperimen dalam desain yang diatur untuk siklus pengembangan perangkat lunak yang dibantu mesin, cepat, dan andal.

Tujuan utamanya adalah menghilangkan kerumitan yang tidak disengaja. Kode Bosque seharusnya sederhana dan mudah dipahami oleh mesin dan manusia. Tapi Bosque tetap sangat berkembang pada saat ini; pendukung tidak merekomendasikan penggunaan Bosque untuk pekerjaan produksi apa pun. Pengembang didorong untuk bereksperimen dengannya.

Beberapa fitur dan pilihan desain yang dibuat untuk Bosque adalah sebagai berikut:

  • Semua nilai tidak dapat diubah, dengan Bosque mengadopsi model fungsional dengan data yang tidak dapat diubah. Memahami efek pernyataan blok kode disederhanakan ketika bebas efek samping, dokumentasi Bosque menyatakan. Bahasa fungsional mendapat manfaat dari penyederhanaan untuk pengembangan program, alat canggih, dan pengoptimalan kompiler yang diaktifkan oleh model ini.
  • Pemrograman fungsional digabungkan dengan cakupan blok dan {…}kawat gigi dengan memungkinkan banyak tugas ke variabel yang dapat diupdate var!.
  • Fungsi adalah nilai dan tipe kelas satu.
  • Konstruktor Lambda menggabungkan definisi kode untuk badan lambda dengan semantik salinan variabel untuk variabel yang ditangkap penutupan pada pembuatan lambda.
  • Sistem tipe sederhana dan tidak beropini memungkinkan penggunaan berbagai tipe struktural, kombinasi, dan nominal untuk menyampaikan maksud dan menyandikan fitur yang relevan dari domain masalah.
  • String yang diketik menyediakan mekanisme untuk mengangkat struktur yang diketahui tentang konten string ke dalam tipe dengan cara yang berarti bagi orang dan digunakan oleh pemeriksa tipe.
  • Parameter dapat dirangkai melalui pengoperan refargumen. Alternatif untuk nilai multi-return, ini menyederhanakan skenario di mana variabel diteruskan ke metode yang mungkin menggunakan dan memperbaruinya. Mengizinkan pembaruan dalam parameter menghilangkan manajemen nilai pengembalian ekstra yang akan diperlukan. Fitur ini belum diterapkan.
  • Argumen bernama disediakan, seperti operator istirahat dan tersebar. Ini dapat melakukan manipulasi data sebagai bagian dari pemanggilan dan operasi konstruktor.
  • Dukungan kelas satu ditawarkan untuk mengekspresikan berbagai invarian, pemeriksaan kewarasan, dan pernyataan diagnostik.
  • Operasi data aljabar massal di Bosque dimulai dengan pembacaan massal dan pembaruan nilai data. Operator membuat kode bantuan fokus pada maksud keseluruhan dan membiarkan pengembang melakukan penalaran aljabar pada operasi struktur data. Operasi aljabar disediakan untuk tipe data, tupel, record, dan tipe nominal, serta untuk operasi termasuk proyeksi, multi-update, dan merge.
  • Dengan kemampuan pemrosesan berulang, loop terstruktur diperdagangkan untuk konstruksi pemrosesan berulang tingkat tinggi. Menghapus boilerplate dari penulisan loop yang sama menghilangkan kelas kesalahan termasuk komputasi terikat; maksud diperjelas maksudnya.

Bosque menjadi proyek bahasa terbaru di Microsoft, yang telah menghasilkan bahasa termasuk C #, bahasa berorientasi objek; F #, bahasa fungsional; dan TypeScript, superset dari JavaScript. Raksasa perangkat lunak ini cukup berhasil dalam mengembangkan bahasa yang mendapatkan popularitas. C #, misalnya, berada di peringkat kelima dan TypeScript ke-12 dalam peringkat bahasa RedMonk terbaru, yang didasarkan pada diskusi di Stack Overflow dan penggunaan kode di GitHub. 

Anda dapat menemukan dokumentasi Bosque, contoh, dan implementasi referensi di GitHub. Tutorial sedang dalam pengerjaan.