Mengenal Bahasa Pemrograman Bosque yang Lagi Viral!

Baru-baru ini Microsoft merilis bahasa pemrograman baru bernama Bosque. Bagi netizen indonesia, kata ‘bosque’ memang terdengar familiar.

Saya pun tidak menyangka, postingan pertama tentang Bosque di Petani Kode bisa mendapatkan 1.8k share ditengah-tentah ramainya isu politik di Indonesia.

Mungkin karena namanya yang terdengar ‘lucu’ bagi netizen indonesia. 😄

Bosque juga memang lagi viral di beberapa web dan forum programmer seperti Github, Hacker News, dan Reddit.

Repositori Bosque masuk ke dalam trending repositori di Github
Repositori Bosque masuk ke dalam trending repositori di Github

Oke jadi…

Apa itu Bosque?

Menurut definisi yang diberikan pada website Microsoft:

Bahasa Pemrograman Bosque adalah bahasa pemrograman yang didesain untuk penulisan kode yang sederhana, jelas, dan mudah dipahami oleh manusia maupun mesin. 1

Bosque adalah bahasa pemrograman typed dan fungsional yang sintaksnya terinspirasi dari Javascript, Typescript dan bahasa pemrograman ML. 2

Kata “mudah dipahami” ini mungkin bagi mereka yang sudah menguasai pemrograman secara mendalam.

Bagi pemula mungkin tidak akan mudah dipahami.

Reaksi saya juga begitu, ketika baru pertama melihat sintak Bosque…

…banyak hal yang belum dipahami.

Sebelum Mencoba Bosque, Ketahui 5 Hal ini

Ada baiknya kamu mengetahui beberapa hal ini sebelum kamu memutuskan untuk mempelajari Bosque lebih dalam.

Hal yang harus diketahui tentang Bosque

1. Bosque Belum Siap untuk Lingkungan Produksi

Bosque

Yak benar sekalai, Bosque masih dalam eksperimental.

Berikut ini pernyataan dari repositori Bosque di github:

we do not recommend the use of the Bosque language for any production work and instead encourage experimentation only with small/experimental side projects at this point in time. 3

Terjemahannya kira-kira begini:

Kami tidak merekomendasikan Bosque untuk digunakan pada lingkungan produksi. Untuk eksperimen dan coba-coba sih tidak apa-apa.

2. Bosque Tidak Memiliki Blok Perulangan

Bosque

Biasanya pada bahasa pemrograman, kita akan temukan blok perulangan seperti for, while, do/while, dan repeat/until.

Tapi di Bosque ini tidak ada…

Mungkin ini yang mereka maksud menghindari kecelakaan kompleksitas (accidental complexity) dengan menhapus penyebab kompleksitas tersebut.

Coba saja perhatikan perbandingan program perkalian elemen array ini:

Bosque

Pada bahasa pemrograman C, kita membutuhkan perulangan untuk mengalikan setiap elemn array dengan dua.

Sedangkan pada Bosque, kita menggunakan map.

3. Bosque Tidak Memiliki Fungsi Input/Output

Rencananya saya mau coba membuat program hello world dengan Bosque. Tapi ternyata Fungsi input/output belum ada.

Bosque

Mungkin nanti akan menggunaan modul atau library tambahan untuk melakukan input/output.

4. Bosque Masih Bayi

Bosque

Bosque saat ini masih seperti bayi yang belum bisa berjalan.

Sebagai bahasa pemrograman baru, masih banyak hal yang harus dibuat. Belum lagi kalau ada bugs dan error.

5. Dokumentasi Bosque Belum Lengkap

Bosque

Dokumentasi Bosque masih belum lengkap. Ini juga membuat saya bingung untuk mencari referensi tentang Bosque.

Pada repositori Bosque, masih banyak bagian dokumentasi yang belum dikerjakan dan statusnya masih [TODO].

Dokumentasi Bosque yang belum dikerjakan
Dokumentasi Bosque yang belum dikerjakan

Bagaimana Cara Mencoba Bosque?

Jadi…

Apa kamu ingin mencoba Bosque?

