• सॉफ़्टवेयर डेवलपमेंट की अराजकता को पुल निर्माण की उपमा से समझाने वाला एक निबंध, जिसमें आत्म-व्यंग्य से कहा गया है कि हर programming team पागल लोगों से बनी होती है, और उसी के नतीजों पर बैंकिंग software और इंटरनेट चल रहे हैं
  • परफ़ेक्ट code सिर्फ़ उन फ़ाइलों में मौजूद होता है जिन्हें कोई अकेला व्यक्ति सिर्फ़ एक काम के लिए लिखता है; वास्तविक दुनिया में शुक्रवार को मंगलवार तक 600 चीज़ें बनाने का आदेश मिलता है, और काम ऐसे चलता है जैसे पिघलती बर्फ़ के ढेर पर Picasso को टिकाकर रखा गया हो
  • web developer को हर हफ़्ते एक नई technology सीखनी पड़ती है, साथ ही यह भी देखना पड़ता है कि सैकड़ों पुराने tools टूटे तो नहीं, और expert होने पर भी किसी समस्या की जड़ समझने में 6 घंटे लगना ही गनीमत है
  • इंटरनेट खरबों डॉलर की value के साथ अनौपचारिक सहमतियों और TODO: FIX THIS लिखे 10 साल पुराने code पर टिका है, और अगर सभी system administrator एक साथ lunch पर चले जाएँ तो सभ्यता ढह जाएगी
  • programmer रोज़ 10–15 घंटे ऐसा काम करते हैं जिसके लिए दिमाग़ मूल रूप से बना ही नहीं, और धीरे-धीरे पागल हो रहे हैं; यही उस पेशे की क़ीमत है जिसे उन्होंने 50 पाउंड वज़न उठाने की बजाय चुना

हर programming team पागल लोगों से बनी होती है

  • शारीरिक मेहनत करने वाले दोस्त अक्सर बातचीत की शुरुआत ऐसे करते हैं: “तुम्हारा काम तो आसान है, मैंने Mordor के नीचे ड्राइवर से सुरंग खोदी थी
  • अगर आप मानते हैं कि stress और मानसिक पीड़ा बुरी चीज़ें हैं, तो प्रोग्रामिंग की दुनिया में आपका स्वागत है
  • पुल निर्माण की उपमा: मान लीजिए आप किसी बड़े शहर के bridge project से जुड़ते हैं, और हालत कुछ ऐसी है
    • Mary project leader है, Fred सिर्फ़ लकड़ी का काम जानता है, लेकिन 200 फ़ुट ऊँचाई पर तेज़ धारा के ऊपर बने पुल के walkway की ज़िम्मेदारी उसी के पास है
    • Dave का sweater चोरी हो गया था, इसलिए उसने 15-स्तरीय security check लगा दिए
    • Phil engineer नहीं है, फिर भी railings पर रोक लगाने का नियम लागू कर देता है; किसी को नहीं पता Phil करता क्या है, लेकिन management से उसका कुछ संबंध है, इसलिए कोई कुछ नहीं कहता
    • Sara कई bleeding-edge ("hemorrhaging-edge") paving technologies को एक साथ design में ठूँस देती है
    • Tom और Harry सालों से metric vs imperial units की लड़ाई लड़ रहे हैं, और जिस किसी ने पहले काम किया, उसी की units लागू हो जाती हैं
    • design तो suspension bridge का था, लेकिन किसी को suspension bridge बनाना नहीं आता, इसलिए बीच में support pillars जोड़ दिए जाते हैं, और cables को यूँ ही छोड़ दिया जाता है कि शायद वे किसी काम आ रहे हों
    • नए कर्मचारी से नए ideas माँगे जाते हैं, लेकिन वह असल में propulsion engineering engineer है, इसलिए उसे पुलों के बारे में कुछ पता ही नहीं
  • अगर आपसे पूछा जाए कि क्या आप ऐसा पुल पार करेंगे, तो कोई नहीं करेगा; लेकिन इसी तरह की संरचनाओं ने banking software, websites और internet security programs सब बनाए हैं

