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