Mencoba Clojure
(tryclojure.org)- Try Clojure adalah halaman pengalaman 5 menit untuk langsung mengevaluasi ekspresi Clojure di browser
- Input yang dimasukkan di REPL di sisi kanan layar dijalankan sebagai read-eval-print loop
- Anda bisa mengetik sendiri contoh ekspresi seperti
(+ 1 2), atau mengklik potongan kode agar otomatis disisipkan - Periksa perintah dengan
(help), lalu saat siap, ketik(start)untuk memulai pengalaman - Halaman ini dibuat dengan Clojurescript, dan informasi pembuatannya mencantumkan Elia Scotto, Michiel Borkent, serta komunitas Clojure
Clojure yang langsung berjalan di browser
- Try Clojure dirancang agar Anda bisa mencoba Clojure secara singkat dengan panduan “Got 5 minutes?”
- Clojure symbolic expression yang dimasukkan pengguna di REPL di sisi kanan akan dievaluasi
- Alur pengalamannya sederhana
- Ketik sendiri ekspresi seperti
(+ 1 2) - Klik potongan kode agar otomatis disisipkan
- Periksa perintah dengan
(help) - Mulai dengan
(start)
- Ketik sendiri ekspresi seperti
Informasi pembuatan
- Halaman ini memuat kutipan dari Rich Hickey: “If you want everything to be familiar, you'll never learn anything new.”
- Try Clojure dibuat dengan Clojurescript, dan Elia Scotto ditampilkan sebagai pembuat
- Juga terdapat ucapan terima kasih kepada Michiel Borkent dan komunitas Clojure
1 komentar
Pendapat Hacker News
Senang melihat ini kembali. Versi yang ada sangat lama dulu membuat saya mencoba Clojure, dan pilihan itu menjadi keputusan yang paling berpengaruh dalam karier saya
Sampai sekarang saya memakai Clojure hampir setiap hari di kantor dan di rumah; kadang Clojure standar, kadang Babashka yang sangat bagus sebagai pengganti task runner seperti Make atau skrip Zsh
Go juga menjadi pilihan kedua yang kuat saat perlu mengompilasi menjadi satu binary, tetapi Clojure terasa paling nyaman berkat alur pengembangan berbasis REPL yang terasa seperti berdialog dengan program, alih-alih loop tulis-kompilasi-jalankan yang biasa
Ditambah lagi karena berjalan di atas JVM, ini menjadi seperangkat alat yang menyenangkan untuk menyelesaikan pekerjaan. Kalau Anda punya sedikit saja minat pada Lisp dan pemrograman fungsional, saya sangat menyarankan untuk mencobanya; jika memakai VSCode, plugin Calva sangat membantu
Beralih ke bahasa yang ekspresivitasnya rendah terasa menyakitkan dan menjengkelkan; saya ingat saat pindah dari Python ke Java 5, kode untuk mengekspresikan hal yang sama menjadi 3–5 kali lebih panjang
Mungkin kuncinya adalah memakai bahasa yang ekspresivitasnya rendah hanya untuk menulis hal-hal kecil, seperti shell script, fungsi C kecil untuk performa atau foreign function interface, atau utilitas Go kecil
Kalau baru pertama mengenal Clojure dan ingin langsung bereksperimen dengan sesuatu yang berguna, saya sangat merekomendasikan runtime Babashka untuk scripting: https://babashka.org
Ini menyenangkan, mudah didekati, dan merupakan salah satu bagian ekosistem Clojure yang lebih matang
Berbeda dari Clojure JVM penuh, waktu start-nya sangat cepat sehingga menjadi titik masuk yang bagus, dan pemula bisa bekerja seolah-olah interaktif dengan alat file watching/reloading yang sudah akrab, misalnya nodemon
Nantinya, sebaiknya beralih ke konfigurasi interaktif penuh dengan koneksi REPL dari editor, tetapi bagi pemula alur itu bisa terasa asing dan setup-nya juga bisa merepotkan
Saya pernah memakainya bersama HTMX karena perlu membuat UI kecil untuk menampilkan statistik aplikasi kerja, dan pengalamannya sangat bagus
Babashka sudah menyertakan hampir semua yang dibutuhkan untuk aplikasi web dasar, dan dengan HTMX Anda bisa melakukan dynamic loading pada halaman tanpa perlu menangani frontend JavaScript
Selain itu, Anda bisa menjalankan nREPL dengan
bb --nrepl-server, lalu menghubungkan editor seperti Calva untuk mengembangkan skrip secara interaktif, jadi ini layak dicoba jika Anda membutuhkan UI web sederhanaAda juga situs dengan arah serupa, https://www.maria.cloud/
Situs itu lebih ditujukan untuk mengajarkan pemrograman kepada pemula total, tetapi menurut saya manipulasi dasar ala paredit dan cara evaluasi per form jauh lebih dekat dengan pengembangan berbasis REPL yang benar-benar dipakai
Mengetik langsung di jendela terminal REPL ergonomics-nya sangat buruk, dan biasanya yang lebih realistis adalah mengirim form di bawah kursor ke proses REPL di suatu tempat menggunakan alat seperti Calva di VSCode atau CIDER di Emacs
Alasan terbaik untuk mempelajari Clojure adalah Reagent, dan menurut saya itu jelas cara terbaik menggunakan React: https://reagent-project.github.io/
shadow-cljs memudahkan penggunaan library npm: https://github.com/thheller/shadow-cljs
Untuk susunan dasar, saya akhirnya menetap pada backend Go dan frontend Reagent: https://github.com/nathants/aws-gocljs
Saya ingin melihat lebih jelas apa yang terjadi di dalamnya, dan berinteroperasi dengan komponen React native secara lebih sederhana
Sepertinya dukungan eksperimental React 18 mulai dikejar, tetapi Reagent tertinggal dari arus React terbaru dan mungkin tidak mendapatkan semua manfaat optimasi performa
Masih memakai class component dan belum memakai hook, dan ada juga kekhawatiran bahwa konversi runtime Hiccup bisa menurunkan performa
Namun dalam kebanyakan kasus itu mungkin tidak akan terasa, dan kalau tidak melakukan hal-hal yang mewah, seharusnya tidak apa-apa. Karena saya merindukan model UI-as-data milik Hiccup, suatu hari saya mungkin kembali ke Reagent
Untuk manajemen state, saya sangat merekomendasikan re-frame: https://day8.github.io/re-frame/
Awalnya mungkin terlihat berat, tetapi dokumentasinya sangat bagus, dan setelah dipahami, modelnya sangat jelas
Ada juga alternatif seperti Helix(https://github.com/lilactown/helix) atau UIx(https://github.com/pitch-io/uix), serta refx(https://github.com/ferdinand-beyer/refx) yang hampir menghilangkan dependensi pada Reagent
Atau Anda bisa menambahkan kode interoperabilitas ke UIx/Helix untuk memasangkan re-frame: https://github.com/pitch-io/uix/blob/master/docs/interop-wit...
Pada 2024 kita tidak bisa mengirimkan file HTML kosong, karena itu merusak optimasi pencarian; kalau bukan begitu, saya ingin mencobanya
Masa-masa saya memakai Clojure benar-benar menyenangkan dan sangat saya rekomendasikan: https://eli.thegreenplace.net/2017/clojure-the-perfect-langu...
Clojure for the Brave and True karya Daniel Higginbotham adalah materi yang benar-benar bagus untuk belajar Clojure, jadi sangat saya rekomendasikan
Bisa dibaca gratis secara online: https://www.braveclojure.com/clojure-for-the-brave-and-true
Masalah sebenarnya dari buku ini bukan Clojure, melainkan bahwa ia mulai mengajar dari Emacs
Saat ini mungkin banyak pemula yang datang dari VSCode, dan bagi mereka itu menjadi distraksi besar
Beberapa tahun lalu seorang rekan menyarankan agar saya membaca History of Clojure meskipun tidak mencoba Clojure, tetapi saya menundanya: https://dl.acm.org/doi/pdf/10.1145/3386321
Lalu setelah menonton Rich Hickey - Greatest Hits https://changelog.com/posts/rich-hickeys-greatest-hits, saya membaca History of Clojure dan langsung mulai mempelajarinya
Clojure adalah salah satu bahasa paling menyenangkan untuk membangun sesuatu sekaligus salah satu yang paling indah
Bukan sintaksnya sendiri, melainkan caranya memungkinkan kita mengekspresikan pikiran melalui desain dan komposisi yang baik, yang memberi rangsangan menyenangkan pada otak
Jika Anda masih mencari alat mengilap yang benar-benar pas tetapi belum ada yang terasa cocok, Clojure layak dicoba. Dari semua bahasa yang pernah saya lihat sejauh ini, ini termasuk yang paling ringkas sekaligus kuat
Saya penasaran apakah dengan mempelajari Clojure ada hal tambahan yang didapat di luar itu, atau pada umumnya mirip saja
Penasaran apakah ada versi Clojure yang dikompilasi dengan sesuatu seperti LLVM
Rasanya mirip dengan yang awalnya ingin dilakukan Scala Native, tetapi dalam praktiknya tidak benar-benar berhasil menjadi arus utama seperti itu
Saya menyukai pemrograman fungsional, tetapi pada 2024 ekosistem Java terasa terlalu usang hingga sulit ditoleransi
Bisa dilihat di https://jank-lang.org/
Belum mencapai kesetaraan fitur penuh dengan JVM Clojure, tetapi saya mengikuti pengembangannya dengan saksama
Sebenarnya itu mungkin bukan masalah besar
Tautan terkait:
Try Clojure – An interactive tutorial in the browser - https://news.ycombinator.com/item?id=30423856 - Februari 2022, 93 komentar
Try Clojure in your browser - https://news.ycombinator.com/item?id=3366526 - Desember 2011, 26 komentar
Try Clojure - https://news.ycombinator.com/item?id=1359682 - Mei 2010, 60 komentar
Clojure mulai populer di Meksiko, dan Brasil sepertinya punya arus serupa berkat Nubank
Itu tempat yang ingin dituju para ilmuwan komputer untuk bekerja, dan tampaknya mereka terutama bekerja dengan Clojure
Sepertinya mereka pernah merekrut beberapa anggota inti bahasa tersebut, dan saya ingat pada suatu titik mereka juga mengakuisisi perusahaan milik pencipta Elixir, José Valim
Namun tetap saja, mereka masih tampak sebagai perusahaan yang terutama memakai Clojure
Akuisisi yang terakhir itu untuk mendapatkan keahlian manajemen proyek Platformatec (https://building.nubank.com.br/tech-perspectives-behind-nuba...), dan sejauh yang saya tahu tidak ada kode Elixir yang berjalan di Nubank
Di “sisi lain” pipeline ETL ada Python, tetapi untuk area yang berhadapan dengan pengguna, sejauh yang saya tahu backend-nya Clojure, sedangkan aplikasi Android dan iOS-nya TypeScript
Saya penasaran apakah Clojure di Tiongkok juga merupakan tren yang berarti