3 पॉइंट द्वारा GN⁺ 2025-05-27 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
ilotoki0804 2025-05-30

सोच रहा हूँ कि GeekNews किस तकनीक पर चलता होगा lol

 
GN⁺ 2025-05-27
Hacker News टिप्पणियाँ
  • Hacker News को "Worse is better" वाली फिलॉसफी का social engineering पर लागू होने वाला एक बेहतरीन उदाहरण माना गया; 90 के दशक के अंत में Slashdot में कहीं ज़्यादा विविध features और समृद्धि थी, लेकिन HN की सफलता का कारण उसका बेहद केंद्रित focus और मजबूत moderation system बताया गया

    • अब आखिरकार Lisp सिस्टम भी "Worse is better" का प्रतिनिधि बन गया है, इस पर मज़ाकिया प्रशंसा
    • जितना संभव हो उतनी न्यूनतम तकनीक पर platform चलाना, और मानवीय हस्तक्षेप पर निर्भर HN संचालन की विडंबना पर ध्यान; इस सहज समझ का उल्लेख कि 'ज़्यादा तकनीक हमेशा सबके लिए फ़ायदेमंद नहीं होती'
    • HN में features कम हैं, लेकिन क्या सच में हमें और ज़्यादा features चाहिए—इस पर सवाल; कम features की वजह से इसे उलटे minimalist कहा गया, जिससे 'less is more' याद आता है
    • यह बात बहुत मददगार मानी गई कि HN को मुनाफ़ा कमाने की ज़रूरत नहीं है
    • Antoine de Saint-Exupéry के इस प्रसिद्ध कथन का उल्लेख कि पूर्णता तब नहीं मिलती जब जोड़ने के लिए कुछ नया न बचे, बल्कि तब मिलती है जब हटाने के लिए कुछ भी न बचे
  • Hacker News को पूरी तरह Common Lisp में फिर से नहीं लिखा गया, बल्कि Arc Runtime को Common Lisp में दोबारा implement किया गया है

    • इसे ही Lisp की असली ताकत बताकर सराहा गया
  • यह पृष्ठभूमि साझा की गई कि Arc, Racket के ऊपर implement किया गया था, और मूल रूप से MzScheme (पहले PLT Scheme का core, बाद में नाम बदलकर Racket) से शुरू होकर kogir नाम के developer के योगदान से Racket पर लाया गया

    • यह राय भी आई कि MzScheme, PLT Scheme (आज का Racket) का मुख्य non-GUI हिस्सा था, और pg की पुरानी mailing list posts के आधार पर हमेशा यह जिज्ञासा रही कि Arc का विकास पहले Scheme48 पर शुरू हुआ था और फिर PLT पर क्यों आया
    • मज़ेदार अंदाज़ में पूछा गया कि क्या हम सभी Lisp implementations का पूरा चक्कर लगा रहे हैं, जैसे 'Theseus के जहाज़' का कोई अजीब संस्करण हो
    • यह भी सवाल उठा कि क्या MzScheme, PLT Scheme और Racket असल में लगभग एक ही चीज़ नहीं हैं
  • यह लगा कि Dang codebase में भी योगदान देते हैं, और उनके अलावा भी HN के लिए लंबे समय से समर्पित लोग रहे होंगे; HN community को अपने लिए सबसे लंबे समय तक टिके और सबसे सुखद internet community अनुभव के रूप में याद किया गया, और सिर्फ़ एक participant होने के बावजूद Dang की किसी तरह मदद करने या उन्हें coffee खरीदकर देने का मन जताया गया

    • साथ ही यह याद दिलाया गया कि Hacker News (पहले Startup News) व्यावहारिक रूप से Y Combinator, यानी दुनिया की सबसे सफल investment firms में से एक, के marketing विभाग की तरह भी काम करता है; और HN के संस्थापक व मूल लेखक Paul Graham अब कम से कम अरबपति हैं, फिर भी platform अब भी अपनी वित्तीय आत्मनिर्भरता बनाए रखने और donations लेने की कोशिश करता है
  • Clarc के बहुत तेज़ होने और बेहतर multicore support होने की बात पढ़कर इस पर हैरानी जताई गई कि HN पहले पूरा single-core पर चलता था

    • यह भी कहा गया कि modern CPU इतने तेज़ हैं कि 4chan भी 10 साल पुराने PHP spaghetti code की 10,000 lines और सिर्फ़ 1 server से 40 लाख users संभाल चुका था; अगर code quality की न्यूनतम सफ़ाई, profiling और optimization हो, तो CPU cores के बहुत छोटे हिस्से से भी भारी traffic संभाला जा सकता है, और असली bottleneck ज़्यादातर disk और network I/O होते हैं; HN सिर्फ़ text serve करता है, इसलिए यह अपेक्षाकृत आसान है
    • यह चुटीली टिप्पणी भी आई कि जब भी कोई developer समझता है कि modern software कितना फूला हुआ और धीमा हो गया है, एक फ़रिश्ते को पंख मिल जाते हैं
    • इस बात पर झटका व्यक्त किया गया कि HN सचमुच एक process, एक core, और एक server पर चलता था; संबंधित HN चर्चा का लिंक भी जोड़ा गया
    • यह व्यावहारिक सलाह दी गई कि modern CPU का सही उपयोग किया जाए तो scale-out से पहले भी बहुत सारा throughput संभाला जा सकता है
    • पुरानी चर्चाओं के कई लिंक भी दिए गए: लिंक1, लिंक2, लिंक3, लिंक4
  • open source Arc code से बनी website चलाने वाले एक व्यक्ति ने Clarc इस्तेमाल करने की ज़ोरदार इच्छा जताई

    • जवाब में पूछा गया कि वह site कौन-सी है
  • sbcl(Steel Bank Common Lisp) को सचमुच production-ready बताकर सराहा गया; यह अनुमान लगाया गया कि शायद Racket पक्ष ने Arc के production use को गंभीरता से नहीं लिया, इसलिए bugs ठीक नहीं किए; यह भी कहा गया कि Racket को production में इस्तेमाल करने वाले दूसरे projects के बारे में सुना नहीं गया, और Armed Bear Common Lisp का लिंक साझा करते हुए Armed Bear के लिए लगाव जताया गया, खासकर उसके मजबूत JVM library ecosystem के कारण

    • इसके जवाब में अनुभव साझा किया गया कि Racket community हमेशा बहुत मददगार रही है और उन्होंने मांगे गए सभी bugs अच्छी तरह ठीक किए
  • "HN runs on top of SBCL since a few months" इस वाक्य की भाषाई अटपटाहट की ओर इशारा किया गया, और सही अंग्रेज़ी के रूप में "HN has been running on top of SBCL for a few months now." सुझाया गया

    • समझाया गया कि "since" किसी समय-बिंदु के साथ सही बैठता है, जबकि "a few months" एक अवधि है, इसलिए वाक्य अटपटा लगता है; "since a few months ago" या "as of a few months ago" ज़्यादा स्वाभाविक होंगे; साथ ही यह भी विश्लेषण किया गया कि पहले paragraph में tense का मिश्रण इसे और उभार देता है
  • यह जिज्ञासा जताई गई कि क्या Paul Graham या Robert Morris अब भी development में शामिल हैं; पूरे लेख को देखने पर भी इसका ज़िक्र नहीं मिला, और यह देखने की रुचि व्यक्त की गई कि CL(Common Lisp) में Arc क्या अतिरिक्त चीज़ें जोड़ता है; arclanguage.org का लिंक भी दिया गया

    • जवाब मिला कि दोनों developers बहुत पहले ही project छोड़ चुके हैं
  • Racket की तुलना में Common Lisp को कहीं ज़्यादा practical बताया गया, और SBCL को लगभग जादुई अनुभव कहा गया