सारा code बुरा होता है

  • हर programmer के पास एक Good Code फ़ाइल होती है, जिसे वह तब निकालकर पढ़ता है जब घर पर कोई नहीं होता, और पढ़ते-पढ़ते रो भी पड़ता है
    • function और variable names consistent होते हैं, code concise होता है, साफ़ तौर पर बेवकूफ़ी नहीं करता, और न ही कभी real-world environment या sales team की माँगों के संपर्क में आया होता है
    • उसे सिर्फ़ एक ही व्यक्ति ने लिखा होता है, किसी और ने उसे छुआ तक नहीं होता, और वह 30 साल से ज़्यादा उम्र के व्यक्ति की लिखी कविता जैसा लगता है
  • हक़ीक़त: अगर शुक्रवार को आपको मंगलवार तक 600 बर्फ़ के फाहे बनाने का आदेश मिले, तो आप इधर-उधर से जुगाड़ लगाएँगे, आपका सहकर्मी उन्हें पिघला देगा, सब कुछ एक अजीब ढेर में मिल जाएगा, आप उसी पर Picasso को टिकाएँगे, और अगले हफ़्ते Picasso को गिरने से बचाने के लिए और बर्फ़ ढोएँगे
  • एक सिद्धांत है कि standards का पालन करने से समस्या हल हो जाएगी, लेकिन standards की संख्या कंप्यूटरों की वास्तविक क्षमता से भी ज़्यादा है, और उन्हें लोग अपनी पसंद से मोड़ते-तोड़ते भी हैं; इसलिए वास्तविक codebase में एक ही काम करने के दर्जनों अलग-अलग तरीके मिलते हैं
  • नई नौकरी के शुरुआती कुछ हफ़्ते इस बात को समझने में निकल जाते हैं कि program चलता कैसे है, भले ही आपको सारी languages, frameworks और standards पता हों — क्योंकि standards unicorn जैसे होते हैं

अँधेरा हमेशा मौजूद है

  • बचपन की अलमारी वाली उपमा: आप अंदर जाते हैं तो पीछे की दीवार खिसककर shelf बन जाती है, फिर ऊपर देखते हैं तो रोशनी से परे एक crawlspace का पूर्ण शून्य दिखता है, और आपको यक़ीन हो जाता है कि वही राक्षस वहाँ रहता है जिसे आप हर रात torch और गुड़ियों से रोकने की कोशिश करते थे
  • programming सीखना भी ऐसा ही है: आप कुछ उपयोगी tools सीखते हैं, फिर आसपास देखते हैं तो एक नया tool मिलता है, और वही tool आपको उस तलहीन डर तक पहुँचा देता है जो हमेशा आपके बिस्तर के ठीक बगल में था
  • एक औसत web developer की हक़ीक़त
    • 12 programming languages और अनगिनत libraries, standards और protocols से परिचित होने के बावजूद हर हफ़्ते एक नई चीज़ सीखनी पड़ती है
    • सैकड़ों पुराने tools update हुए हैं या टूट गए हैं, यह जाँचना पड़ता है, और यह भी देखना पड़ता है कि किसी नशे भरे weekend पर चतुराई से इस्तेमाल किया गया bug अभी तक fix तो नहीं हो गया
    • आपको लगता है सब कुछ up-to-date है, और फिर अचानक सब कुछ टूट जाता है
  • failure का एक उदाहरण: किसी ने तय किया कि 1/0 को Infinity की तरह इस्तेमाल किया जाएगा, फिर किसी और ने उसे compiler error बना दिया, और किसी को बताया भी नहीं; नतीजा यह कि expert को भी कारण खोजने में 6 घंटे लग जाते हैं
  • अपने ही क्षेत्र की विशेषज्ञता भी computer science की पूरी दुनिया का बहुत छोटा हिस्सा है, और 5 साल पुराने MacBook के काम करने का तरीका पूरी तरह जानने वाला एक भी इंसान नहीं है
  • लोग “इसे बंद करके फिर चालू कीजिए” इसलिए कहते हैं, क्योंकि उन्हें सच में नहीं पता कि गड़बड़ी क्या है; वे बस computer को बेहोशी जैसी हालत में भेजकर उसके अंदर मौजूद automatic doctor team पर छोड़ देते हैं

