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