एलन के, ओओपी के निर्माता, विकास, लिस्प और ओओपी के बारे में

एलन के, ओओपी के निर्माता, विकास, लिस्प और ओओपी के बारे में

यदि आपने एलन के के बारे में कभी नहीं सुना है, तो कम से कम आपने उनके प्रसिद्ध उद्धरण तो सुने ही होंगे। उदाहरण के लिए, 1971 का यह उद्धरण:

भविष्य की भविष्यवाणी करने का सबसे अच्छा तरीका उसका आविष्कार करना है।
भविष्य की भविष्यवाणी करने का सबसे अच्छा तरीका उसका आविष्कार करना है।

कंप्यूटर विज्ञान में एलन का करियर बहुत रंगीन है। उसने प्राप्त किया क्योटो पुरस्कार и ट्यूरिंग पुरस्कार ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग प्रतिमान पर उनके काम के लिए। वह पर्सनल कंप्यूटर और ग्राफिकल इंटरफेस के क्षेत्र में अग्रदूतों में से एक थे, जिसे उन्होंने विकसित किया था छोटी बात सभी समय की पहली सबसे प्रभावशाली प्रोग्रामिंग भाषाओं में से एक है।

हमारे में हेक्सलेट, खास करके बातें, सवाल "ओओपी क्या है" और "एलन के का वास्तव में क्या मतलब था" लगातार उठाया जाता है। इस पोस्ट में आधुनिक विकास की स्थिति, ओओपी और लिस्प भाषा के बारे में एलन के दिलचस्प उद्धरण शामिल हैं।

सॉफ्टवेयर विकास के बारे में

एलन के का मानना ​​है कि कंप्यूटर क्रांति अभी बाकी है (वास्तविक कंप्यूटर क्रांति अभी तक नहीं हुई है), और सॉफ्टवेयर विकास मूर के नियम के विपरीत अनुपात में विकसित होता है: हार्डवेयर में हर साल सुधार होता है, लेकिन सॉफ्टवेयर अनावश्यक रूप से फूला हुआ हो जाता है:

समस्या कमज़ोर है, ख़राब मापनीय विचार और उपकरण, आलस्य, ज्ञान की कमी, आदि।

इस स्थिति का अच्छे से वर्णन करता है संक्षिप्त मजाक:

एंडी क्या देता है, बिल छीन लेता है
एंडी ने दिया, बिल ने लिया

इंटेल के सीईओ एंडी ग्रोव और माइक्रोसॉफ्ट के तत्कालीन सीईओ बिल गेट्स।

विकास की वर्तमान स्थिति में सुधार करना अनुसंधान परियोजना का लक्ष्य था प्रोग्रामिंग के पुनराविष्कार की दिशा में कदम (पीडीएफ). लक्ष्य "आवश्यक कोड की मात्रा को 100, 1000, 10000 गुना या अधिक कम करके" अभिव्यक्ति में "मूर के नियम" को प्राप्त करना है।

उनकी आंखें खोल देने वाली रिपोर्ट में प्रोग्रामिंग और स्केलिंग (वीडियो) इस विषय पर अधिक विस्तार से चर्चा की गई है। एलन के अनुसार, सॉफ्टवेयर इंजीनियरिंग रुक गई है और एक भूला हुआ विज्ञान बनता जा रहा है जो हार्डवेयर और अन्य विज्ञान और इंजीनियरिंग विषयों के साथ नहीं चल सकता है। बड़ी परियोजनाएं कोड डंप बन गई हैं और एक ऐसे बिंदु पर पहुंच गई हैं कोई भी नहीं MS Vista या MS Word कोड की 100 मिलियन पंक्तियों को समझने में असमर्थ। लेकिन वास्तव में, ऐसी परियोजनाओं में परिमाण कम कोड का क्रम होना चाहिए।

एलन इंटरनेट, टीसीपी/आईपी प्रोटोकॉल, एलआईएसपी दुभाषियों पर विचार करता है। नाइल (वेक्टर ग्राफिक्स के लिए गणित डीएसएल) और ओमेटा (ओओ पीईजी) (पीडीएफ) न्यूनतम कोड वाले आकर्षक सॉफ़्टवेयर के उदाहरण.

