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