- फ़्रांस के एक कंप्यूटर स्कूल में 5 साल पढ़ाई की और 20 साल तक फ़्रीलांस डेवलपर के रूप में काम किया
- मुख्य रूप से Ruby on Rails के साथ क्लाइंट प्रोजेक्ट्स पर काम किया
- Common Lisp सीखना शुरू करते हुए ASN.1 parser जनरेट करने वाला server management protocol लिखा
- Common Lisp से C code जनरेट करके SNMP server विकसित किया
- उसके बाद Common Lisp आधारित कई प्रोजेक्ट लिखे:
- cl-unix-cybernetics – GitHub पर सबसे ज़्यादा stars पाने वाला प्रोजेक्ट
- cl-streams और cffi-posix विकसित किए
- cl-facts – एक triple store, जो Common Lisp graph database की तरह काम करता है
- तेज़, atomic transactions, और nested transactions का समर्थन
unwind-protect के साथ संगत
- सिर्फ 3 macros सीखकर इस्तेमाल किया जा सकता है
- European Lisp Symposium (ELS) में प्रस्तुत किया गया
- Common Lisp development पर ध्यान केंद्रित करते हुए क्लाइंट खो दिए, लेकिन Lisp की संभावनाओं पर गहरा विश्वास बना रहा
वर्चुअल मशीन (VM) और कंटेनरों की सीमाएँ
- विशेषज्ञों ने VM और कंटेनरों की समस्याओं की ओर इशारा किया:
- VM अनावश्यक CPU और bandwidth बर्बाद करते हैं
- Linux के cgroups-आधारित containers में remote command execution (RCE) और privilege escalation की कमजोरियाँ मौजूद हैं
- हर साल नई security vulnerabilities मिलती हैं
- OpenBSD को पसंद करते हुए Terraform, Ansible जैसे DevOps tools की समस्याओं से बचा
Common Lisp की सीमाएँ और performance समस्याएँ
- Clojure आदि में GC (garbage collector) के कारण performance समस्याएँ हुईं:
- हज़ारों units संभालने वाले strategy game को विकसित करते समय असफलता के मामले सामने आए
- JVM का GC performance और cost दोनों समस्याएँ लाता है
C की ओर जाने का फैसला
- Common Lisp की performance और portability सीमाओं को पहचाना:
- Linux, OpenBSD, GTK+, GNOME सब C में लिखे गए हैं
- आखिरकार performance और portability समस्याओं को हल करने के लिए C की ओर गए
नई भाषा KC3 का विकास
- libc3 utility library विकसित की → C3 भाषा → नाम बदलकर KC3 किया
- KC3 की विशेषताएँ:
- interpreter (ic3) और compiler (c3c) मौजूद हैं
- UTF-8 buffers से data structures बनाना और उन्हें वापस बदलना
- defensive programming → शुरुआत से bugs को न्यूनतम करना
- कोई security problems नहीं
- enum-tagged union आधारित data type system
KC3 आधारित उपलब्धियाँ
- cl-facts को C89 में port किया:
- Covid-19 अवधि के दौरान development पूरा हुआ
- triples जोड़ना, हटाना, recursive query system, transactions, logging, persistence आदि लागू किए
- algorithmic types के लिए parser और generator लिखे:
- structs, linked lists, maps, hash tables, complex numbers, tuples, code blocks आदि शामिल
- José Valim (Elixir के creator) से बड़ी प्रेरणा मिली
- ikc3 – KC3 evaluation results दिखाने वाला REPL
- kc3_httpd – MVC framework आधारित web server विकसित किया
- मौजूदा blog page भी kc3_httpd से serve की जा रही है
- documentation website लिखी → KC3 के Markdown to HTML converter का उपयोग
निष्कर्ष
- Common Lisp से मिली सीख के आधार पर C की ओर गए
- KC3 ने performance, security, और portability में बेहतरीन परिणाम दिए
- आगे KC3 से जुड़े अतिरिक्त macros और examples देने की योजना है
1 टिप्पणियां
Hacker News राय
मैं असहमत हूँ। बचपन में मैंने VB बहुत इस्तेमाल किया, फिर कॉलेज में Java, C, C++ सीखी, और मुख्यतः C का उपयोग किया। मैं Xfce का मुख्य डेवलपर बना और 5 साल तक उस पर काम किया
मैं उस भावना से पूरी तरह सहमत हूँ। कई सालों से pure C में कुछ बनाने की तीव्र इच्छा महसूस की है
बहुत पहले C से programming शुरू की थी, और आज भी कभी-कभी उस दौर में लौटने का मन करता है
ब्लॉग पोस्ट पढ़ने के बाद मुझे समझ नहीं आया कि लेखक क्या कहना चाहता है
kc3 code example दिया गया था
C मेरी पहली भाषा थी, और मैंने इससे simple console apps और छोटे games बनाए थे
कभी-कभी शौकिया तौर पर C में coding करता हूँ। लेकिन दोहराए जाने वाले काम इतने ज़्यादा हैं कि उबाऊ लगते हैं
C सफल रही क्योंकि यह practical है
मुझे कुछ भी समझ नहीं आया
यह लेख बिना happy ending वाली एक चेतावनी भरी कहानी जैसा लगता है