वह इंटरनेट (टीसीपी/आईपी) को उन कुछ बड़े पैमाने के सॉफ़्टवेयर प्रोजेक्टों में से एक कहते हैं जिन्हें सही ढंग से डिज़ाइन किया गया था, और इसकी जटिलता का स्तर जटिलता के स्तर (जटिलता बनाम जटिलता) के साथ संतुलन में है। कोड की 20 से भी कम लाइनों के साथ, यह परियोजना एक जीवंत, गतिशील प्रणाली के रूप में संचालित होती है जो अरबों नोड्स का समर्थन करने में सक्षम है, और सितंबर 1969 में अपने प्रारंभिक लॉन्च के बाद से कभी भी ऑफ़लाइन नहीं हुई है। हमने इंटरनेट को लोगों द्वारा बनाया गया एक सामान्य सॉफ़्टवेयर प्रोजेक्ट मानना ​​बंद कर दिया है:

इंटरनेट इतना अच्छी तरह से विकसित है कि कई लोग इसे मानव श्रम के उत्पाद के बजाय प्रशांत महासागर जैसे प्राकृतिक संसाधन की तरह मानते हैं। आखिरी बार हमने ऐसी स्थिर, स्पष्ट, त्रुटि रहित तकनीक कब देखी थी? तुलनात्मक रूप से, वेब बकवास है। वेब शौकीनों द्वारा बनाया गया था।

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के बारे में

पहली चीज़ जिसमें मेरी दिलचस्पी थी वह थी उसकी मूल ओओपी दृष्टि. सूक्ष्म जीव विज्ञान में उनके अनुभव ने एक महत्वपूर्ण भूमिका निभाई:

मैंने वस्तुओं को जैविक कोशिकाओं, और/या एक नेटवर्क पर व्यक्तिगत कंप्यूटर के रूप में सोचा जो केवल संदेशों के माध्यम से संचार कर सकते थे।

और गणित में अनुभव:

गणित में मेरे अनुभव ने मुझे एहसास कराया कि प्रत्येक वस्तु में कई बीजगणित हो सकते हैं, उन्हें परिवारों में जोड़ा जा सकता है, और यह बहुत उपयोगी हो सकता है।

LISPa की लेट बाइंडिंग और शक्तिशाली मेटा-विशेषताओं के लिए विचार:

दूसरा चरण एलआईएसपीए को समझना और उस समझ का उपयोग करके आसान, छोटी, अधिक शक्तिशाली संरचनाएं बनाना और बाद में बाइंडिंग करना है।

और जल्द ही एलन ने इस विचार का समर्थन करना शुरू कर दिया कि भाषाएँ गतिशील हैं सॉफ्टवेयर विकास का भविष्य (पीडीएफ). विशेष रूप से, परिवर्तन में आसानी उसके लिए महत्वपूर्ण है:

देर से बाइंडिंग उन विचारों को अनुमति देता है जो विकास प्रक्रिया में बाद में आए थे, उन्हें कम प्रयास के साथ परियोजना में शामिल किया जा सकता है (सी, सी ++, जावा इत्यादि जैसे पहले बाध्य सिस्टम की तुलना में)

और तत्काल परिवर्तन और तेज़ पुनरावृत्तियों की संभावना:

प्रमुख विचारों में से एक यह है कि सिस्टम को परीक्षण के दौरान काम करना जारी रखना चाहिए, खासकर जब परिवर्तन किए जा रहे हों। यहां तक ​​कि बड़े बदलाव भी क्रमिक होने चाहिए और इसमें एक सेकंड से अधिक का समय नहीं लगना चाहिए।

जिसमें कमी है स्थिर रूप से टाइप की गई भाषाएँ:

यदि आप प्रारंभिक-बाध्यकारी भाषाओं का उपयोग करते हैं, जैसा कि अधिकांश लोग करते हैं, तो आप अपने आप को उस चीज़ में बंद कर देते हैं जो आपने पहले ही लिखा है। अब इसे आसानी से दोबारा तैयार करना संभव नहीं होगा।

आश्चर्यजनक रूप से, OOP के बारे में उनके विचार यहीं तक सीमित थे:

मेरे लिए ओओपी संदेश, स्थानीय पकड़ और सुरक्षा, राज्य छिपाना और हर चीज की देर से बाइंडिंग है। यह स्मॉलटॉक और एलआईएसपी में किया जा सकता है।

और विरासत के बारे में कुछ नहीं. यह OOP नहीं है जिसे हम आज जानते हैं:

