मुझे लगता है कि ओबीजेसी इतिहास के एक कर्कश और मालिकाना प्रणाली की प्रकृति के माध्यम से ऐप्पल दुनिया को अलग कर दिया गया है।
सबसे पहले, आपको कोको से ओबीजेसी को अलग करने की आवश्यकता है। ओबीजेसी एक बहुत ही प्राचीन भाषा है। मुझे लगता है कि यह एक बहुत ही सुरुचिपूर्ण भाषा है, लेकिन यह बेहद बुनियादी है। आप एक सी प्री-प्रोसेसर में ObjCv1 को कार्यान्वित कर सकते हैं। सी ++ और ओबीजेसी एक ही समय के बारे में विकसित किए गए थे। सी ++ ने सी-जैसे सिंटैक्स को मूल रूप से एक पूरी तरह से अलग भाषा में लाने के लिए बड़ी संख्या में बुनियादी ढांचे को रखा है। ओबीजेसी ने सी के लिए एक स्मॉलटाक-जैसे सिंटैक्स लाया, लगभग कुछ भी नहीं। यहां तक कि +alloc
और -release
जैसी चीजें ओबीजेसी के भाषा तत्व नहीं हैं। वे malloc()
और free()
के आसपास काफी साधारण रैपर हैं। * अपने आप पर खड़े होकर, ओबीजेसी वास्तव में दिलचस्प नहीं है (जैसा कि मुझे लगता है कि सुरुचिपूर्ण है)। यह स्मॉलटाक की प्रकृति के समान ही है। अपने ऑब्जेक्ट लाइब्रेरी के बिना, आप इसके साथ इतना कुछ नहीं कर सकते हैं। अपने ऑब्जेक्ट पुस्तकालयों के साथ, यह अविश्वसनीय रूप से शक्तिशाली है।
नेक्स्ट ने ओब्जेसी के शीर्ष पर इस संपूर्ण ढांचे को नेक्स्टस्टेप कहा जाता है। चूंकि नेक्स्ट कंप्यूटर व्यापक व्यावसायिक सफलता नहीं था, और नेक्स्टस्टेप स्वामित्व था, बहुत से लोगों ने ढांचे या अंतर्निहित भाषा को नहीं सीखा। जब ऐप्पल ने इसे खरीदा, और इसे कोको में बदल दिया, तो यह एक मालिकाना प्रणाली बना रहा।
जीएनयूएसटीपी वहां बाहर है, लेकिन उन्होंने कभी भी बहुत से डेवलपर्स (एक प्रमुख वेब ब्राउज़र या वर्ड प्रोसेसर या इसी तरह) लाने के लिए पर्याप्त रोचक विकसित नहीं किया है। और कोको पिछले कुछ सालों में जीएनयूएसटीपी से काफी आगे हो गया है। यह संभव है कि आईफोन के कारण कोको में रुचि के उदय के साथ, जीएनयूएसटीपी पुनरुत्थान कर सकता है और एक अच्छा क्रॉस-प्लेटफार्म विकास ढांचा ला सकता है, लेकिन मुझे इसमें कोई संदेह है।जिन लोगों में सी ++ में पृष्ठभूमि है, वे सी # देखें और स्पष्ट सुधार देखें। जब वे ओबीजेसी को देखते हैं, तो वे बहुत सारे वर्ग ब्रैकेट देखते हैं जहां वे उनकी अपेक्षा नहीं करते हैं। "कॉलिंग विधियों" प्रतिमान पर उठाए गए लोगों के लिए, "उत्तीर्ण संदेशों" का स्मॉलटाक प्रतिमान विदेशी और यहां तक कि थोड़ा डरावना है। कई डेवलपर्स मानते हैं कि उन्हें बग से बचने के लिए दृढ़ता से टाइप की गई भाषा की आवश्यकता है और वे सिस्टम के साथ असहज हैं जो मुख्य रूप से प्रोग्रामर अनुशासन और सावधानीपूर्वक स्थिरता पर निर्भर करता है। ObjC की तुलना में सी # में "बस काम करता है" कुछ हैक करना बहुत आसान है। ओबीजेसी वास्तव में डेवलपर्स की अपेक्षा करता है कि क्या हो रहा है और आपके हैक्स से आपकी सुरक्षा के लिए कंपाइलर पर भरोसा नहीं कर रहा है।
असल में, लोगों को यूनिक्स से सी पता था, और सी ++ सी के संदर्भ में समझ में आता है, और जावा सी ++ के संदर्भ में समझ में आता है, और सी # बस जावा को साफ कर दिया गया है। ओबीजेसी इनमें से कोई नहीं है। यह स्मॉलटाक है, और कोई भी अब स्मॉलटाक नहीं सीखता है।
* मैंने हाल ही में उस व्यक्ति से बात की जिसने +alloc
को अपने इतिहास के बारे में लिखा था, और वह ज़ोनों को शामिल करने के लिए इसे एक साधारण रैपर कहने पर ऑब्जेक्ट कर सकता है। तो आपके लिए जो अंतर जानते हैं, को +new
के साथ यहां बदलें।
अंतर्दृष्टि के लिए धन्यवाद। मैं इसे सीखना चाहता हूं क्योंकि यह छोटा सा है जिसे मैं –
आह से प्यार करता हूं, तो आप कोको प्रकृति के लिए पहले से ही आधे रास्ते हैं। अगर हमारे उद्योग को स्मॉलटाक में हमने जो आधा सबक सीखा, उसे याद किया, तो हम आज से दो गुना आगे बढ़ेंगे। मेरे पास उत्कृष्ट स्कूलों से नए खनन कंप्यूटर विज्ञान स्नातकों से भरा एक टीम है, और मुझे अभी भी मॉडल-व्यू-कंट्रोलर की मूल बातें सिखाने और फिर से पढ़ाना है। –