2009-05-17 10 views
22

मुझे उद्देश्य-सी नहीं पता लेकिन मेरे लिए यह एक अच्छी भाषा दिखाई देता है। लेकिन एकमात्र संदर्भ जिसे मैं जानता हूं वह सब कुछ ऐप्पल है। लेकिन उद्देश्य-सी भी जीएनयू कंपाइलर संग्रह में है।उद्देश्य-सी केवल मैक ओएस/आईफोन पर विकास के लिए उपयोग किया जाता है?

क्या खुले लोगों में कुछ याद आ रही है? या उद्देश्य उद्देश्य सी के लिए पहले से ही एक व्यापक आधार है? मुझे दिलचस्पी है अगर ऐसी कंपनियां हैं जिन्होंने अपने उत्पादों को विकसित करने के लिए उद्देश्य-सी चुना है।

उत्तर

36

मुझे लगता है कि ओबीजेसी इतिहास के एक कर्कश और मालिकाना प्रणाली की प्रकृति के माध्यम से ऐप्पल दुनिया को अलग कर दिया गया है।

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

नेक्स्ट ने ओब्जेसी के शीर्ष पर इस संपूर्ण ढांचे को नेक्स्टस्टेप कहा जाता है। चूंकि नेक्स्ट कंप्यूटर व्यापक व्यावसायिक सफलता नहीं था, और नेक्स्टस्टेप स्वामित्व था, बहुत से लोगों ने ढांचे या अंतर्निहित भाषा को नहीं सीखा। जब ऐप्पल ने इसे खरीदा, और इसे कोको में बदल दिया, तो यह एक मालिकाना प्रणाली बना रहा।

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

असल में, लोगों को यूनिक्स से सी पता था, और सी ++ सी के संदर्भ में समझ में आता है, और जावा सी ++ के संदर्भ में समझ में आता है, और सी # बस जावा को साफ कर दिया गया है। ओबीजेसी इनमें से कोई नहीं है। यह स्मॉलटाक है, और कोई भी अब स्मॉलटाक नहीं सीखता है।

* मैंने हाल ही में उस व्यक्ति से बात की जिसने +alloc को अपने इतिहास के बारे में लिखा था, और वह ज़ोनों को शामिल करने के लिए इसे एक साधारण रैपर कहने पर ऑब्जेक्ट कर सकता है। तो आपके लिए जो अंतर जानते हैं, को +new के साथ यहां बदलें।

+1

अंतर्दृष्टि के लिए धन्यवाद। मैं इसे सीखना चाहता हूं क्योंकि यह छोटा सा है जिसे मैं –

+3

आह से प्यार करता हूं, तो आप कोको प्रकृति के लिए पहले से ही आधे रास्ते हैं। अगर हमारे उद्योग को स्मॉलटाक में हमने जो आधा सबक सीखा, उसे याद किया, तो हम आज से दो गुना आगे बढ़ेंगे। मेरे पास उत्कृष्ट स्कूलों से नए खनन कंप्यूटर विज्ञान स्नातकों से भरा एक टीम है, और मुझे अभी भी मॉडल-व्यू-कंट्रोलर की मूल बातें सिखाने और फिर से पढ़ाना है। –

16

वैसे, जीएनयूएसटीपी ढांचा भी है जो कुछ लोग अभी भी विकसित होते हैं। मुझे नहीं पता कि समुदाय कितना सक्रिय है, हालांकि।

लेकिन अधिकांश भाग के लिए उद्देश्य-सी अब एक ऐप्पल भाषा है, जैसा कि इस तथ्य से सचित्र है कि भाषा का "2.0" संस्करण ओएसएक्स 10.5 के हिस्से के रूप में लॉन्च किया गया था और ऐसा लगता है कि यह पूरी तरह से घर के विकास में है ऐप्पल में प्रयास

संपादित करें: जैसा कि आप शायद जानते हैं, ऐप्पल को कोको फ्रेमवर्क कहा जाता है, जो मूल रूप से उद्देश्य-सी के लिए पुस्तकालयों के पूरे ढेर को संदर्भित करता है, जिसमें एनएसओब्जेक्ट आम बेसक्लास शामिल है। कोको ने नेस्टस्टेप लाइब्रेरी की निरंतरता है, जिसे जीएनयूएसटीपी ओपन-सोर्स संस्करण है। तो आपको दोनों जगहों पर एनएस-प्रीफिक्स्ड कक्षाएं मिलेंगी, लेकिन ऐप्पल ने नई कक्षाओं को जोड़ने या कोको में बदलने में वापस नहीं रखा है, इसलिए जीयूआई स्तर पर अंतःक्रियाशीलता वास्तव में केवल सैद्धांतिक संभावना है।

+0

6 सेकंड से GNUstep के साथ मुझे मारो! – Zifre