काश मैंने बहुत समय पहले इस विषय के लिए "ऑब्जेक्ट" शब्द का उपयोग किया होता क्योंकि यह कई लोगों को कम विचारों पर ध्यान केंद्रित करने का कारण बनता है।

आधुनिक सांख्यिकीय रूप से टाइप की गई OO भाषाओं में जिस बड़े विचार का अभाव है:

बड़ा विचार है "संदेश"

वह किसी वस्तु के आंतरिक भाग के बजाय संदेशों, ढीले युग्मन और मॉड्यूल इंटरैक्शन पर ध्यान केंद्रित करने में विश्वास करता है:

अच्छे स्केलेबल सिस्टम बनाने की कुंजी मॉड्यूल के बीच संचार तंत्र पर काम करना है, न कि उनके आंतरिक गुणों और व्यवहार पर काम करना।

उसे स्थैतिक रूप से टाइप की गई भाषाएँ लगती हैं दोषपूर्ण:

मैं प्रकारों के ख़िलाफ़ नहीं हूं, लेकिन मैं किसी भी प्रकार की प्रणाली के बारे में नहीं जानता जो दर्द का कारण न बने। इसलिए मुझे अब भी गतिशील टाइपिंग पसंद है।

कुछ लोकप्रिय भाषाएँ आज स्मॉलटॉक के संदेश भेजने के विचारों, देर से बाइंडिंग और का उपयोग करती हैं नहीं समझताअग्रेषणआह्वान в उद्देश्य सीविधि_अनुपलब्ध в माणिक и कोई ऐसी विधि नहीं गूगल में डार्ट.

सब कुछ नष्ट कर दो और कुछ बेहतर बनाओ

एलन के पास कंप्यूटर विज्ञान के विकास के बारे में एक दिलचस्प सिद्धांत है:

मुझे ऐसा लगता है कि कंप्यूटर विज्ञान केवल एक ही प्रकार का है, और वह विज्ञान पुल बनाने जैसा है। कोई पुल बनाता है, और कोई उन्हें नष्ट करके नए सिद्धांत बनाता है। और हमें पुलों का निर्माण जारी रखना होगा।

एलआईएसपी के बारे में

एलन के लिस्प पर विश्वास करते हैं

अब तक की सर्वश्रेष्ठ प्रोग्रामिंग भाषा

और यह कि प्रत्येक कंप्यूटर विज्ञान स्नातक को इसका अध्ययन करना चाहिए:

सीएस में डिग्री हासिल करने वाले अधिकांश लोग लिस्प के महत्व को नहीं समझते हैं। कंप्यूटर विज्ञान में लिस्प सबसे महत्वपूर्ण विचार है।

सही माहौल और संदर्भ के बारे में

वह अक्सर वहां के अनूठे माहौल को याद करते हैं ज़ेरॉक्स PARC и जौ, जहां "दृष्टिकोण लक्ष्यों से अधिक महत्वपूर्ण है" और "लोगों को वित्त पोषित करना, परियोजनाओं को नहीं।"

दृष्टिकोण का मूल्य 80 IQ अंक है।

एलन के कहते हैं:

ARPA/PARC कहानी दर्शाती है कि कैसे दूरदर्शिता, मामूली फंडिंग, सही संदर्भ और प्रक्रिया का संयोजन जादुई रूप से नई प्रौद्योगिकियों को जन्म दे सकता है जो न केवल सभ्यता को प्रभावित करती हैं बल्कि समाज के लिए भारी मूल्य भी पैदा करती हैं।

और यह सच है। PARC के आविष्कारों की प्रभावशाली सूची पर एक नज़र डालेंजिनमें से कई ने हमारी दुनिया के विकास में बहुत महत्वपूर्ण भूमिका निभाई। उदाहरण के लिए:

  • लेजर प्रिंटर
  • ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग / स्मॉलटॉक
  • व्यक्तिगत कम्प्यूटर्स
  • ईथरनेट/वितरित कंप्यूटिंग
  • जीयूआई/कंप्यूटर माउस/WYSIWYG

में और जौ बनाया है अरपानेटजो इंटरनेट का जन्मदाता बन गया।

पुनश्च एलन के हैकर न्यूज़ समुदाय के सवालों के जवाब देते हैं.

स्रोत: www.habr.com

एक टिप्पणी जोड़ें