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