IMO, ऑब्जेक्टिव-सी के साथ समस्या इतनी बड़ी कमियां नहीं हैं, जितनी कि छोटी कमियों (विशेष रूप से जल्दी) और कथित फायदों की कमी।
ऑब्जेक्टिव-सी, सी का एक शुद्ध सुपरसेट था, इसलिए सी कोड उद्देश्य-सी में आसानी से संक्रमण कर सकता था। उद्देश्य-सी का उपयोग करने की मानसिकता , हालांकि, सी मानसिकता से बहुत भिन्न थी । C से ऑब्जेक्टिव-सी में परिवर्तन कोड के लिए आसान है लेकिन कई प्रोग्रामर के लिए बिल्कुल भी आसान नहीं है। एसी प्रोग्रामर आसानी से ऑब्जेक्टिव-सी में कुछ नई सुविधा सुविधाओं को आसानी से नहीं चुन सकता है और लगभग तुरंत बेहतर उत्पादकता प्राप्त कर सकता है - इससे पहले कि वह कहीं भी मिल सके उससे पहले उसे कई नए "सामान" सीखने की जरूरत है।
C ++ ने कुछ कोड के लिए संक्रमण को थोड़ा और कठिन बना दिया, लेकिन अधिकांश प्रोग्रामर के लिए संक्रमण बहुत आसान था। C प्रोग्रामर जो अपने कोड के हर विवरण से निपटने के आदी हैं, वे अभी भी C ++ में ऐसा कर सकते हैं, जैसा वे चाहते थे। C ++ ने कुछ नई सुविधाओं का उपयोग करना भी आसान बना दिया (जैसे, अपने ढांचे के सदस्यों को स्वचालित रूप से प्रारंभ करने के लिए एक Ctor जोड़ना) वास्तव में आपके सोचने के तरीके को बदले बिना। बहुत से OO शुद्धतावादियों ने सोच में आमूल परिवर्तन किए, लेकिन बहुत से C प्रोग्रामर C ++ को बिना किसी प्रकार के (कम से कम अभी - और अक्सर कभी, चीजों की शक्ल से) किए बिना स्विच करते हैं।
सी ++ भी देखा सबसे C प्रोग्रामर से बहुत अधिक परिचित। इसमें कुछ नए कीवर्ड जोड़े गए, लेकिन (विशेष रूप से जल्दी) कोड अभी भी ज्यादातर परिचित लग रहे थे। अपने 'शुद्ध superset "स्थिति के बावजूद, सबसे ऑब्जेक्टिव-सी कोड दिखता है काफी सबसे C प्रोग्रामर से विदेशी। C ++ में बहुत सी चीज़ों को समझाने और समझने में भी काफी आसान है कि सी में चीजें कैसे काम करती हैं। Objective-C में स्विच करने के लिए और भी बहुत सी जगहें हैं जिनके बारे में आप बस इतना ही कह सकते हैं “बस मुझ पर भरोसा करो और जो कुछ भी तुम सोचते हो उसे भूल जाओ। "
उद्देश्य-सी में कई डिजाइन निर्णयों ने इसे (कुछ) C ++ की तुलना में धीमा कर दिया, विशेष रूप से धीमी प्रोसेसर, सीमित मेमोरी आदि के साथ अपेक्षाकृत पुरानी मशीनों पर। सही या गलत तरीके से, इसे बड़े पैमाने पर एकल-कंपनी उत्पाद के रूप में भी देखा गया था, जहां C ++ किसी को भी और सभी को लागू करने के लिए स्वतंत्र रूप से उपलब्ध था।
इन सभी ने C ++ को बहुत जल्दी अपना लिया, क्योंकि इसने "क्रिटिकल मास" को काफी जल्दी प्राप्त कर लिया, इसलिए (अन्य बातों के अलावा) यह बहुत सारी परियोजनाओं के लिए स्पष्ट पसंद बन गया, क्योंकि यह पहले से ही एक व्यापक रूप से इस्तेमाल किया जाने वाला, प्रसिद्ध था मात्रा।
ऑब्जेक्टिव-सी उस बिंदु तक कभी नहीं पहुंचा। वास्तव में, यह अस्पष्टता में लुप्त होने की ओर था जब एप्पल ने इसे अपने सिस्टम के लिए विकसित करने की इच्छा रखने वाले किसी व्यक्ति पर मजबूर कर दिया। Apple का बाजार हिस्सा इतना बड़ा नहीं है कि वास्तव में इसे महत्वपूर्ण जन दिया जा सके, हालांकि - सिर्फ एक बड़ा आला। यह केवल "डिफ़ॉल्ट" विकल्प है जहां / क्योंकि Apple ऐसा करता है।
मैं यह भी कहना चाहता हूं कि कम से कम मेरी राय में, Objective-C की स्मालटाक जैसी ऑब्जेक्ट मॉडल का मतलब है कि वास्तव में यह C ++ की तुलना में जावा के लिए एक सीधा प्रतियोगी है। हां, इसमें अभी भी C अंडरपिनिंग्स है, और हाँ आप अभी भी एक अलग भाषा का उपयोग किए बिना निम्न-स्तरीय कोड लिख सकते हैं - लेकिन शुद्ध C और वास्तविक उद्देश्य-सी पर्याप्त भिन्न हैं कि यह एक ही भाषा की तरह दो पूरी तरह से भिन्न भाषाओं से कम है दोनों को एक ही कंपाइलर द्वारा संभाला जाए (हालांकि यह आसान है कि दोनों एक दूसरे से बिना जेएनआई की तरह बात कर सकते हैं)।