2 पॉइंट द्वारा GN⁺ 2025-02-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Jonathan Blow के तर्क का सार

    • पीढ़ियों के बीच जानकारी का हस्तांतरण कमजोर पड़ रहा है।
    • सिद्धांत की तुलना में व्यवहार तकनीक को बनाए रखने के लिए अधिक महत्वपूर्ण है।
    • software दुनिया को चला रहा है।
    • abstraction low-level programming के प्रति अज्ञानता को बढ़ावा देती है।
    • यदि low-level ज्ञान भुला दिया गया, तो महत्वपूर्ण software को maintain नहीं किया जा सकेगा और सभ्यता ढह जाएगी।
  • आलोचना और प्रतिवाद

    • Blow के तर्क में कई त्रुटियाँ और गलतफ़हमियाँ हैं।
    • जानकारी की सत्यता महत्वपूर्ण है, और Blow की जानकारी कई मामलों में गलत है।
    • "Five nines" (99.999% uptime) मीट्रिक आज भी उपयोग में है।
    • मजबूत software अब भी मौजूद है, और तकनीकी प्रगति जारी है।
    • यह दावा कि abstraction क्षमता-हानि की ओर ले जाती है, बढ़ा-चढ़ाकर कहा गया है।
  • तकनीकी प्रगति और abstraction

    • कई programmer memory management और pointer को संभालना नहीं चाहते।
    • C और assembly code लिखने वाले लोग आज भी बहुत हैं।
    • Rust जैसी नई भाषाएँ मजबूती पर ज़ोर देती हैं।
    • abstraction नई तकनीकों को आगे बढ़ाने में योगदान देती है।
  • Facebook की उत्पादकता पर बहस

    • Facebook का असली product ad delivery platform है।
    • कई programmer ad system को बेहतर बनाने में योगदान दे रहे हैं।
  • अतीत और वर्तमान की तुलना

    • अतीत का software development environment और आज का समय काफ़ी अलग हैं।
    • आधुनिक computer पहले की तुलना में कहीं अधिक robust हैं।
    • users की अपेक्षाएँ बढ़ने के साथ software की जटिलता भी बढ़ी है।
  • abstraction और ज्ञान-हानि

    • abstraction ज्ञान-हानि को तेज़ कर सकती है।
    • लेकिन abstraction कई लोगों को रचनात्मकता दिखाने का अवसर भी देती है।
    • महत्वपूर्ण बात यह है कि उन तकनीकी आधारों को बनाए रखा जाए जिनसे महत्वपूर्ण systems को maintain किया जा सके।
  • निष्कर्ष

    • Blow का तर्क कुछ हद तक सही है, लेकिन कई हिस्सों में बढ़ा-चढ़ाकर कहा गया है और गलतफ़हमी भी है।
    • software complexity और abstraction ऐसे मुद्दे हैं जिनका समाधान संभव है।
    • digital दुनिया की बड़ी समस्या privacy और freedom है।

