एक सार्वभौमिक विधानसभा भाषा की आवश्यकता पर सी की लोकप्रियता को दोष देने के लिए मैंने हमेशा प्रयास किया है। यह मशीन स्तर पर विशिष्टता का संयोजन है, मानकीकरण, और चरम पोर्टेबिलिटी सी को उस वास्तविक वास्तविक असेंबली भाषा के रूप में कार्य करने की अनुमति देता है , और इस कारण से मुझे संदेह है कि इसकी भूमिका अनिश्चित काल तक जारी रहेगी।
मुझे यह उल्लेख करना चाहिए कि जब ओओपी प्रोग्रामिंग पाठ्यक्रमों में "अंतिम मॉडल" के रूप में प्रस्तुत किया जाता है तो मुझे हमेशा थोड़ा आश्चर्य होता है कि यह अच्छी प्रोग्रामिंग के लिए एकमात्र संभव समापन बिंदु है। प्रोग्रामिंग के कई अन्य पहलुओं की तरह, OOP का मूल्य कई प्रतिस्पर्धी कारकों के बीच एक समझौता है, जिसमें मानव दिमाग की जानकारी का आयोजन, सामाजिक समूह लंबी अवधि में सॉफ्टवेयर का समर्थन कैसे करते हैं, और वस्तु-उन्मुख प्रोग्रामिंग के मामले में, कुछ बहुत ही गहरे पहलू ब्रह्मांड कैसे काम करता है।
और वह आखिरी बिंदु थोड़ा हथौड़ा मारने के लायक है। आगे पढ़ें कि क्या आप भौतिकी-स्तरीय खोज में रुचि रखते हैं कि क्यों कुछ प्रोग्रामिंग शैलियों मौजूद हैं, वे एक साथ कैसे काम करते हैं, और भविष्य में दुनिया कहाँ बढ़ सकती है क्योंकि हम इस तरह की अवधारणाओं पर आगे विस्तार करते हैं ...
भौतिकी में एक वस्तु कुछ भी है जो समय के साथ पहचानने योग्य सामंजस्य बनाए रखती है। बदले में, हमारे जैसे सरल जीवों को केवल थोड़ी सी संख्या में बिट्स का उपयोग करके वस्तु का प्रतिनिधित्व करने से दूर होने की अनुमति देता है, हमारे अस्तित्व को भी बुरी तरह से खतरे में डाले बिना। लेकिन बड़े पैमाने पर भौतिकी के संदर्भ में, इस तरह के सरलीकरण को आसान और सामान्य बनाने के लिए आपके पास चीजों की संख्या बिल्कुल सही है, उल्लेखनीय रूप से बड़ी है। मनुष्य के रूप में हम उस सब के बारे में नहीं सोचते क्योंकि काफी स्पष्ट रूप से, हम यहाँ नहीं होंगे अगर यह सच नहीं था।
ध्वनि भी सार? यह वास्तव में नहीं है। उदाहरण के लिए कल्पना कीजिए कि आपके दोस्त के घर तक सड़क को नेविगेट करने की कोशिश कर रहा है अगर कारों के बजाय आप तेजी से दोलन क्षेत्रों का सामना कर रहे हैं और वेग के विशाल रेंज के साथ चलती पदार्थ के क्षणिक संघनन। ऐसा परिदृश्य सामाजिककरण के अवसरों में गहराई से कटौती कर सकता है, हाँ? हम वस्तुओं की जरूरत है हम, कर रहे हैं , वस्तुओं और वस्तुओं के अस्तित्व हमारे आसपास के माहौल के सरलीकरण का एक विशाल और अत्यंत महत्वपूर्ण स्तर के साथ हमें प्रदान करता है।
तो चलो सॉफ्टवेयर के चारों ओर वापस खींचते हैं। वास्तविक दुनिया में वस्तुओं को प्रोग्रामिंग के संदर्भ में वस्तुओं के बारे में क्या कहना है?
खैर, एक बात के लिए इसका मतलब है कि सॉफ्टवेयर में एक "अच्छी" वस्तु को परिभाषित करता है जो वास्तव में होना चाहिए या नहीं जिस प्रकार का डेटा आप आसानी से संभाल रहे हैं वह समय के साथ पहचानने योग्य दृढ़ता के विचार का समर्थन करता है ।
परिभाषा के साथ, OOP के सबसे आसान रूपों को पहचानना आसान है। वे वे हैं जो केवल पहले से ही "संलग्न" या कुछ वास्तविक दुनिया द्वारा परिभाषित, केवल एक व्यक्ति, घर, या कार जैसी भौतिक वस्तु द्वारा उपयोग किए जाने वाले डेटा से थोड़ा बाहर निकलते हैं। आज भी, यह अभी भी अक्सर वस्तुओं की एकमात्र परिभाषा है जो लोग सॉफ़्टवेयर पाठ्यक्रमों में प्राप्त करते हैं। यह बहुत बुरा है, क्योंकि यहां तक कि तुच्छ वस्तु-उन्मुख कार्यक्रमों की तुलना में व्यापक परिभाषा की आवश्यकता है।
वस्तुओं की दूसरी और कहीं अधिक दिलचस्प श्रेणी में वे हैं जो मैं अमर वास्तविक दुनिया की घटनाओं को कहूंगा । "अमर" से मेरा तात्पर्य है कि कम से कम संक्षेप में एक अच्छी तरह से परिभाषित इकाई या वास्तविक दुनिया में संग्रह के रूप में मौजूद हैं, लेकिन जो तब फैलता है और भौतिक रूप से सार्थक संग्रह के रूप में मौजूद रहता है। एक संगोष्ठी एक महान उदाहरण है: संगोष्ठी कुछ समय के लिए एक शालीनता से अच्छी तरह से परिभाषित स्थानों और लोगों के संग्रह के रूप में मौजूद है। लेकिन अफसोस, यहां तक कि सबसे अच्छा सम्मेलनों को समाप्त करना चाहिए, और व्यक्तिगत भागों ने उन्हें अन्य गतिविधियों के लिए आगे बढ़ाया।
लेकिन कंप्यूटर और नेटवर्क का उपयोग करके, हम इस तरह के क्षणिक संगोष्ठी को एक दीर्घकालिक वस्तु की तरह प्रतीत कर सकते हैं जो कि एक सॉफ्टवेयर ऑब्जेक्ट के रूप में इसकी मेमोरी को कैप्चर और बनाए रखता है। कंप्यूटर और डेटाबेस के साथ बहुत सी बातें हम क्षणिक घटनाओं के इस तरह के अमरत्व की मात्रा में करते हैं, जिसमें हम अपने वास्तविक ब्रह्मांड को कैप्चर करके और इसे उन तरीकों से बढ़ाकर समृद्ध बनाने का प्रयास करते हैं जो संभवतः भौतिक रूप से मौजूद नहीं हो सकते। जैसे, क्या आपने हाल ही में एक असली पेंडोरा देखा है? वास्तविक दुनिया के टुकड़ों के ऐसे कैप्चर और एक्सटेंशन हमारे अपने जीवन, अर्थव्यवस्थाओं और विकल्पों को उल्लेखनीय तरीके से समृद्ध और विस्तारित करने में मदद करते हैं। यह मेरे लिए ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का दिल का मैदान है, जहां यह पड़ा है, और सबसे उल्लेखनीय प्रभाव पड़ता है।
OOP की एक अंतिम श्रेणी में वे वस्तुएं होती हैं जिनका बाहरी घटनाओं से कोई निकट संबंध नहीं होता है, बल्कि ये आधारभूत संरचना के होते हैंवास्तविक दुनिया से अमर वस्तुओं का उपयोग करके वास्तविकता के हमारे निरंतर विस्तार का समर्थन करने की आवश्यकता है। यह वह जगह है जहां आप कंप्यूटर के सभी (अर्ध) धातु के नीचे उतर सकते हैं, लगातार वास्तविकता के टुकड़े बना सकते हैं कि जैसे वास्तविक दुनिया के रासायनिक तत्वों को नए आंतरिक दुनिया बनाने के लिए जल्दी और दिलचस्प तरीकों से जोड़ा जा सकता है। मोबाइल कंप्यूटिंग ने इस तरह के अत्यधिक पुनः संयोजक दृष्टिकोण के विकास को बढ़ावा देने में मदद की है, एक जो कई मायनों में फिर से भौतिक दुनिया के पुन: संयोजक सुविधाओं की नकल करता है। यह भी कठिन है: एक अच्छा विकल्प की तरह क्या प्रतीत हो सकता है कि समय के साथ एक अप्रत्याशित रूप से खराब साबित हो सकता है, आमतौर पर क्योंकि यह समर्थन करने के बजाय अवरुद्ध विविधता और विस्तार को समाप्त करता है।
यह अंतिम श्रेणी प्रोग्रामिंग के लिए सिर्फ एक मॉडल का उपयोग करने के जोखिमों को इंगित करती है, चूंकि वास्तविक दुनिया की तरह, प्रोग्राम किए गए दुनिया को भी प्रक्रियाओं की आवश्यकता होती है जो नहींअपेक्षाकृत अपरिवर्तित वस्तुओं के अनुरूप है। पृथ्वी वस्तुओं से भरी हुई है, लेकिन सूरज अत्यधिक गतिशील ऊर्जा प्रवाह से भरा है जो अंततः कम ऊर्जा वाली पृथ्वी पर वस्तुओं और गतिविधियों को "ड्राइव" करने के लिए आवश्यक है। इसी तरह, कंप्यूटिंग की दुनिया बनाने में ऐसे मामले हैं जहां आपको प्रवाह और परिवर्तनों से निपटना होगा और तेजी से बदलते संदर्भों, जबकि स्वयं में बहुत वस्तु-जैसा नहीं है, फिर भी सरल, उच्च स्तर पर उपयोग किए जाने वाले अधिक मानव-अनुकूल वस्तुओं को सक्षम करने के लिए बिल्कुल महत्वपूर्ण हैं। । यह कोई संयोग नहीं है कि कर्नेल स्तर पर की गई प्रोग्रामिंग का अधिकांश वस्तुगत रूप से वस्तु-जैसा नहीं है, या यह कि यह सी जैसी भाषाओं पर अधिक भरोसा करने की प्रवृत्ति रखता है जो अधिक प्रसंस्करण उन्मुख हैं। ये गहरे डोमेन हैं जो आकर्षक विविधता को पूरक करते हैं जो हम कंप्यूटर जनित दुनिया में उच्चतर देखते हैं।
अन्य क्षेत्र जहां ओआरओपी जा सकता है, पुरानी वस्तु अवधारणाओं पर बहुत अधिक ध्यान केंद्रित कर रहा है ।
वास्तविक दुनिया में वस्तुओं और विशेष रूप से जीवित वस्तुओं में जटिल और सूक्ष्म तरीके से अपने वातावरण के साथ बातचीत करने की क्षमता का एक आश्चर्यजनक स्तर है। एक दूसरे के ऊपर दिखने वाले कम्पोज़िटिव विजेट्स, कुछ कम्पैटिबिलिटी और सेनिटरी चेक करते हैं, और हो सकता है कि इंटरैक्ट करने के लिए कुछ नए तरीके भी बताएं, जो कि साधारण फ्रेमवर्क और सिंपल इनहेरिटेंस स्कीम्स की तुलना में ऑब्जेक्ट्स की रियल-वर्ल्ड बायोलॉजिकल कॉन्सेप्ट के बहुत करीब आते हैं। कोड स्तर पर (आमतौर पर आवश्यकता द्वारा!) पर ध्यान केंद्रित करने के लिए। यह साइबर दुनिया में वस्तुओं के लिए विकास क्षेत्रों में से एक है, अधिक "एजेंट जैसे" दृष्टिकोण जहां पर्यावरण के लिए प्रतिक्रियाशीलता प्रोग्रामिंग के भीतर भी आदर्श है।
और OOP के मेरे "समालोचक" के लिए बहुत कुछ! फिर भी, मुझे आशा है कि मैंने बताया है कि क्यों एक अमीर साइबरवर्ल्ड बनाने का मतलब है कि प्रोग्रामिंग शैलियों की विविधता को शामिल करना, बजाय यह मानने के कि "बस एक" वह सब है जिसकी आवश्यकता है। मेरी भावना यह है कि वास्तव में दिलचस्प सामान अभी आना बाकी है, फिर चाहे हम जो भी करते हों, वह बहुत अधिक सांसारिक हो!