9 poin oleh GN⁺ 2025-04-15 | 2 komentar | Bagikan ke WhatsApp
  • Fennel adalah bahasa pemrograman yang berjalan di runtime Lua
  • Lua adalah bahasa pemrograman yang sederhana namun kuat, mudah diintegrasikan ke program lain sehingga memberi pengguna kemampuan untuk memprogram ulang
  • Fennel melengkapi kekurangan Lua dengan menawarkan alternatif yang lebih jelas dan mengurangi kesalahan
  • Fennel menggunakan sintaks keluarga Lisp untuk mengurangi kompleksitas sintaks dan meningkatkan keterbacaan kode
  • Fennel menyediakan fitur yang lebih baik daripada Lua dalam hal penugasan ulang variabel, notasi tabel, pemeriksaan argumen fungsi, dan lainnya

Apa itu Fennel?

  • Fennel adalah bahasa pemrograman yang berjalan di runtime Lua
  • Lua adalah bahasa yang sederhana namun kuat, mudah diintegrasikan ke program lain sehingga memberi pengguna kemampuan untuk memprogram ulang program
  • Fennel melengkapi kekurangan Lua dengan menawarkan alternatif yang lebih jelas dan mengurangi kesalahan

Kelebihan Lua

  • Lua adalah bahasa yang kecil dan cepat, terdiri dari sekitar 19.000 baris kode C dan dikompilasi menjadi 278kb
  • Tetap mempertahankan kesederhanaan konseptual sambil menyediakan fitur yang kuat
  • Mudah diintegrasikan ke program lain sehingga pengguna dapat memprogram ulang program

Fitur utama Fennel

  • Fennel menggunakan sintaks keluarga Lisp untuk mengurangi kompleksitas sintaks dan meningkatkan keterbacaan kode
  • Semuanya diperlakukan sebagai ekspresi, tanpa ambiguitas terkait prioritas operator atau pengembalian lebih awal
  • Variabel: mempersulit penggunaan variabel global untuk mengurangi kesalahan, dan menggunakan var saat melakukan penugasan ulang variabel untuk meningkatkan kejelasan

Tabel dan loop

  • Fennel memperbaiki notasi tabel dengan membedakan antara array dan tabel kunci/nilai
  • Dalam loop, Fennel menggunakan for dan each untuk menyediakan sintaks yang jelas

Fungsi dan fitur lainnya

  • Fennel mendukung pemeriksaan argumen pada fungsi, sehingga menghasilkan kesalahan saat argumen kurang
  • Mendukung destructuring dan pattern matching, sehingga memungkinkan penulisan kondisi yang lebih deklaratif
  • Menyertakan sistem makro, sehingga bentuk sintaks baru dapat diperluas dengan mudah

2 komentar

 
GN⁺ 2025-04-15
Komentar Hacker News
  • Menyenangkan melihat bahasa-bahasa baru menargetkan runtime Lua

    • Baru-baru ini saya membuat server SSE bisa diprogram dengan Lua
    • Sangat merekomendasikan Lua dan binding Rust mlua-rs
  • Fennel itu bagus

    • Saya tidak menyesal setelah mengubah konfigurasi neovim saya ke Fennel
  • Selain Forth, Lisp, dan Lua, Tcl juga layak disebut sebagai bahasa embedded kecil

    • Sejak versi v8 memang jadi lebih kompleks, tetapi versi awalnya sangat sederhana
    • Saya terkesan setelah membaca buku Ousterhout lalu mencoba mengimplementasikannya sendiri
  • Saya tidak paham daya tarik bahasa bergaya Lisp

    • Parser-nya sederhana dan elegan, tetapi menurut saya pengembang harus lebih mengutamakan kenyamanan pengguna
    • Menulis kodenya merepotkan dan simbolnya terlalu banyak tanpa perlu
    • Mem-parsing sintaks mirip C tidaklah sesulit itu
  • Pendekatan Fennel yang mengompilasi ke Lua sambil mempertahankan kemampuan metaprogramming terasa elegan

    • Sintaksnya mengingatkan pada Clojure, tetapi tanpa overhead JVM
    • Ini kombinasi yang cocok untuk sistem embedded atau pengembangan game
  • Fennel cukup bagus

    • Akan menyenangkan jika ia mengizinkan dukungan tipe gradual atau anotasi tipe untuk alat statis
    • Dynamic typing adalah pilihan yang valid, tetapi setelah banyak bahasa memiliki dukungan tipe gradual, sulit untuk kembali
  • Informasi untuk orang-orang yang mencari bahasa lain yang dibangun di atas Lua

  • Orang-orang yang mengeluh soal tanda kurung mungkin belum cukup banyak menulis kode Lisp

    • Setelah melewati hambatan tanda kurung, keseragaman bahasanya akan terlihat dan Anda akan mengerti mengapa orang menyukai Lisp
  • Cocok untuk pengembangan game yang santai dan menyenangkan

    • TIC-80 mendukungnya secara langsung, dan mudah beralih dari Fennel ke PICO-8
 
nemorize 2025-04-15

Tautan MoonScript sepertinya salah terpasang ya~
https://moonscript.org/