1 टिप्पणियां

 
GN⁺ 2025-02-10
Hacker News राय
  • मैं Montana State में systems की कक्षाएँ पढ़ाता हूँ, और अक्सर छात्र कक्षा शुरू करते समय यह नहीं समझते कि file system क्या होता है

    • मैं Blow की राय से आंशिक रूप से असहमत हूँ, लेकिन मेरा मानना है कि हाई स्कूल से लेकर तकनीकी छात्रों तक के लिए NAND-to-Tetris शैली की शिक्षा की ज़रूरत है
    • Little Man Computer और एक साधारण MIPS emulator जैसे "पुराने" मॉडल का उपयोग करके छात्रों को तकनीक की उत्पत्ति समझने में मदद मिलती है
    • आधुनिक 64-bit architecture की किताबें देखकर हँसी आती है
    • तकनीक को उसके मूल स्तर पर जोड़कर समझाना एक कठिन समस्या है
  • मैं आपकी राय से सहमत हूँ। मैंने Blow का lecture देखा है और मुझे लगता है कि आलोचना महत्वपूर्ण है

    • जब Blow ने कहा कि "स्क्रीन पर pixel नहीं बना सकते", तब मुझे लगा कि वह सही है
    • मैं एक मध्यम आकार की game company में game engine programmer हूँ, और graphics code पर काम करने वाले लोगों को hire करना बहुत कठिन होता जा रहा है
    • DX12, पिछली पीढ़ी (DX11) की तुलना में programmers से बहुत अधिक अपेक्षा करता है, और Microsoft भी मानता है कि पहले के graphics API अनुभव के बिना DX12 सीखना बहुत कठिन है
    • ये API उन developers के लिए हैं जो graphics card की सीमाओं को पार करना और low-level optimization लागू करना चाहते हैं, लेकिन अब ये industry standard बन चुके हैं, इसलिए बिना अनुभव वाले लोगों को सिखाना मुश्किल है
    • अगर बदलाव नहीं हुआ, तो hiring pool लगातार छोटा होता जाएगा
  • जब कोई पुराना web developer abstraction की शिकायत करता है, तो उसका निशाना React developer होता है

    • जब Python developer abstraction की शिकायत करता है, तो उसका निशाना पुराने web developer होते हैं
    • जब C++ application developer abstraction की शिकायत करता है, तो उसका निशाना Python developer होता है
    • जब firmware developer abstraction की शिकायत करता है, तो उसका निशाना application developer होता है
    • जब electrical engineer abstraction की शिकायत करता है, तो उसका निशाना firmware developer होता है
    • अपनी व्यक्तिगत जानकारी के आधार पर "अत्यधिक abstraction" की सीमा तय करके उसके बाद की हर चीज़ को "सभ्यता का विनाश" कहना एक अनोखा नज़रिया है
  • server पर JavaScript और React जैसी चीज़ों ने web को software development की अव्यवस्था बना दिया है

    • बहुत से बच्चों को यह नहीं पता कि HTML browser में render होता है, और वे सोचते हैं कि React ही browser में render होता है
    • Vercel के CEO का React को development का Linux kernel मानना मूर्खतापूर्ण है
  • Blow अक्सर development के बारे में बहुत अच्छे points उठाता है, लेकिन कई बार मूल बात चूक जाता है

    • उसने शानदार उपलब्धियाँ हासिल की हैं और उसके पास सुनने लायक ideas हैं, लेकिन कभी-कभी वह बेतुकी बातें भी करता है
    • सभ्यता के पतन वाली बात मुझे उन्हीं बेतुकी बातों में से एक लगती है, और OP द्वारा दिए गए rebuttal की मैं सराहना करता हूँ
    • Casey Muratori के बारे में कुछ नहीं कहूँगा; वह Blow जैसा बनने की कोशिश करता है, लेकिन अच्छी बातों वाला हिस्सा भी ठीक से नहीं कर पाता
  • आधुनिक software environment में बहुत सी समस्याएँ हैं, और मुझे लगता है कि अत्यधिक abstraction उनमें से एक है

    • लेकिन इसका उल्टा छोर भी बुरा है, और लोग अतीत को जरूरत से ज़्यादा romanticize करते हैं
    • सिर्फ crashes और reboot की समस्याएँ ही नहीं थीं, compatibility पर केंद्रित systems में भी inconsistency की समस्याएँ थीं
    • सबसे कम भरोसेमंद आधुनिक system (Windows 11) पर भी मेरा computer, 2010 से पहले के किसी भी computer से ज़्यादा reliable है
    • यह Windows 95 के लिए लिखा गया software भी चला सकता है
  • हर simplification abstraction नहीं होती। हर abstraction simplification नहीं होती

    • simplification की तलाश ही आमतौर पर abstraction को प्रेरित करती है
    • मुझे नहीं लगता कि abstraction software या सभ्यता को मारती है, लेकिन खराब abstraction flexibility और accessibility को नुकसान पहुँचाती है
    • लगभग हर language में syntax sugar इसका उदाहरण हो सकती है
    • समस्या यह नहीं कि किसी खास तत्व की वजह से लोग ज़्यादा गलतियाँ करते हैं, बल्कि यह है कि जटिल समस्याओं को हल करने के लिए tools का सही इस्तेमाल करना कठिन होता है
  • खराब abstraction बहुत हैं। तकनीक के "speed के धर्म" और अहंकार की वजह से चीज़ें अक्सर पहली कोशिश पर ही वहीं रुक जाती हैं

    • जब कोई चीज़ किसी लोकप्रिय project का हिस्सा बन जाती है, तो दूसरे लोग उसकी नकल करते हैं
    • 10-20 साल तक ऐसा दोहराने पर बहुत बड़ी अव्यवस्था पैदा होती है
    • मुझे Jonathan Blow का lecture पसंद है और मैं हर साल एक बार उसे फिर से देखता हूँ
    • वह अक्सर ऐसी बातें कहता है जिनसे असहमति करना मुश्किल है, लेकिन वह जानता है कि बहुत से developer अपना सर्वश्रेष्ठ नहीं दे रहे हैं
  • लेखक नई पीढ़ी से है, इसलिए वह Blow की बात पूरी तरह नहीं समझता

    • अगर आप कहें कि Figma design की दुनिया को बर्बाद कर रहा है, तो युवा designer सोचेंगे कि सब कुछ ठीक है
    • वे उस माहौल में बड़े नहीं हुए, इसलिए उनके लिए संस्कृति और अनुभव के समानांतर पहलुओं को सीखने की संभावना कम है
  • मैं इस दावे से असहमत हूँ कि "अगर हम low-level चीज़ें भूल गए तो सभ्यता ढह जाएगी"

    • high-level processes को low-level systems से model करने में बहुत अधिक जटिलता होती है
    • जटिलता ही समस्या है, और हमें जटिलता को न्यूनतम रखना चाहिए तथा accidental complexity से बचना चाहिए