+0

मुझे नहीं पता कि अभी भी जीएनयूएसटीपी विकास है या नहीं, लेकिन कुछ समय पहले मुझे वेब पर ईटोइल ओएस मिला जो सक्रिय है। मेरा सवाल सिर्फ अलग था।मैं प्रश्न –

+1

को समायोजित कर दूंगा मूल रूप से इसे ब्रैड कॉक्स और टॉम लव द्वारा विकसित किया गया था, हालांकि विकिपीडिया इसे ऐप्पल के रूप में उद्धृत करता है (http://en.wikipedia.org/wiki/Objective-C), क्योंकि इसे लाइसेंस प्राप्त था मूल रूप से नेक्स्ट द्वारा और फिर ऐप्पल –

4

GNUstepÉtoilé भी है जो जीएनयूस्टेप के साथ बनाया गया ओएस है।

मुझे लगता है कि सी या सी ++ की तरह कई लोग बेहतर हैं, और यदि वे एक और आधुनिक भाषा चाहते हैं, तो वे सी # या जावा का उपयोग करेंगे।

+3

मुझे लगता है कि विपरीत उद्धरण। आप उद्देश्य-सी के साथ सिस्टम स्तरीय विकास कर सकते हैं और इसमें एक आधुनिक भाग को एकीकृत कर सकते हैं। मेरे लिए यह वास्तव में शक्तिशाली दिखाई देता है –

+1

आपको क्यों लगता है कि एटोइल एक ओएस है। मुझे केवल डेस्कटॉप वातावरण के रूप में पता है –

+0

@ नोर्बर्ट हार्टल: यह डेस्कटॉप वातावरण (जैसे गनोम या केडीई) से अधिक है, लेकिन वेब पता स्वयं भी कहता है कि यह एक ओएस है। – Zifre

1

मुझे लगता है कि ऐप्पल कार्यान्वयन केवल बेहतर समर्थित है और अभी भी सक्रिय विकास में है। GNUStep जैसे कुछ अन्य स्थान हैं, लेकिन वे अभी भी नेक्स्टस्टेप/ओपनस्टेप स्तर पर बहुत अधिक दिखने लगते हैं। दुर्भाग्यवश तब से बहुत कुछ हुआ है!

6

जीएनयूस्टेप वास्तव में अधिकतर लोगों के विचार से अधिक सक्रिय है, और यह देखने के लिए बहुत मूल्यवान है।

http://www.gnu.org/software/gnustep/information/aboutGNUstep.html: यह क्षुधा है कि GNUstep और कोको में काम (पर OSX, जीत, लिनक्स, BSD संभावित अर्थ ...)

ये लिंक निश्चित रूप से विषय में रुचि किसी के लिए बाहर की जाँच के लायक हैं बनाने के लिए मुश्किल नहीं है

http://etoileos.com/news/

http://www.nongnu.org/gap/

तो फिर वहाँ Cocotron, एक "ओपन सोर्स प्रोजेक्ट है जो एक पार मंच ऑब्जेक्टिव-सी एपीआई लागू करने के लिए करना है द्वारा एप्पल इंक का कोको प्रलेखन "वर्णित के समान:

http://www.cocotron.org/

संपादित करें: एक वाणिज्यिक पार मंच GNUstep के साथ बनाया गया उत्पाद का एक उदाहरण के लिए, Eggplant की जाँच करें।

0

मोनो टीम आईफोन विकास के साथ कुछ कर रही है जो आईफोन ऐप्स को .NET में लिखने और मोनो .NET कंपाइलर के साथ संकलित करने की अनुमति देती है। इसे http://www.mono-project.com/Mono:Iphone

नवीनतम .NET Rocks podcast में Rory Blythe उद्देश्य सी और आईफोन विकास में किए जा रहे सामानों के बारे में बात कर रहा है।

10

@ स्टीफन: मैं लगातार इस बात से हैरान हूं कि लोग हमारी वेबसाइट कभी नहीं पढ़ते हैं या इस तरह की चीजें कहने से पहले परियोजना की प्रगति की जांच भी करते हैं। :) जीएनयूस्टेप अब कोको को बारीकी से चलाता है और हम इस बिंदु पर ओपनस्टेप से बहुत अधिक हैं। यदि आप, या अन्य, इस विषय पर वास्तविक राय चाहते हैं तो एसवीएन से जीएनयूस्टेप प्राप्त करें, इसे इंस्टॉल करें और इसे आजमाएं। किसी चीज के बारे में पोंटिफिकेशन जिसके बारे में आप कुछ भी नहीं जानते (जैसा कि आपकी प्रतिक्रिया द्वारा दिखाया गया है) व्यर्थ है।

ग्रेग सी GNUstep लीड डेवलपर

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^