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