Pengenalan bahasa pemrograman Borgo
- Menginginkan bahasa untuk menulis aplikasi yang lebih ekspresif daripada Go, tetapi tidak serumit Rust
- Go sederhana dan intuitif, tetapi terkadang diharapkan bisa memberikan keamanan tipe yang lebih baik
- Rust enak digunakan (setidaknya untuk kode single-thread), tetapi terlalu luas dan kompleks, dan kadang terasa menyakitkan
- Borgo adalah bahasa baru yang ditranspilasi ke Go, dan sepenuhnya kompatibel dengan paket Go yang sudah ada
- Sintaks Borgo mirip Rust, dengan titik koma yang bersifat opsional
Fitur utama
- Tipe data aljabar dan pattern matching
- Menggunakan Option alih-alih nil
- Menggunakan Result alih-alih multiple return values
- Penanganan error menggunakan operator ?
Menjalankannya secara lokal
- Borgo ditulis dalam Rust, jadi membutuhkan cargo
- Untuk mengompilasi semua file .brg di folder saat ini:
- Kompilernya akan menghasilkan file .go, dan file tersebut bisa dijalankan seperti biasa
Pendapat GN⁺
- Rust adalah bahasa yang kuat, tetapi learning curve-nya curam dan hambatan adopsinya cukup tinggi; Borgo tampak seperti upaya menarik untuk memanfaatkan kelebihan Rust di dalam ekosistem Go. Namun, karena masih pada tahap awal, ekosistemnya kemungkinan masih minim
- Perbaikan penanganan nil dan error melalui Option dan Result, serta penyederhanaan error handling dengan operator ?, tampaknya bisa mengatasi bagian-bagian yang sering dirasa kurang nyaman oleh para developer Go
- Kemampuan untuk tetap menggunakan library Go yang sudah ada apa adanya adalah keunggulan besar. Namun, karena mengadopsi sintaks Rust, developer Go mungkin memerlukan waktu untuk beradaptasi
- Karena menggunakan pendekatan transpile, ada kemungkinan kurang unggul dibanding kode Go native dalam hal debugging atau performa runtime. Rasanya masih terlalu dini untuk diterapkan pada kode produksi berskala besar
- Seperti Kotlin yang terus meningkatkan pangsa di ekosistem JVM, agar Borgo bisa menjadi solusi di dunia Go, tampaknya masih diperlukan perbaikan berkelanjutan di berbagai aspek seperti kualitas kode, produktivitas pengembangan, dan learning curve. Jika terus berkembang, ini berpotensi menjadi alternatif yang menarik di ekosistem Go
1 komentar
Pendapat Hacker News
Ringkasan:
impl, sintaks channel dan goroutine, serta fungsi bawaanzeroValue()pub/privatesebagai pengganti cara Go membedakan visibilitas field struct berdasarkan huruf besar dan kecil