1 पॉइंट द्वारा GN⁺ 2024-08-31 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • CIEL 100% Common Lisp आधारित एक विस्तारित Lisp है, जो बुनियादी टूल्स के साथ “batteries included” कॉन्फ़िगरेशन प्रदान करता है
  • स्क्रिप्ट #!/usr/bin/env ciel shebang के साथ चलती है, और Lisp कोड में सीधे JSON पढ़ना तथा HTTP GET इस्तेमाल किया जा सकता है
  • उदाहरण http:get से https://fakestoreapi.com/products?limit=5 को कॉल करता है, json:read-json से response पढ़ता है, और print से आउटपुट देता है
  • ./myscript.lisp चलाने का उदाहरण दिखाता है कि CIEL स्क्रिप्ट को सामान्य executable फ़ाइल की तरह कैसे इस्तेमाल किया जा सकता है
  • वेब दस्तावेज़ का बाकी हिस्सा देखने के लिए JavaScript आवश्यक है, और JavaScript के बिना देखने के लिए GitHub repository देखनी होगी

CIEL की बुनियादी प्रकृति

  • CIEL को “विस्तारित Lisp” के रूप में पेश किया गया है
  • Common Lisp आधारित

    • यह 100% Common Lisp आधारित है
    • इसकी खासियत बुनियादी टूल्स सहित batteries included कॉन्फ़िगरेशन है

स्क्रिप्ट चलाने का उदाहरण

  • उदाहरण कोड में shebang के रूप में ciel executable निर्दिष्ट है
#!/usr/bin/env ciel

(print
  (json:read-json
    (http:get "https://fakestoreapi.com/products?limit=5";)))
  • http:get से HTTP request भेजी जाती है, json:read-json से response JSON पढ़ा जाता है, और फिर print से आउटपुट किया जाता है
  • चलाने का कमांड इस प्रकार है
$ ./myscript.lisp

दस्तावेज़ और repository तक पहुँच

  • प्रोजेक्ट लिंक GitHub पर उपलब्ध है
  • वेब दस्तावेज़ का बाकी हिस्सा देखने के लिए JavaScript चाहिए, और यदि JavaScript उपलब्ध न हो तो GitHub repository देखने का निर्देश दिया गया है