इंटरनेट अपने आप में एक ख़ास किस्म का नर्क है

  • dynamic pages वाले सिर्फ़ 3-page shopping cart स्तर के website को भी 24 घंटे की team maintain करती है, क्योंकि हर चीज़ हर समय हर जगह हर किसी के लिए टूटती रहती है
  • इसी समय Facebook का कोई कर्मचारी हज़ारों error messages संभाल रहा है, Google के किसी office की एक team 3 दिनों से सोई नहीं है, और कहीं कोई database programmer खाली Mountain Dew bottles से घिरा बैठा है और सोच रहा है कि उसका husband मर चुका होगा
  • अगर सभी system administrators एक साथ lunch पर चले जाएँ, तो deli तक पहुँचने से पहले ही उन्हें canned food के लिए mutants की भीड़ से लड़ना पड़ेगा
  • खरबों डॉलर अनौपचारिक समझौतों और 10 साल पहले लिखे उस code पर टिके हैं, जिस पर TODO: FIX THIS IT'S A REALLY DANGEROUS HACK जैसी टिप्पणी लगी हुई है
  • जासूसी, मुनाफ़े या सिर्फ़ बोरियत के लिए इंटरनेट पर हमले करने वाले समूह मौजूद हैं, और 4chan अगर सिर्फ़ एक दोपहर ख़राब मूड में हो, तो किसी की ज़िंदगी और business बरबाद कर सकता है; लेकिन यह nuclear winter में एक और bomb गिरने जैसा है, इसलिए कोई ख़ास फ़र्क नहीं पड़ता
  • इंटरनेट पर अगर आप कह दें “मुझे लगता है यह कभी-कभी काम करता है”, तो वही इंटरनेट का हिस्सा बन जाता है; और कुछ सौ डॉलर और एक computer के सहारे कोई भी भयानक hacking code अपलोड करके पूरी चीज़ को थोड़ा और ख़राब बना सकता है
  • इंटरनेट का गुप्त नियम: browser खोलने के 5 मिनट बाद ही कोई Russian बच्चा आपका resident ID number पा चुका होता है, sign up करते ही NSA आपकी location track करने लगती है, और email भेजते ही आपका address किसी Nigerian billboard पर पहुँच जाता है
  • यह लापरवाही की वजह से नहीं है, बल्कि इसलिए है कि सब कुछ टूटा हुआ है और अच्छा code कहीं है ही नहीं, और सब लोग बस उसे किसी तरह चलते रहने देने में लगे हैं

हम पागल नहीं हैं, हम पागल होते जा रहे हैं

  • ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu — अगर यह आपको मज़ेदार लगता है तो अभी आप ठीक हैं; लेकिन अगर “arrayReverse” के जवाब में आपका स्वाभाविक उत्तर s/camel/_/ है, तो आप पहले ही code में बोलने वाले चरण में पहुँच चुके हैं
  • इंसानी दिमाग़ बुनियादी logic में भी कोई विशेष रूप से महान नहीं है, फिर भी एक ऐसा पेशा मौजूद है जिसमें पूरे दिन बेहद जटिल logic करना पड़ता है
  • जब आप पूरे दिन abstract conditions और requirements की विशाल chain में कोई छूटी हुई comma जैसी चीज़ ढूँढते रहते हैं, तो लोगों के चेहरे देखते हुए भी समझ नहीं आता कि वे बोलना ख़त्म कर चुके हैं या नहीं — क्योंकि semicolon नहीं है
  • esolang के उदाहरण से दिखाया जाता है कि दिमाग़ पर programming का असर कितना विनाशकारी हो सकता है
    • C++ के “Hello World” जैसा ही output देने वाले programs Brainfuck, Ook!, और Maya अंकों को 90 डिग्री घुमाकर ASCII art के रूप में लिखे Perl code जैसी चीज़ों में भी मौजूद हैं
    • Maya number वाला program competition जीत चुका था, और ऐसी दुनिया में कोई यह सवाल नहीं करता कि कोई रोज़ एक पैकेट cigarettes क्यों पीता है
  • हर programmer अपने दिमाग़ से वह काम 10–15 घंटे रोज़, हफ़्ते में 5–7 दिन करा रहा है, जिसके लिए वह बना ही नहीं था, और सब धीरे-धीरे पागल हो रहे हैं
  • निष्कर्ष: 50 पाउंड का वज़न उठाने की बजाय, आपको शैतान के बाल सँवारते हुए खुले खोपड़ी के ऊपर भोजन करने वाले शैतान की सेवा करने का मौक़ा मिला है, और इसकी क़ीमत पर इंटरनेट का कोई हिस्सा कुछ और दिनों तक चलता रहता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.