- CIEL adalah Lisp yang diperluas berbasis Common Lisp 100%, dengan pendekatan “batteries included” yang menyediakan alat-alat dasar secara bawaan
- Skrip dijalankan dengan shebang
#!/usr/bin/env ciel, dan dari kode Lisp bisa langsung menggunakan pembacaan JSON serta HTTP GET
- Contohnya memanggil dengan
http:get, lalu membaca respons dengan json:read-json dan mencetaknya dengan print
- Contoh eksekusi
./myscript.lisp menunjukkan alur penggunaan skrip CIEL seperti berkas executable biasa
- Sisa bagian dokumentasi web memerlukan JavaScript, dan untuk melihatnya tanpa JavaScript harus membuka repositori GitHub
Sifat dasar CIEL
- CIEL diperkenalkan sebagai “Lisp yang diperluas”
-
Berbasis Common Lisp
- Berbasis Common Lisp 100%
- Menonjolkan konfigurasi batteries included yang mencakup alat-alat dasar
Contoh menjalankan skrip
- Kode contoh menetapkan eksekutor
ciel sebagai shebang
#!/usr/bin/env ciel
(print
(json:read-json
(http:get "https://fakestoreapi.com/products?limit=5")))
http:get mengirim permintaan HTTP, json:read-json membaca JSON respons, lalu print menampilkannya
- Perintah eksekusinya adalah sebagai berikut
$ ./myscript.lisp
Akses dokumentasi dan repositori
- Tautan proyek disediakan di GitHub
- Sisa bagian dokumentasi web memerlukan JavaScript, dan jika JavaScript tidak dapat digunakan ada petunjuk untuk melihat repositori GitHub
1 komentar
Opini Hacker News
Sangat penting bahwa komponen yang terdokumentasi dengan baik sebagai standar dibundel sehingga bisa langsung dipakai seperti bagian dari bahasa inti, bahkan diberi nama yang keren
Saya suka, dan ini tampaknya bisa menjadi target standar baru. Sekarang tinggal butuh maskot atau logo yang bagus
Saya suka pendekatannya. Saya mengira ini “Lisp lain lagi”; itu memang keren, tetapi mungkin bukan sesuatu yang langsung ingin saya pakai
Memperluas dan memperbaiki sesuatu yang sudah ada bisa lebih sulit dan kurang menyenangkan daripada memulai dari nol, tetapi nilainya jauh lebih besar. Saya sudah memakai Common Lisp, dan ini tampaknya sedikit mengurangi keanehan khasnya, terutama untuk pemula atau proyek kecil
Setiap kali ada pembahasan tentang Lisp yang cepat dan nyaman, saya ingin menyebut Joker(https://github.com/candid82/joker)
Ini sintaks Clojure yang diimplementasikan dalam Go; saya tidak berafiliasi, tetapi menurut saya ini benar-benar bagus. Jika contoh CIEL ditulis dengan Joker, jadinya
(prn {:a 1 :b 2 :c 3}), dan Gist untuk mengunduh, memasang, serta menjalankannya ada di https://gist.github.com/lsh-0/f7df23777ef35a8cc3d85e1dcbf0eb...Menjalankan seluruh skrip memakan waktu 2,1 detik, sedangkan eksekusi contohnya sendiri 0,007 detik
Senang melihat pendekatan yang diambil Babashka(https://babashka.org/) kini juga muncul di dunia Common Lisp
Di Safari pun muncul peringatan Javascript yang sama. Saya tidak mengaktifkan ekstensi apa pun
Setelah saya cek dengan Chrome, selain itu bentuknya persis seperti yang ingin saya pakai. Pustaka standar CL memang sudah terasa agak terlalu penuh, tetapi kalau ingin menuju “batteries included”, hal-hal seperti Alexandria dan Bordeaux memang sebelumnya absen, jadi saya suka pilihan ini. Ini memberi kesan “praktik terbaik” atau standardisasi pada ekosistem CL yang agak terfragmentasi
Bagus sekali. Secara pribadi saya memakai image yang memasukkan Alexandria, Serapeum, Dexador, Bordeaux Threads dan berbagai tool terkait JSON, jadi akan nyaman jika orang lain juga punya sesuatu dengan target serupa
Ini tampaknya punya peluang sukses lebih besar daripada proposal CDR yang kebanyakan hanya dibahas berlebihan, atau CL21 yang lebih awal dari itu. Saya juga penasaran apakah banyak reader macro yang diaktifkan secara default
Karena tidak ingin mengutak-atik readtable secara default. Lihat di bawah untuk cara mengaktifkan shell passthrough di REPL editor
1: https://github.com/Neronus/Clesh
Kalau ada wrapper untuk membangun core ncurses dan SDL, mungkin suatu hari lem bisa langsung berjalan di atas CIEL dan menghasilkan lingkungan Lisp yang sungguhan
https://news.ycombinator.com/item?id=41357409
Ini tampaknya berbeda dari Ciel(https://pldb.io/concepts/ciel.html), Lisp lain yang dibuat Ron Garret pada 2010. Ia juga seorang ilmuwan roket(https://flownet.com/ron/)
Apakah bisa dikompilasi menjadi binary dengan mudah? Sepertinya cukup memakai cara standar CL
Adanya shell passthrough seperti
!lsdiCIEL custom REPLadalah fitur yang kerenPembuatnya belum menganggapnya “siap” atau “cukup bagus”, tetapi sudah cukup maju. Ada juga shell POSIX https://github.com/bradleyjensen/shcl. Seperti biasa, daftar yang lebih banyak bisa dilihat di https://github.com/CodyReichert/awesome-cl#shells-shells-int...
Saya ingin menambahkan perintah
ciel buildSaya jadi penasaran apakah Python yang justru unik dalam implementasi REPL. REPL yang saya kenal hanya Python dan e-lisp
Ctrl+Z?Ini terlihat seperti SBCL ditambah pustaka. Pembuatnya, vindarel, ada di HN
Saat memulai proyek baru, saat harus berinteraksi dengan dunia luar, atau saat ingin menulis sesuatu yang kecil lalu menaruhnya di server tanpa kompleksitas Python, ini menghemat banyak waktu. Django tentu sulit digantikan, tetapi saya juga sudah mulai membuat dashboard DB otomatis untuk pekerjaan CRUD; belum dirilis publik, tetapi sedang berjalan
Saya sudah mengintegrasikan CL secara bertahap ke pekerjaan klien, dan CIEL adalah satu lagi sarana untuk tujuan itu. Tujuannya adalah benar-benar memakai CL. Proyek-proyek saya tidak selalu membutuhkan kekuatan super CL, tetapi untuk pengembangan, deployment, dan monitoring, saya menginginkan kekuatan itu
Hari ini saya memperbaiki beberapa masalah dan merilis v0.2: https://github.com/ciel-lang/CIEL/releases/tag/v02 Intinya, pemasangan CIEL seharusnya menjadi jauh lebih mudah, terutama di Mac. Kini dependensi sistemnya jauh lebih sedikit
Jika pemasangan masih sulit di platform tertentu, mohon kirimkan detailnya di issue. Singkatnya, saya berharap CIEL membuat perjalanan CL Anda lebih mudah dan mulus. Anda tidak akan bisa membayangkan berapa lama waktu yang saya butuhkan untuk memahami beberapa hal. Sekarang semuanya sudah siap dan dikemas di sini :-]