कंप्यूटर साइंस के इतिहास में सबसे प्रभावशाली पेपर
(terriblesoftware.org)- 1936 से 1998 तक के कंप्यूटर साइंस के 7 पेपरों ने आधुनिक कंप्यूटिंग की मुख्य परतों—computability, information theory, databases, complexity, internet, web और search—को आकार दिया
- Alan Turing के 1936 के पेपर ने Turing Machine के जरिए यह अलग किया कि मशीन सिद्धांततः क्या compute कर सकती है और क्या नहीं, और यह आधुनिक computation model का शुरुआती बिंदु बना
- Claude Shannon, Edgar F. Codd और Stephen A. Cook ने क्रमशः information measurement और error correction, relational data model, NP-completeness और SAT के जरिए communication, data और problem difficulty की साझा भाषा बनाई
- Vinton G. Cerf और Robert E. Kahn, Tim Berners-Lee, Sergey Brin और Larry Page के पेपरों ने TCP/IP, World Wide Web और PageRank के जरिए network connections, document links और web search की संरचना तय की
- बोनस सूची में Lisp, structured programming, logical clocks, software complexity और Transformer तक देखें, तो नए tools से ज्यादा बुनियादी concepts को समझना लंबे समय तक टिकने वाली प्रतिस्पर्धी बढ़त बनता है
चयन के मानदंड और समग्र प्रवाह
- यह सूची कोई absolute ranking नहीं है; यह आज की दुनिया पर पड़े प्रभाव के आधार पर चुनी गई एक subjective selection है
- 7 पेपर तारीख के क्रम में रखे गए हैं और computation, communication, data storage, computational difficulty, networking, web और search तक पहुंचने वाला प्रवाह दिखाते हैं
- नई languages, AI advances, quantum leaps और JavaScript frameworks लगातार आते रहें, फिर भी आधुनिक computing की बुनियाद में इन पेपरों से बने concepts मौजूद हैं
1. “On Computable Numbers, with an Application to the Entscheidungsproblem” (1936)
- Alan Turing ने 1930 के दशक में काल्पनिक Turing Machine के जरिए यह आधार रखा कि कंप्यूटर theoretically क्या कर सकते हैं
- मुख्य model में एक tape, read/write head और finite set of states शामिल होते हैं
- यह model परिभाषित करता है कि mechanical sense में कौन-सी problems हल की जा सकती हैं और कौन-सी नहीं
- सभी programming languages और code Turing द्वारा परिभाषित नियमों के भीतर काम करते हैं, और quantum computing की बात करते समय भी Turing द्वारा बताई गई boundaries का संदर्भ लिया जाता है
- और पढ़ें:
2. “A Mathematical Theory of Communication” (1948)
- Claude Shannon ने information को rigorously संभालने के लिए information theory बनाई और bit, entropy, noisy channel जैसे concepts को व्यवस्थित किया
- abstract “information” एक measurable object बन गई, और data compression व error-correcting codes की नींव पड़ी
- अंतरिक्ष में signal भेजने से लेकर Netflix streaming तक, data को efficiently package करने और errors से बचाने में यही ideas इस्तेमाल होते हैं
- text भेजना, video streaming, FaceTime calls जैसे रोजमर्रा के communication भी Shannon के concepts पर चलते हैं
- और पढ़ें:
3. “A Relational Model of Data for Large Shared Data Banks” (1970)
- Edgar F. Codd ने बड़े पैमाने के data को store और query करने के लिए relational model प्रस्तावित किया
- मुख्य idea data को tables में store करने और logical operations से manipulate करने का तरीका था
- यह design SQL और relational databases की श्रृंखला तक गया, जो banks, retail websites और enterprise systems को support करता है
- NoSQL युग में भी tables, schemas और consistency जैसे data organization concepts Codd के model से जुड़े हुए हैं
- और पढ़ें:
4. “The Complexity of Theorem-Proving Procedures” (1971)
- Stephen A. Cook का पेपर इस बात से जुड़ा था कि कुछ computational problems बेहद कठिन होती हैं, और इसने NP-completeness का concept पेश किया
- Cook ने दिखाया कि Boolean satisfiability problem, यानी SAT, NP-complete है
- अगर SAT को तेजी से हल किया जा सके, तो कई अन्य कठिन problems भी साथ में हल हो सकती हैं—इस तरह problem difficulty पर बात करने की shared language बनी
- “NP-hard” expression या route optimization द्वारा CPU पर भारी load डालने जैसी स्थितियां इसी पेपर के प्रभाव से जुड़ी हैं
- इस concept ने algorithms, cryptography और efficient या approximate solutions की खोज पर बड़ा असर डाला
- और पढ़ें:
5. “A Protocol for Packet Network Intercommunication” (1974)
- Vinton G. Cerf और Robert E. Kahn के पेपर ने isolated networks को जोड़ने वाले TCP की बुनियाद पेश की
- अलग-अलग networks के बीच बातचीत के लिए एक universal language बनी, और data छोटे packets में बांटकर कई paths से गुजरता है और फिर दूसरी तरफ reassemble होता है
- इसी flexibility के कारण एक विशाल single network के बिना भी global connectivity संभव हुई
- web browsing, email भेजना, bank website में login करना जैसे काम इस बात पर निर्भर हैं कि TCP/IP bits को reliably move करता है
- कुछ real-time applications UDP इस्तेमाल करती हैं, लेकिन Cerf और Kahn द्वारा पेश IP-based networking के core ideas devices को एक global network के तहत जोड़ते हैं
- और पढ़ें:
6. “Information Management: A Proposal” (1989)
- Tim Berners-Lee ने, machines के लिए आसानी से communicate करना संभव होने के बाद, लोगों के लिए ज्यादा आसानी से इस्तेमाल होने वाले World Wide Web की दिशा प्रस्तावित की
- मुख्य idea hyperlinks, URLs और HTTP वाला global hypertext system था
- दुनिया भर के documents अब isolated नहीं रहे, बल्कि आपस में linked हो गए, जिससे internet केवल scientists के लिए नहीं बल्कि सामान्य users के लिए भी explore करने योग्य रूप में आया
- social media, online shopping और रात 3 बजे पढ़े जाने वाले blog posts जैसे web experiences के बीज इसी proposal से निकले
- और पढ़ें:
7. “The Anatomy of a Large-Scale Hypertextual Web Search Engine” (1998)
- Sergey Brin और Larry Page ने links और pages के तेजी से बढ़ते web को संभालने के लिए link analysis आधारित approach बनाई, जो आगे चलकर Google search engine बनी
- core idea PageRank links को सिर्फ keyword calculation factor नहीं, बल्कि trust के votes के रूप में देखता है
- इस तरीके ने relevant search results में बड़ा सुधार किया और web को searchable space बनाया
- Google में question type करके तुरंत answer पाने का अनुभव PageRank और उसके बाद की कई innovations पर चलता है
- PageRank ने online information खोजने के तरीके को redefine किया और advertising, analytics, machine learning जैसे data-driven technologies के नए दौर की शुरुआत का कारण बना
- और पढ़ें:
मुख्य सूची में लगभग शामिल हो चुके 5 पेपर
- “Recursive Functions of Symbolic Expressions and Their Computation by Machine” (1960) – John McCarthy
- Lisp और functional programming style को पेश किया, और यह style आधुनिक languages और frameworks में भी बचा हुआ है
- “Go To Statement Considered Harmful” (1968) – Edsger Dijkstra
gotoकी आलोचना की कि यह messy और unstructured code बनाता है, और structured programming revolution को जन्म दिया
- “Time, Clocks, and the Ordering of Events in a Distributed System” (1978) – Leslie Lamport
- distributed systems में real clocks को perfectly synchronize नहीं किया जा सकता, इसलिए logical clocks की जरूरत होती है
- “No Silver Bullet—Essence and Accident in Software Engineering” (1986) – Fred Brooks
- software development की essential complexity को हल करने का कोई एक magic solution नहीं है
- “Attention Is All You Need” (2017) – Vaswani et al.
- GPT और कई मशहूर AI models के पीछे मौजूद Transformer architecture पेश किया
बुनियादी concepts का असर
- आज नई languages, AI breakthroughs, quantum leaps और हर हफ्ते आने वाले JavaScript frameworks लगातार आते रहते हैं
- data structures, algorithms और web जैसे core concepts कहां से आए, यह समझे बिना हालत ऐसी बनती है कि सिर्फ नए tools की परतें चढ़ती रहती हैं
- ये 7 पेपर और bonus papers आधुनिक computing की core foundation बने ideas पर फिर से नजर डालने को कहते हैं
1 टिप्पणियां
Hacker News टिप्पणियाँ
Communicating Sequential Processes (Hoare), The Next 700 Programming Languages (Landin), As We May Think (Bush), Can Programming Be Liberated from the von Neumann Style (Backus) भी शामिल करने लायक हैं
और यह लेक्चर भी अच्छा लगता है: https://canvas.harvard.edu/courses/34992/assignments/syllabu...
“यह कोर्स 1930 के दशक से लेकर आज तक के उन शोधपत्रों को कवर करता है जिन्हें हर computer scientist को पढ़ना चाहिए था। यह computer science के advanced छात्रों को पूरे क्षेत्र का व्यापक दृष्टिकोण देने वाला एक समेकित अनुभव है, और सिर्फ overview नहीं बल्कि उसकी रचनात्मक प्रक्रिया को फिर से जीने का तरीका है। इसका उद्देश्य पहले से कुछ background knowledge रखने वाले छात्रों को computer science के पूरे विकासक्रम को तेज़ी से दोबारा दिखाना है, ताकि वे इस क्षेत्र की एकीकृत समझ बना सकें।”
यह सूची कुछ अजीब मिश्रण जैसी लगती है। यह स्पष्ट नहीं है कि बात उन शोधपत्रों की हो रही है जिन्होंने computer science, यानी computation theory, को प्रभावित किया, या उन papers की जिन्होंने technology को प्रभावित किया, या फिर बस “computer से जुड़ी हर चीज़” को computer science कहा जा रहा है
Turing का paper computer science की नींव है, लेकिन अगर वह paper न होता तो technology अलग तरह से विकसित होती या नहीं, इस पर संदेह है। ज़्यादातर software engineers ने उसे कभी पढ़ा भी नहीं है। दूसरी ओर, IP standard तकनीकी आधारशिला है, लेकिन उसमें scientific content लगभग नहीं है, और network के आसपास काम करने वालों के लिए जानने योग्य एक अपेक्षाकृत सरल protocol specification के ज़्यादा करीब है
“On Computable Numbers, with an Application to the Entscheidungsproblem” अब लगभग 90 साल पुराना है, लेकिन आज भी उतना ही सत्य और वैध है जितना तब था। यह कहना कठिन है कि PageRank आज भी 1998 जितना प्रासंगिक है या नहीं, और 50 साल बाद भी रहेगा या नहीं
शोधपत्रों की अच्छी सूची है। सूची की 7 में से 5 रचनाएँ मैंने पढ़ी हैं, और जो अभी नहीं पढ़ी हैं वे Cerf और Kahn का paper तथा Berners-Lee का paper हैं
Turing का computability paper खास तौर पर follow करना कठिन था, क्योंकि उसमें हर तरह की चीज़ों को Gothic बड़े अक्षरों से नाम दिया गया था और वे सब एक जैसे लगते थे। paper को समझने के लिए मुझे supplementary material देखना पड़ा, और अब मैं इसे Charles Petzold की annotated guide https://www.amazon.com/Annotated-Turing-Through-Historic-Com... के साथ पढ़ने की सलाह दूँगा
Cook का NP-completeness paper भी कठिन था, और Turing paper की तरह उसमें भी supplementary material की ज़रूरत पड़ी। अब मैं पहले ऐसी introductory computational complexity book पढ़ने की सलाह दूँगा जो Cook के proof को follow कराती हो
Shannon का paper साफ़ और सुंदर ढंग से लिखा हुआ कला-कृति जैसा है, लेकिन बिल्कुल भी हल्के-फुल्के ढंग से पढ़ लेने लायक लेख नहीं है
Brin और Page का paper, और Codd का paper, याद के अनुसार बहुत कठिन नहीं थे, लेकिन Brin और Page के काम को समझने के लिए कुछ linear algebra का ज्ञान चाहिए
“simple iterative algorithm” किसी भी contraction mapping के fixed point को खोजने का तरीका है, चाहे वह linear हो या नहीं। यह तथ्य कि वह एक eigenvector भी है, उल्टा ध्यान भटकाने वाला है, और जो लोग अच्छी तरह जानते हैं वे Gauss elimination का इस्तेमाल नहीं करेंगे
.texमूल फ़ाइल मिल जाए तो GPT से variable names को अधिक पठनीय, यानी एक अक्षर से लंबे नामों में बदलने के लिए कहना मददगार हो सकता हैअगर आपको लगता है कि Shannon की A Mathematical Theory of Communication ने computer science में सबसे बुनियादी योगदान दिया, तो आपने शायद 10 साल पहले लिखी गई उनकी master’s thesis अभी नहीं देखी है
https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_a...
उसमें उन्होंने दिखाया कि circuits के switching elements, यानी transistors, के ज़रिए Boolean logic को परिभाषित किया जा सकता है
बेशक, इससे information theory की पूरी नींव रखने वाली उनकी उपलब्धि के महत्व को कम करके नहीं आँकना चाहिए
“अगर कुछ computable है, तो सिद्धांततः उसे machine द्वारा संसाधित किया जा सकता है—यह दिखाते हुए उन्होंने काल्पनिक ‘Turing Machine’ की कल्पना की” यह Turing ने साबित नहीं किया था
उस paper में उन्होंने जो साबित किया, वह यह था कि ऐसी समस्याएँ मौजूद हैं जिन्हें Turing Machine से हल नहीं किया जा सकता, और इसलिए शायद किसी भी machine से हल नहीं किया जा सकता। शीर्षक में आया Entscheidungsproblem, यानी decision problem, वही है
मूल पाठ दरअसल तथाकथित Church-Turing Thesis की ओर इशारा करता है, जो नाम से ही स्पष्ट है कि एक thesis के अधिक करीब है। इसे वास्तव में सिद्ध नहीं किया जा सकता, लेकिन लगभग 100 वर्षों में Turing Machine से अधिक शक्तिशाली कोई computational system न मिलने के कारण इसे बहुत मज़बूती से मानने की वजह है
ज्ञात सभी सत्यों को समेटने वाली machine बनाने के बजाय, आधुनिक machine-based AI की खोज ज़्यादातर मानव टिप्पणियों को खंगालकर एक संकलित feuilleton machine बनाने के अधिक करीब पहुँची है, और यह Leibniz-शैली के axiomatic approach से अलग है
बढ़िया काम। मैं भी निजी तौर पर कुछ ऐसा ही कर रहा था, इसलिए कुछ और पेपर सुझाना चाहूँगा
RSA: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems (1978)
PageRank: The PageRank Citation Ranking: Bringing Order to the Web (1999)
MapReduce: MapReduce: simplified data processing on large clusters (2008)
Bitcoin: Bitcoin: A Peer-to-Peer Electronic Cash System (2008)
Backpropagation: Learning representations by back-propagating errors (1986)
Hoare logic: An Axiomatic Basis for Computer Programming (1969)
Dennis Ritchie का बदनाम Evolution of Unix time-sharing systems कहाँ गया?
https://www.bell-labs.com/usr/dmr/www/cacm.pdf
https://web.archive.org/web/20070926212100/http://www.almade...
सब लोग अपनी-अपनी सिफारिशें जोड़ रहे हैं, तो मैं भी एक जोड़ दूँ: Cook ने NP-completeness को सबसे पहले पेश किया था, लेकिन Karp का वह पेपर जिसमें 3SAT से polynomial-time reduction संभव 21 समस्याएँ दी गई थीं, Cook के सिद्धांत में व्यापक रुचि जगाने वाली एक बहुत बड़ी नींव भी था
https://en.wikipedia.org/wiki/Karp%27s_21_NP-complete_proble...
क्या Diffie और Hellman का New Directions in Cryptography (1976) छूट गया?
यह पेपर नहीं है, लेकिन Marc Andreessen का Why Software Is Eating the World और Amazon का 1997 का पहला shareholder letter खास तौर पर उल्लेख के लायक हैं
“हर उद्योग की कंपनियों को यह मानकर चलना चाहिए कि software revolution आ रही है। इसमें वे उद्योग भी शामिल हैं जो आज पहले से ही software-driven हैं”
https://a16z.com/why-software-is-eating-the-world/
“लेकिन यह इंटरनेट का अभी भी Day 1 है, और अगर हम अच्छी तरह execute करते हैं, तो Amazon.com के लिए भी यह Day 1 है”
https://www.aboutamazon.com/news/company-news/amazons-origin...