स्मॉलटॉक एक अविश्वसनीय रूप से कॉम्पैक्ट भाषा है और यह सबसे शुद्ध ऑब्जेक्ट उन्मुख भाषाओं में से एक है। उद्देश्य-सी स्मॉलटॉक और सी के बीच एक व्यावहारिक समझौता है, जो कुछ बहुत ही महत्वपूर्ण अंतर बनाता है। उदाहरण के लिए, स्मॉलटॉक में सबकुछ एक वस्तु है - यहां तक कि सरल संख्याएं - और किसी ऑब्जेक्ट का प्रत्येक हेरफेर संदेश भेजने से होता है। उनके नाम के बावजूद संदेशों को उसी क्रम में मूल्यांकन किया जाता है। तो उदा। निम्नलिखित:
8 + 9/23 + 16 * 8
सख्त बाएँ से सही क्रम में मूल्यांकन किया जाता है क्योंकि ऑपरेटरों '+', '/' और '*' सिर्फ संदेशों उस नंबर को भेजी जाती हैं किया जा रहा है भाषा के लिए कोई विशेष अर्थ नहीं वस्तुओं।
उद्देश्य-सी छोटी सी स्टाइल ऑब्जेक्ट्स को सी में जोड़ता है लेकिन सी का एक सख्त सुपरसेट भी है जो सी के आदिम प्रकारों और अंतर्निर्मित ऑपरेटरों को बनाए रखता है। तो उद्देश्य-सी में संचालन के सामान्य गणितीय क्रम को उपरोक्त अभिव्यक्ति पर लागू किया जाएगा - विभाजन और गुणा पहले किया जाएगा, इसके बाद के संस्करण।
सीखना सी उद्देश्य-सी की पूरी तरह से समझने के लिए बिल्कुल जरूरी है। उद्देश्य-सी सी का एक सख्त सुपरसेट है और जहां तक वे जाते हैं, वही वाक्यविन्यास और अर्थशास्त्र का स्पष्ट रूप से उपयोग करता है। यह किसी चीज को किसी भी ऑपरेशन को लागू करने के तरीके के बिना किसी चीज़ को पॉइंटर बनाए रखने की क्षमता के कारण सी पर ऑब्जेक्ट्स की अवधारणा को ग्राफ्ट करता है। इसके बाद यह वस्तुओं को संदेश पोस्ट करने और किसी ऑब्जेक्ट को प्राप्त संदेशों को घोषित करने और कार्यान्वित करने के साधन प्रदान करने के लिए सी सिंटैक्स को बढ़ाता है।
उद्देश्य-सी रनटाइम का बहुत सामान्य डिज़ाइन, विशेष रूप से जब कोको के साथ मिलकर, चयनकर्ता की अवधारणा समेत स्मॉलटाक से आता है, वर्गों के उदाहरणों के लिए कारखानों के रूप में मेटाक्लास के उपयोग, पदानुक्रम और प्रणाली विरासत का, मॉडल-व्यू-कंट्रोलर का विभाजन (एक स्मॉलटाक मूल, यद्यपि अब लगभग सर्वव्यापी) और मानक संग्रह और वस्तुओं पर परिभाषित कई संदेश।
मेरे सिर के ऊपर से, स्मॉलटाक भी प्रवाह नियंत्रण प्रणाली में बहुत अलग है और इसमें 'ब्लॉक' का एक समान लेकिन संक्षेप में अलग विचार है (हालांकि अधिकांश नए कार्यान्वयन ने दोनों को लाइन में लाया है)। ऐप्पल ने वास्तव में सी स्तर पर एक विस्तार के रूप में ब्लॉक लागू किए हैं जिसका उपयोग उद्देश्य-सी वस्तुओं पर कई नए तरीकों से किया जाता है।
यह सब कहा जा रहा है कि गोल्डबर्ग स्मॉलटॉक -80 पुस्तक बेहद अच्छी तरह से लिखी गई है, पढ़ने में आसान है और भाषा इतनी सरल है कि आप पूरी भाषा को केवल दो या तीन अध्यायों में सीख सकते हैं। अधिकतर जटिलता रनटाइम में उपलब्ध वस्तुओं द्वारा निगलती है, और जाहिर है कि सामान स्थानांतरित नहीं होता है। आपके लिए लाभ यह है कि ऑब्जेक्ट्स और रनटाइम्स के बारे में वैचारिक सामान प्रिंट में विनिर्देशों से बहुत अलग हो जाता है। इसके विपरीत, सी प्रवाह नियंत्रण और अंकगणित भाषा की सुविधा जैसी चीजें बनाता है, जिसका अर्थ है कि अधिक वाक्यविन्यास और इससे पहले कि आप वास्तव में महसूस कर सकें कि क्या हो रहा है।
तो, निष्कर्ष में: स्मॉलटॉक -80 पुस्तक (बैंगनी एक) निश्चित रूप से एक पढ़ने योग्य और बेहद उपयोगी है लेकिन आवश्यक रूप से पूरी तरह से प्रासंगिक नहीं है। सीखना सी किसी भी मामले में आवश्यक है; के & आर के लिए मेरे संदर्भ तुलना के लिए हैं।
मुझे स्मॉलटाक नहीं पता है, इसलिए मैं वास्तव में ऐसा उत्तर देने के लिए योग्य महसूस नहीं करता हूं जो इस उद्देश्य के लिए वाउच करता है कि यह उद्देश्य-सी डेवलपर की कितनी मदद कर सकता है या नहीं। ऐसा कहा जा रहा है, मुझे लगता है कि यह इंगित करने लायक है कि ** यह दो अलग-अलग भाषाओं को एक साथ सीखने की बजाय सामान्य रूप से ऑब्जेक्ट उन्मुख प्रोग्रामिंग अवधारणाओं के साथ सहज बनने के लिए * अधिक * उपयोगी होगा। ** –
मुझे आश्चर्य है कि उपयोग कैसे करें ओबीजे-सी पहले सी सीखने के बिना ... क्योंकि यह ओब्जे-सी का हिस्सा है। – Vovanium