1 टिप्पणियां

 
GN⁺ 2024-08-31
Hacker News की राय
  • standard के तौर पर अच्छी तरह documented components का इस तरह bundled होना कि वे core language का हिस्सा जैसे तुरंत इस्तेमाल किए जा सकें, और ऊपर से एक बढ़िया नाम मिलना, सच में बहुत अहम है
    मुझे पसंद आया, और यह नया standard target भी बन सकता है। अब बस एक अच्छा mascot या logo चाहिए

    • नाम देखकर लगता है कि यह छोटा seal होना चाहिए
    • documents कहाँ हैं, समझ नहीं आया। सच कहूँ तो यहाँ बहुत ज़्यादा नहीं दिखता, और मैं इसे documentation की बजाय README कहूँगा
  • approach पसंद आया। मैंने “एक और Lisp” की उम्मीद की थी, जो cool तो होता लेकिन शायद तुरंत इस्तेमाल करने का मन नहीं करता
    जो पहले से है उसे expand और improve करना, नए सिरे से शुरू करने से ज्यादा मुश्किल और कम मज़ेदार हो सकता है, लेकिन उसकी value कहीं ज्यादा है। मैं पहले से Common Lisp इस्तेमाल करता हूँ, और यह खासकर beginners या छोटे projects में उसकी अजीबोगरीब बातों को थोड़ा कम करता लगता है

  • जब भी तेज़ और सुविधाजनक Lisp की बात आती है, मैं Joker(https://github.com/candid82/joker) का ज़िक्र करना चाहता हूँ
    यह Go में implement किया गया Clojure syntax है, और मैं इससे जुड़ा नहीं हूँ, लेकिन मुझे यह वाकई शानदार लगता है। CIEL example को Joker में लिखें तो (prn {:a 1 :b 2 :c 3}) होगा, और download·install·run के लिए Gist है https://gist.github.com/lsh-0/f7df23777ef35a8cc3d85e1dcbf0eb...
    पूरा script चलने में 2.1 सेकंड लगे, और example execution में खुद 0.007 सेकंड लगे

  • Babashka(https://babashka.org/) ने जो approach चुना था, वैसा अब Common Lisp world में भी दिख रहा है, यह देखकर अच्छा लगा

  • Safari में देखने पर भी वही Javascript warning आती है। कोई extension चालू नहीं था
    Chrome में चेक किया, तो बाकी सब कुछ ठीक वैसा दिखता है जैसा मैं इस्तेमाल करना चाहूँगा। CL standard library पहले से थोड़ी overloaded लगती है, लेकिन “batteries included” की तरफ जाना है तो Alexandria, Bordeaux जैसी चीज़ें गायब थीं, इसलिए यह choice मुझे पसंद है। थोड़ा fragmented CL ecosystem में “best practices” या standardization जैसा एहसास देती है

  • शानदार। निजी तौर पर मैं Alexandria, Serapeum, Dexador, Bordeaux Threads और JSON-related tools वाली image इस्तेमाल करता हूँ, लेकिन अगर दूसरों के लिए भी similar target वाली कोई चीज़ हो तो सुविधाजनक हो सकता है
    बहुत ज़्यादा चर्चा में उलझे रहे CDR proposals या उससे पहले के CL21 की तुलना में इसकी success की संभावना ज्यादा लगती है। यह भी जानना चाहूँगा कि क्या default में बहुत सारे reader macros set हैं

    • terminal REPL में सिर्फ एक enabled है, और CIEL को सामान्य Lisp library की तरह इस्तेमाल करने पर कुछ भी enabled नहीं होता
      क्योंकि default में readtable को छूना नहीं चाहते। editor REPL में shell passthrough enable करने का तरीका नीचे देखें
    • code को जल्दी से देखकर लगता है कि REPL से shell में निकलने के लिए default तौर पर सिर्फ clesh[1] active है
      1: https://github.com/Neronus/Clesh
  • अगर ncurses और SDL cores build करने वाला wrapper आ जाए, तो शायद किसी दिन lem सीधे CIEL पर चल सके और असली Lisp environment निकल आए
    https://news.ycombinator.com/item?id=41357409

  • Ron Garret ने 2010 में जो एक और Lisp Ciel(https://pldb.io/concepts/ciel.html) बनाया था, यह उससे अलग लगता है। वे rocket scientist भी हैं(https://flownet.com/ron/)

  • क्या इसे binary में आसानी से compile किया जा सकता है? लगता तो है कि standard CL तरीका इस्तेमाल किया जा सकता है
    CIEL custom REPL में !ls जैसा shell passthrough होना एक cool feature है

    • काफी सुविधाजनक है। अगर terminal में shell code और Lisp code मिलाकर इस्तेमाल करने वाला advanced Lisp shell चाहिए, तो lish देखें: https://github.com/nibbula/lish/
      author अभी इसे “ready” या “good enough” नहीं मानते, लेकिन यह काफी आगे बढ़ चुका है। POSIX shell https://github.com/bradleyjensen/shcl भी है। हमेशा की तरह और लंबी list https://github.com/CodyReichert/awesome-cl#shells-shells-int... पर मिल सकती है
    • अभी CIEL को library की तरह इस्तेमाल करके standard तरीके से build किया जाता है
      ciel build command जोड़ना चाहता हूँ
    • अगर मैं गलत हूँ तो माफ़ करें, लेकिन मुझे लगा था कि यह काफी standard feature है। IPython kernel भी बिल्कुल वही format इस्तेमाल करता है, और अगर पूरा shell चाहिए तो xonsh भी इस्तेमाल कर सकते हैं
      सोच रहा हूँ कि क्या Python REPL implementation के मामले में unusual है। REPL में मुझे सिर्फ Python और e-lisp की आदत है
    • Ctrl+Z में क्या कमी है?
  • यह SBCL में libraries जोड़ने जैसा दिखता है। author vindarel HN पर हैं

    • नमस्ते o/ उम्मीद है CIEL का goal ठीक से समझाया गया होगा। मैं इसे रोज़ इस्तेमाल करता हूँ, editor के अंदर core image इस्तेमाल करता हूँ, और अपने products भी इसी से distribute करता हूँ
      नया project शुरू करते समय, बाहरी दुनिया से interact करना हो, या Python की complexity के बिना कोई छोटी चीज़ लिखकर server पर डालनी हो, तो यह काफी समय बचाता है। Django को replace करना ज़ाहिर है मुश्किल है, लेकिन CRUD कामों के लिए automatic DB dashboard भी शुरू किया है और अभी public नहीं है, पर काम चल रहा है
      client work में मैंने CL को धीरे-धीरे integrate किया है, और CIEL उस उद्देश्य के लिए एक और tool है। CL को सचमुच इस्तेमाल करने के लिए। मेरे projects को CL की superpowers की ज़रूरत अनिवार्य रूप से नहीं है, लेकिन development·deployment·monitoring के लिए मैं उसकी ताकत चाहता हूँ
      आज कुछ issues ठीक किए और v0.2 release किया: https://github.com/ciel-lang/CIEL/releases/tag/v02 मुख्य बात यह है कि CIEL install करना, खासकर Mac पर, अब काफी आसान होना चाहिए। अब system dependencies बहुत कम हो गई हैं
      अगर अभी भी किसी खास platform पर install करना मुश्किल हो, तो issue में details भेजें। संक्षेप में, उम्मीद है कि CIEL आपकी CL journey को आसान और smooth बनाएगा। आप अंदाज़ा भी नहीं लगा सकते कि कुछ चीज़ें पता लगाने में कितना समय लगा। अब ये यहाँ ready और packaged हैं :-]