Edsger Dijkstra ने कंप्यूटर विज्ञान को अपने कंधों पर उठाया (2020)
Edsger Dijkstra का कंप्यूटर विज्ञान पर असाधारण प्रभाव इस बात पर चिंतन कराता है कि उनके विचारों ने modern programming और pedagogy को कैसे आकार दिया। टिप्पणीकार structured programming और program correctness के बारे में तर्क-वितर्क में उनकी भूमिका को रेखांकित करते हैं, साथ ही आज की भाषाओं और practices के संदर्भ में GOTO, COBOL, और object-oriented programming पर उनकी प्रसिद्ध आलोचनाओं को फिर से देखते हैं। तकनीकी बहसों के साथ-साथ, कई लोग उनके सटीक मानकों, विशिष्ट कार्य-शैली, और तीखे aphorisms को याद करते हैं, और यह तौलते हैं कि उनकी कठोरता और रूखापन अंततः क्षेत्र के लिए मददगार था या हानिकारक।
Dijkstra के प्रभाव का दायरा
- कई टिप्पणीकार कहते हैं कि उन्होंने शीर्षक को तुरंत उनसे जोड़ा और उन्हें CS की एक केंद्रीय हस्ती के रूप में देखते हैं, गणित के ऐतिहासिक दिग्गजों की तरह।
- जिन योगदानों को प्रमुखता दी गई: shortest-path algorithm, semaphores, structured programming, शिक्षण/प्रोग्राम-रीज़निंग पर प्रभाव।
- कुछ लोग शीर्षक की भव्यता का विरोध करते हैं, यह तर्क देते हुए कि वे कई प्रमुख हस्तियों में से एक थे, CS को “ले जाने वाले” एकमात्र व्यक्ति नहीं।
Structured Programming, GOTO, और Correctness
- उनके structured control flow और “single entry, single exit” blocks के समर्थन पर चर्चा।
- आलोचक नोट करते हैं कि single-exit कभी-कभी कोड को उलझा सकता है और आम “guard clause” शैली तथा early returns से टकराता है।
- अन्य लोग ज़ोर देते हैं कि लक्ष्य human comprehensibility और reasoning को आसान बनाना था, formal correctness guarantees नहीं।
- GOTO पर बहस होती है: unrestricted versions को reasoning के लिए हानिकारक माना जाता है; constrained forms (break/continue/goto/longjmp) को manageable, लेकिन फिर भी जोखिमपूर्ण माना जाता है।
Programming Paradigms: FP vs OOP और उससे आगे
- कुछ लोग उनके anti-GOTO stance को आधुनिक functional styles (no early exits, recursion, TCO) से जोड़ते हैं।
- यह बहस कि functional languages niche क्यों हैं: एक टिप्पणीकार उनकी “convoluted” शैली को दोष देता है, दूसरे इसे चुनौती देते हैं और उनके strong type systems और performance पर ज़ोर देते हैं।
- OOP पर लंबा थ्रेड:
- आलोचनाएँ: data/behavior का कड़ा coupling; fragile class hierarchies; systems को evolve करने में कठिनाई; “design pattern hell.”
- बचाव: OOP एक उपयोगी tool के रूप में; strong typing और encapsulation के लाभ; composition-over-inheritance का आम practice होना।
- कई लोग नोट करते हैं कि बहुत से “OOP” लाभ (composition, interfaces) OOP के लिए अद्वितीय नहीं हैं।
Quotes, Philosophy, और Culture
- कई पसंदीदा quotes साझा किए गए, प्रशंसित और आलोचित दोनों: COBOL, OOP, line counts, thinking machines, abstraction, और “CS vs computers” पर।
- submarine/“can machines think” quote anthropomorphism, linguistic precision, और ऐसे प्रश्नों की व्यावहारिक प्रासंगिकता पर बहस छेड़ता है।
- कुछ लोग उनकी तीखी शैली को ताज़गीभरी और प्रेरक मानते हैं; अन्य इसे एक घमंडी, बहिष्कारी संस्कृति का प्रतीक मानते हैं जो क्षेत्र को नुकसान पहुँचाती है।
Personality, Working Style, और Anecdotes
- उन्हें अत्यंत सावधान और धीमे लेखक के रूप में चित्रित किया गया है (एकल, लगभग अंतिम drafts; ~3 words per minute), जिसमें typing से अधिक thinking पर गहरा ज़ोर था।
- टीवी, personal computers, और mobile phones से परहेज़ किया; fountain pens और “Touring Machine” उपनाम वाली camper van उन्हें पसंद थी।
- कई anecdotes उन्हें भाषा और notation में precision के प्रति demanding बताते हैं, जिससे कुछ सहकर्मियों पर उनका एक स्थायी “inner critic” प्रभाव पड़ा, जो उनके मानकों से बना।