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