- Hacker News पहले Arc नाम की एक Lisp परिवार की भाषा में इम्प्लीमेंट किया गया था, लेकिन पिछले कुछ महीनों में इसे SBCL(Steel Bank Common Lisp) पर माइग्रेट किया गया है
- इस बदलाव का मुख्य उद्देश्य performance में सुधार और multi-core support की संभावना सुनिश्चित करना है
- Arc-to-JS converter Lilt और Arc-to-Common Lisp converter Clarc के विकास से इसकी संरचना और अधिक व्यवस्थित हुई है
- Clarc का source code public करना अपेक्षाकृत आसान है, लेकिन पूरे HN codebase को security कारणों से public करना कठिन है
- नई संरचना के साथ HN का smooth transition हुआ, जिससे user experience बेहतर हुआ
अवलोकन
- Hacker News मूल रूप से Paul Graham द्वारा बनाई गई Arc नाम की Lisp परिवार की भाषा में विकसित किया गया था
- Arc को Racket के ऊपर इम्प्लीमेंट किया गया था, लेकिन पिछले कुछ महीनों में इसे SBCL(Steel Bank Common Lisp) पर स्थानांतरित किया गया
- इसका कारण performance improvement था
performance और फीचर बदलाव
- pagination हटने जैसी चीज़ों से, वास्तविक उपयोग के नज़रिये से performance improvement की पुष्टि हुई है
- पहले लंबे comment threads में paging की ज़रूरत पड़ती थी, लेकिन अब वे एक बार में पूरी तरह load हो जाते हैं
- यह बदलाव Clarc के अपनाने से संभव हुआ
- Clarc, multi-core environment में HN को सुचारु रूप से चलाने में मदद करता है
- Clarc का development कई वर्षों से चल रहा था और अब हाल में अपने अंतिम चरण के करीब पहुँचा है
implementation तरीका और संरचना
- Arc को JS में बदलने वाला Lilt, और Arc को Common Lisp में बदलने वाला Clarc मौजूद है
- मौजूदा Arc implementation की निचली संरचना को redesign करके Arc को कई चरणों में विकसित किया गया
- arc0 system languages (Racket, JS, CL) में लिखा गया है
- arc1, arc0 के ऊपर, और arc2, arc1 के ऊपर लिखा गया है
- ऊपरी स्तर (arc2) पर पूरी functionality इम्प्लीमेंट की गई है, जबकि निचले स्तरों को न्यूनतम रखा गया है
- इस संरचना की वजह से अलग-अलग runtimes पर Arc को reimplement करना आसान हो गया है
source code public करने से जुड़े मुद्दे
- Clarc (Arc का Common Lisp implementation) को open source के रूप में public करना अपेक्षाकृत आसान है
- मौजूदा Arc release को Clarc पर port करके यह संभव है
- शुरुआती version का HN sample app पहले से शामिल है, इसलिए इसमें HN या YC-specific हिस्से नहीं हैं
- लेकिन पूरा HN codebase दुरुपयोग रोकने के लिए कई security mechanisms के साथ बना हुआ है
- code public होने पर इन हिस्सों के निष्प्रभावी होने का जोखिम है
- security से जुड़े हिस्सों को अलग करना एक बड़ा बोझ है
2 टिप्पणियां
सोच रहा हूँ कि GeekNews किस तकनीक पर चलता होगा lol
Hacker News टिप्पणियाँ
Hacker News को "Worse is better" वाली फिलॉसफी का social engineering पर लागू होने वाला एक बेहतरीन उदाहरण माना गया; 90 के दशक के अंत में Slashdot में कहीं ज़्यादा विविध features और समृद्धि थी, लेकिन HN की सफलता का कारण उसका बेहद केंद्रित focus और मजबूत moderation system बताया गया
Hacker News को पूरी तरह Common Lisp में फिर से नहीं लिखा गया, बल्कि Arc Runtime को Common Lisp में दोबारा implement किया गया है
यह पृष्ठभूमि साझा की गई कि Arc, Racket के ऊपर implement किया गया था, और मूल रूप से MzScheme (पहले PLT Scheme का core, बाद में नाम बदलकर Racket) से शुरू होकर kogir नाम के developer के योगदान से Racket पर लाया गया
यह लगा कि Dang codebase में भी योगदान देते हैं, और उनके अलावा भी HN के लिए लंबे समय से समर्पित लोग रहे होंगे; HN community को अपने लिए सबसे लंबे समय तक टिके और सबसे सुखद internet community अनुभव के रूप में याद किया गया, और सिर्फ़ एक participant होने के बावजूद Dang की किसी तरह मदद करने या उन्हें coffee खरीदकर देने का मन जताया गया
Clarc के बहुत तेज़ होने और बेहतर multicore support होने की बात पढ़कर इस पर हैरानी जताई गई कि HN पहले पूरा single-core पर चलता था
open source Arc code से बनी website चलाने वाले एक व्यक्ति ने Clarc इस्तेमाल करने की ज़ोरदार इच्छा जताई
sbcl(Steel Bank Common Lisp) को सचमुच production-ready बताकर सराहा गया; यह अनुमान लगाया गया कि शायद Racket पक्ष ने Arc के production use को गंभीरता से नहीं लिया, इसलिए bugs ठीक नहीं किए; यह भी कहा गया कि Racket को production में इस्तेमाल करने वाले दूसरे projects के बारे में सुना नहीं गया, और Armed Bear Common Lisp का लिंक साझा करते हुए Armed Bear के लिए लगाव जताया गया, खासकर उसके मजबूत JVM library ecosystem के कारण
"HN runs on top of SBCL since a few months" इस वाक्य की भाषाई अटपटाहट की ओर इशारा किया गया, और सही अंग्रेज़ी के रूप में "HN has been running on top of SBCL for a few months now." सुझाया गया
यह जिज्ञासा जताई गई कि क्या Paul Graham या Robert Morris अब भी development में शामिल हैं; पूरे लेख को देखने पर भी इसका ज़िक्र नहीं मिला, और यह देखने की रुचि व्यक्त की गई कि CL(Common Lisp) में Arc क्या अतिरिक्त चीज़ें जोड़ता है; arclanguage.org का लिंक भी दिया गया
Racket की तुलना में Common Lisp को कहीं ज़्यादा practical बताया गया, और SBCL को लगभग जादुई अनुभव कहा गया