- CIEL, %100 Common Lisp tabanlı genişletilmiş bir Lisp olup, temel araçları birlikte sunan “batteries included” yapılandırmasını öne çıkarır
- Betikler
#!/usr/bin/env ciel shebang’iyle çalıştırılır; Lisp kodunda JSON okuma ve HTTP GET doğrudan kullanılabilir
- Örnekte
http:get ile çağrı yapılır, json:read-json ile yanıt okunur ve print ile çıktılanır
./myscript.lisp çalıştırma örneği, CIEL betiklerinin normal çalıştırılabilir dosyalar gibi ele alındığı akışı gösterir
- Web belgesinin kalan kısmı JavaScript gerektirir; JavaScript olmadan görüntülemek için GitHub deposuna bakmak gerekir
CIEL’in temel niteliği
- CIEL, “genişletilmiş Lisp” olarak tanıtılan bir dildir
-
Common Lisp tabanlı
- %100 Common Lisp tabanlıdır
- Temel araçları içeren batteries included yapılandırmasını ayırt edici özellik olarak öne çıkarır
Betik çalıştırma örneği
- Örnek kod,
ciel çalıştırıcısını shebang olarak belirtir
#!/usr/bin/env ciel
(print
(json:read-json
(http:get "https://fakestoreapi.com/products?limit=5")))
http:get ile HTTP isteği gönderir, json:read-json ile yanıt JSON’unu okur ve ardından print ile çıktılar
- Çalıştırma komutu şöyledir
$ ./myscript.lisp
Belgelere ve depoya erişim
- Proje bağlantısı GitHub üzerinde sunulmuştur
- Web belgesinin kalan kısmı JavaScript gerektirir; JavaScript kullanılamıyorsa GitHub deposuna bakılması gerektiğine dair bir yönlendirme vardır
1 yorum
Hacker News yorumları
Standart olarak iyi belgelenmiş bileşenlerin çekirdek dilin parçasıymış gibi hemen kullanılabilir şekilde paketlenmesi ve üstüne havalı bir isim verilmesi gerçekten önemli
Hoşuma gitti; yeni bir standart hedefi de olabilir gibi görünüyor. Şimdi tek gereken iyi bir maskot ya da logo
Yaklaşımı beğendim. “Bir Lisp daha” bekliyordum; o havalı olurdu ama hemen kullanmak istemezdim
Var olanı genişletip iyileştirmek, sıfırdan başlamaktan daha zor ve daha az eğlenceli olabilir ama çok daha değerli. Zaten Common Lisp kullanıyorum ve bu, özellikle yeni başlayanlar ya da küçük projelerde o kendine özgü tuhaflıkları biraz azaltıyor gibi
Hızlı ve kullanışlı Lisp konusu ne zaman açılsa Joker’dan (https://github.com/candid82/joker) bahsetmek istiyorum
Go ile uygulanmış Clojure sözdizimi; projeyle bağlantım yok ama gerçekten harika olduğunu düşünüyorum. CIEL örneğini Joker ile yazarsanız
(prn {:a 1 :b 2 :c 3})olur; indirme·kurulum·çalıştırma için Gist: https://gist.github.com/lsh-0/f7df23777ef35a8cc3d85e1dcbf0eb...Tüm betiğin çalışması 2,1 saniye, örneğin kendisinin çalışması ise 0,007 saniye sürdü
Babashka’nın (https://babashka.org/) seçtiği yaklaşımın artık Common Lisp dünyasında da ortaya çıktığını görmek sevindirici
Safari’de bakınca da aynı Javascript uyarısı çıkıyor. Hiçbir eklenti açık değildi
Chrome’da kontrol ettim; bunun dışında tam kullanmak isteyeceğim biçimde görünüyor. CL standart kütüphanesi zaten biraz aşırı yüklenmiş gibi hissettiriyor ama “piller dahil” bir şeye gidilecekse Alexandria, Bordeaux gibi şeyler eksikti; bu tercihi beğendim. Biraz parçalı CL ekosistemine “iyi uygulama” ya da standartlaşma hissi veriyor
Harika. Ben kişisel olarak Alexandria, Serapeum, Dexador, Bordeaux Threads ve JSON ile ilgili araçları içeren bir imaj kullanıyorum; başkalarının da benzer bir hedef için kullandığı bir şeyin olması kullanışlı olabilir
Fazla tartışılıp az ilerleyen CDR önerilerinden ya da ondan önceki CL21’den daha başarılı olma ihtimali yüksek görünüyor. Varsayılan olarak ayarlanmış çok sayıda reader macro olup olmadığını da merak ediyorum
Çünkü varsayılan olarak readtable’a dokunmak istemiyorum. Editör REPL’inde shell passthrough’u açma yolu için aşağıya bakın
1: https://github.com/Neronus/Clesh
ncurses ve SDL core’unu derleyen bir wrapper gelirse, belki bir gün lem CIEL üzerinde doğrudan çalışır ve gerçek bir Lisp ortamı ortaya çıkar diye düşünüyorum
https://news.ycombinator.com/item?id=41357409
Ron Garret’ın 2010’da yaptığı başka bir Lisp olan Ciel’den (https://pldb.io/concepts/ciel.html) farklı görünüyor. Kendisi aynı zamanda roket bilimci (https://flownet.com/ron/)
Kolayca binary’ye derlenebiliyor mu? Standart CL yolunu kullanmak yeterli gibi görünüyor
CIEL custom REPLiçinde!lsgibi shell passthrough olması güzel bir özellikYazarı henüz “hazır” ya da “yeterince iyi” görmüyor ama epey ilerlemiş durumda. POSIX shell olan https://github.com/bradleyjensen/shcl de var. Her zamanki gibi daha uzun listeyi https://github.com/CodyReichert/awesome-cl#shells-shells-int... adresinde görebilirsiniz
ciel buildkomutunu eklemek istiyorumPython’ın REPL uygulamasında sıra dışı taraf olup olmadığını merak ediyorum. REPL olarak yalnızca Python ve e-lisp’e aşinayım
Ctrl+Zile yetinmeyen ne var?SBCL’ye kütüphaneler eklenmiş hali gibi görünüyor. Yazarı vindarel HN’de
Yeni bir projeye başlarken, dış dünyayla etkileşmek gerektiğinde, Python’ın karmaşıklığı olmadan küçük bir şey yazıp sunucuya koymak istediğimde çok zaman kazandırıyor. Django’nun yerini almak elbette zor ama CRUD işleri için otomatik bir DB dashboard’u da başlattım; henüz herkese açık değil ama üzerinde çalışılıyor
Müşteri işlerine CL’yi kademeli olarak entegre ettim ve CIEL bu amaç için bir başka araç. CL’yi gerçekten kullanmak için. Projelerimin CL’nin süper güçlerine mutlaka ihtiyacı yok ama geliştirme·dağıtım·izleme tarafında o gücü istiyorum
Bugün birkaç sorunu düzelttim ve v0.2’yi yayımladım: https://github.com/ciel-lang/CIEL/releases/tag/v02 Esas nokta, CIEL kurulumunun özellikle Mac’te çok daha kolay olması gerektiği. Artık sistem bağımlılıkları çok daha az
Belirli platformlarda kurulum hâlâ zorsa, issue’ya ayrıntıları göndermenizi isterim. Özetle, CIEL’in CL yolculuğunuzu daha kolay ve pürüzsüz hale getirmesini umuyorum. Bazı şeyleri çözmenin ne kadar zaman aldığını hayal bile edemezsiniz. Artık burada hazır ve paketlenmiş durumda :-)