2 poin oleh GN⁺ 2024-04-22 | 1 komentar | Bagikan ke WhatsApp

Bahasa pemrograman Racket

  • Racket adalah bahasa pemrograman yang matang, praktis, dapat diperluas, tangguh, dan canggih
  • Racket adalah bahasa untuk pemrograman berorientasi bahasa (Language-Oriented Programming), dengan karakteristik berikut:
    • Mendukung higher-order occurrence typing
    • Menyertakan bahasa Scribble untuk pembuatan dokumentasi
    • Mendukung pemrograman logika seperti Datalog
    • Sistem makronya sangat kuat, mulai dari makro kecil hingga makro besar, pembuatan DSL yang mudah, serta dukungan untuk seluruh sintaks
  • Ekosistem Racket terdiri dari perangkat lunak, tutorial dan dokumentasi, komunitas, buku, pendidikan, swag, dan lain-lain
  • Racket telah menerima dukungan dari berbagai organisasi dan individu seperti NSF, DARPA, FIPSE, Exxon Foundation, Microsoft, Mozilla, dan Google

Opini GN⁺

  • Salah satu keunggulan terbesar Racket adalah dukungannya terhadap pemrograman berorientasi bahasa. Hal ini memudahkan pembuatan bahasa spesifik domain (DSL) dan membantu meningkatkan produktivitas
  • Namun, karena karakteristik bahasa keluarga Lisp, penggunaan tanda kurung yang sangat banyak dapat membuat keterbacaan menurun bagi orang yang baru mengenalnya. Akan menarik jika ada sintaks lain yang diperkenalkan seperti Clojure sebagai pengganti sebagian tanda kurung
  • Tutorial dan dokumentasinya tersusun dengan baik sehingga mudah dipelajari. Bahasa ini juga banyak digunakan untuk pendidikan
  • Racket dapat digunakan sebagai bahasa pemrograman umum, tetapi tampak memiliki kekhususan untuk pembuatan DSL atau keperluan pendidikan seperti SICP. Untuk digunakan di lingkungan produksi nyata, pustaka dan ekosistemnya masih terlihat kurang memadai
  • Direkomendasikan sebagai bahan belajar bagi mereka yang ingin mulai mempelajari bahasa fungsional. Namun, untuk penggunaan profesional, ada baiknya mempertimbangkan Haskell, OCaml, atau F#

1 komentar

 
GN⁺ 2024-04-22
Opini Hacker News

Ringkasan:

  • Racket memiliki fitur inti yang menarik seperti compiler, sistem manajemen paket, GUI IDE, dan binding Emacs, tetapi bagian riset bahasa pemrograman yang dipimpin sebagian profesor ilmu komputer kurang menarik perhatian.
  • Berbeda dengan Python yang menulis kode di editor lalu menjalankannya di shell, Racket mengharuskan interaksi dengan VM dan REPL yang berjalan lama, sehingga alur kerjanya sulit diadaptasi.
  • Tidak jelas bagaimana mengintegrasikan bahasa-bahasa seperti typed/racket, racket/gui, dan scribble/base ke dalam satu aplikasi. Bab-bab tutorial yang menjelaskan tiap bahasa dibahas tanpa keterkaitan satu sama lain sehingga membingungkan.
  • Racket cepat dan praktis, dengan fondasi yang kokoh serta dukungan konkurensi yang sangat baik. Ekosistem paketnya yang terintegrasi dan sistem dokumentasinya yang luar biasa juga menjadi keunggulan. Kompatibilitas ke belakangnya lebih baik daripada Python.
  • Ada contoh pengembangan proyek praktis dengan Racket, seperti situs e-commerce, aplikasi untuk iOS/macOS, klien desktop untuk Apache Kafka, dan #lang untuk Lua.
  • Hacker News juga ditulis dengan Arc dan berjalan di atas Racket.
  • Racket cocok untuk pengembangan biner yang menyertakan GUI maupun parsing JSON, XML, dan sejenisnya.
  • Sistem macronya berbeda dari Common Lisp sehingga perlu penyesuaian, tetapi sangat mendukung metaprogramming.
  • Sudut pandang pemrograman yang akademis dan murni yang ditawarkan bahasa keluarga LISP terasa jauh dari pengembangan aplikasi yang praktis.