Saya sudah mencoba di Linux Kubuntu 18.04. Berikut ini langkah-langkahnya:

Persiapan Alat

Pertama, kamu harus menyiapkan peralatan berikut:

  1. git untuk clone repositori Bosque;
  2. nodejs dan npm untuk build repositori Bosque;
  3. typescript karena implementasi Bosque ditulis dengan bahasa pemrograman Typescript.

Silahkan ketik perintah berikut untuk meingstal mereka semua:

# install git
sudo apt install git

# install nodejs dan npm
sudo apt install nodejs

# install typescript
sudo npm -g install typescript

Build Repositori Bosque

Langkah pertama, clone repository dari Bosque:

git clone --depth=1 [email protected]:Microsoft/BosqueLanguage.git

setelah itu masuk ke folder BosqueLanguage/ref_impl

cd BosqueLanguage/ref_impl

Berikutnya, ketik perintah berikut untuk menginstal modul yang dibutuhkan:

npm install

Tunggu sampai prosesnya selesai.

Instalasi modul bosque

Langkah kedua, build compiler Bosque.

Ketik perintah berikut:

npm run-script build

Jika sukses, maka akan muncul seperti ini:

Kompilasi compiler bosque

Maka compiler dan interpreter Bosque akan dikompilasi dari Typescript menjadi Javascript.

Buktinya kita sekarang memiliki file bin.

File Binari Bosque

Nah untuk mengeksekusi program Bosque, kita harus menggunakan app_runner.js seperti ini:

node bin/test/app_runner.js FILE_PROGRAM.bsq

Mari kita coba…

Pada repositori Bosque, terdapat file program bosque di ref_impl/src/test/apps/.

Contoh program bosque

Kita akan coba program fungsi max() yang kode programnya seperti ini:

//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

//
//This is a bosque test/benchmark for a simple max function.
//Expected output is: 20
//

namespace NSMain;

function max(x: Int, y: Int): Int
    ensures _return_ == x || _return_ == y;
{
    if (x >= y) {
        return x; 
    } else {
        return y;
    }
}

entrypoint function main(): Int {
    var x = 10;
    var y = 20;

    return max(x, y);
}

Ketik perintah berikut untuk menjalankan program tersebut:

node bin/test/app_runner.js src/test/apps/max/main.bsq

Maka hasilnya:

Program Max Bosque

Bagaimana?

Ribet!

Ya memang begitu, karena Bosque masih dalam tahap eksperimental.

Kita tunggu saja, mungkin nanti akan ada file binari bosque. Sehingga untuk mengeksekusi program Bosque, kita cukup ketik perintah seperti ini:

bosque FILE_PROGRAM.bsq

Berikutnya silahkan coba untuk mengeksekusi program yang lainnya atau mungkin membuat sendiri.

Ini contoh program Hello World!

namespace NSMain;

entrypoint function main(): String {
    return "Hello World!";
}

Hasilnya:

Program Hello World di Bosque

Sebenarnya program Hello World di atas tidak mencetak teks “Hello World” ke layar. Bosque hanya menampilkan nilai yang dikembalikan fungsi main() dalam hal ini adalah string "Hello World".

Program Hello World Bosque versi pak Ariya:

namespace NSMain;

entrypoint function main(): Int {
    var _ = "Hello, world!"->display();
    return 0;
}

Bosque di Visual Studio Code

Source code Bosque menyediakan ektensi untuk VS Code (bosque-language-tools) yang berfungsi untuk syntax highlighting.

Untuk menggunakan ekstensi ini, kita cukup copy ke dalam folder ~/.vscode/extensions/.

cp bosque-language-tools/ ~/.vscode/extensions/ -r

Hasilnya akan seperti ini:

Ini sebelum menggunakan extension

Menggunakan ekstension Bosque di VS Code

Ini sesudah menggunakan extension

Menggunakan ekstension Bosque di VS Code

Akhir Kata…

Nah itulah sekilas tentang bahasa pemrograman Bosque.

Apakah kamu tertarik mencobanya?

atau mungkin kamu ingin ikut berkontribusi mengembangkan bahasa pemrograman ini?

Akhir kata, Siap bosque! 😄