2009-08-18 16 views
6

मैं वर्तमान में एक सी # डेवलपर (चीन में स्नातक की डिग्री के साथ एक वर्ष का कामकाजी अनुभव) हूं, अब एक उद्देश्य सी इंजीनियर के रूप में एक और नौकरी का अवसर है और मुझे उस स्थिति में दिलचस्पी है। लेकिन मुझे क्या परेशान करता है उद्देश्य सी का भविष्य है, क्या यह सी ++, जावा और सी # की छाया में रहने वाली एक मरने वाली भाषा है? या यह चिपकने के लिए एक अच्छी भाषा है? धन्यवाद।उद्देश्य सी का भविष्य?

+1

उद्देश्य-सी, मेरी राय में, एक बहुत ही निराशाजनक भाषा है। मुझे लगता है कि इसे कोको और आईफोन के लिए ऐप्पल के कारण ज्यादातर ज़िंदा रखा गया है। सी # की तुलना में, ओब्जे-सी कर दो कदम पीछे लेना पसंद करेंगे। सभी ईमानदारी से, मैं दूर रहूंगा। –

+2

मैं जावा और पायथन से उद्देश्य सी के लिए आया था, और मुझे यह वाकई पसंद है। मुझे लगता है कि यह मर रहा है, ऐप्पल इसे आईफोन और मैक ओएस एक्स विकास के लिए इसका उपयोग कर जीवित रख रहा है .. ऐसा नहीं है कि वे अचानक भाषा को स्विच करने का फैसला करने जा रहे हैं कि मैक पर बहुत सारे एप्लिकेशन लिखे गए हैं। – mk12

+4

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

उत्तर

12

मैक पर यह निश्चित रूप से जिंदा और लात मार रहा है। आईफोन भी। तो यदि आप उन वातावरण और प्रणालियों पर काम करना पसंद करते हैं तो इसके लिए जाएं।

जहां तक ​​हर जगह यह वास्तव में बहुत ज्यादा पकड़ा नहीं गया है जिसे मैं जानता हूं। यह नहीं कहना कि यह नहीं हो सका। अपेक्षाकृत देर से बहुत सी अच्छी भाषाएं पकड़ती हैं, उदाहरण के लिए एरलांग की तरह, इसलिए मैं उद्देश्य-सी आउट नहीं मानूंगा।

एक नई भाषा सीखने और खुद को खींचने के मूल्य का उल्लेख नहीं करना है।

तो, यदि आप पूछ रहे हैं तो यह मेरी करियर को आगे बढ़ाने में मदद करेगा? तो एक जवाब है कि कुछ नया सीखना शुरुआती प्रोग्रामर को लाभ हो सकता है।

यदि आप पूछ रहे हैं उद्देश्य उद्देश्य सी के साथ अनुभव विपणन योग्य होगा? तो जवाब हाँ है यदि आप ऐप्पल सॉफ्टवेयर की दुनिया में काम करना चाहते हैं।

+4

* एक नई भाषा सीखने और खुद को खींचने के मूल्य के लिए धन्यवाद * –

11

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

यह निश्चित रूप से सी ++, जावा और सी # की छाया में नहीं रह रहा है, खासकर ओएस एक्स पर। (मुझे व्यक्तिगत रूप से लगता है कि उद्देश्य-सी सी ++, जावा और सी # की तुलना में एक बेहतर भाषा है, लेकिन यह मेरी राय है।) यह उन भाषाओं की तुलना में एक अलग अनुभव है (कम से कम अपने गतिशील, स्थिर, प्रकृति के बजाय), लेकिन यह वास्तव में उनकी छाया में नहीं रह रहा है।

यदि आप मैक या आईफोन के लिए विकसित करना चाहते हैं तो सीखना उचित है, लेकिन इसका उपयोग उन प्लेटफार्मों के बाहर व्यापक रूप से नहीं किया जाता है, इसलिए यदि आप विकास की उस पंक्ति में रूचि नहीं रखते हैं, तो मुझे लगता है कि यह इसके लायक नहीं है सीखते हैं।

+2

+1 - "यह निश्चित रूप से सी ++, जावा और सी # की छाया में नहीं रह रहा है।" –

2

एफडब्ल्यूआईडब्ल्यू, उद्देश्य सी सी ++ के समान उम्र के बारे में है और दोनों कुछ वर्षों से जावा और सी # की भविष्यवाणी करते हैं। मैं ईमानदारी से सोचता हूं कि सी ++ और जावा समुदाय उद्देश्य सी आईएमएचओ से बहुत कुछ सीख सकते हैं, नेक्स्टस्टेपी एपीआई जावा लाइब्रेरी की तुलना में बहुत साफ है। वास्तव में फाउंडेशन और एपकिट (et.al.) के साथ उद्देश्य सी में कोड लिखना आपको एमवीसी आर्किटेक्चर की अच्छी प्रशंसा देता है और उन्हें कितनी साफ-साफ लागू किया जा सकता है।

वैसे भी, मुझे लगता है कि उद्देश्य सी जैसी भाषा सीखने के लिए यह काफी मूल्यवान है। shaped languages like Java की अधिक समझ हासिल करने के अलावा अन्य कारणों के लिए।

3

जैसा कि अन्य ने कहा है, उद्देश्य-सी ऐप्पल के प्लेटफार्मों (अर्थात्, ओएस एक्स और आईफोन) पर जिंदा और अच्छी तरह से है।

इसके अतिरिक्त, ऐसा लगता है जैसे उद्देश्य-सी आपको ओओ काम करने का एक नया नया दृष्टिकोण दिखाएगा। सी ++, जावा और सी # के मजबूत टाइपिंग को ध्यान में रखते हुए, उद्देश्य-सी बहुत अलग है, क्योंकि यह वास्तविक गतिशीलता पर बनाया गया है। मुझे व्यक्तिगत रूप से जावा या यहां तक ​​कि सी ++ की तुलना में बहुत अधिक मोर्सो के साथ काम करने में खुशी मिलती है। मैं विशेष रूप से पसंद करता हूं कि प्रतिनिधि प्रणाली कैसे काम करती है, साथ ही उधारित स्मॉलटाक सिंटैक्स।

प्लस, सी का एक सरल सुपरसेट होने के नाते, उद्देश्य-सी सीखना वाकई आसान है।सिंटैक्स को कम करने के लिए इसे केवल कुछ घंटों का समय लेना चाहिए, और वहां से, यह पुस्तकालय के बारे में सीखने के लिए नीचे है (जिसमें अच्छा प्रलेखन है)। इसे सीखते समय, आपको उन पैटर्नों में शामिल न होने की कोशिश करनी चाहिए जिन्हें आप आमतौर पर सूचीबद्ध अन्य भाषाओं के साथ करते हैं, क्योंकि आपको इसके गतिशील टाइपिंग का पूर्ण लाभ नहीं मिलेगा।

2

यह वास्तव में अपने कैरियर दिशा पर निर्भर करता है। जैसा कि अन्य पोस्टर कहते हैं, यदि आप उद्देश्य सी पर स्विच करते हैं तो मुझे लगता है कि आप बहुत कुछ सीखेंगे और शायद रास्ते में कुछ मजेदार (और कुछ दर्द) होगा।

क्योंकि उद्देश्य सी इतना सी के करीब और कुछ हद तक सी ++ के लिए है, तो आप न सिर्फ उद्देश्य सी, लेकिन सी, और सी ++ में और अधिक रोजगार जा रहा है खत्म हो जाएगा।

सी मुख्य रूप से इस तरह के हार्डवेयर उपकरणों के लिए के रूप में निचले स्तर प्रोग्रामिंग के लिए प्रयोग किया जाता है। इसलिए यदि आपके पास हार्डवेयर उपकरणों में विशेष रुचि है तो आप उद्देश्य सी -> सेब कर्नेल डिवाइस ड्राइवर (जो सी हैं), और फिर कोई हार्डवेयर प्रोग्रामिंग नौकरी जा सकते हैं।

तुम सिर्फ खिड़कियों के लिए वेबसाइटों, और बुनियादी डेस्कटॉप क्षुधा बनाने के लिए, के साथ सी # छड़ी चाहते हैं।

+0

क्या आप सीखना चाहते हैं उद्देश्य सी हमें अभी भी सी ++ में काम करने में सक्षम बनाता है अगर हम वापस करना चाहते हैं? –

0

मुझे नहीं लगता कि ऑब्जेक्टिव-सी एक लंबे समय में मर जाएगा, क्योंकि यह मैक ओएस एक्स के मूल में है एप्पल और अधिक आधुनिक भाषाओं के साथ आना चाहिए कि मैं यकीन है कि यह पर बनाया गया एक गतिशील भाषा होगा हूँ मौजूदा सॉफ्टवेयर और घटकों के आसान पुन: उपयोग की अनुमति देने के लिए उद्देश्य-सी रनटाइम। इसका मतलब यह होगा कि शायद प्रदर्शन महत्वपूर्ण भागों के लिए ऑब्जेक्टिव-सी का उपयोग करना जारी रहेगा। जैसे कि पाइथन डेवलपर्स अभी भी सी

में अपने कोड के कुछ हिस्सों को लिखते हैं और क्योंकि ऐप्पल भाषा को नियंत्रित करता है, मुझे लगता है कि यह सी ++ कहने से प्रासंगिक रखने के लिए भाषा में तेज़ी से सुधार की संभावना है।

ऑब्जेक्टिव-सी भविष्य में अन्य प्लेटफार्मों पर अधिक इस्तेमाल किया हो सकता है। यह ओपनस्टेप दिनों में वापस था। लेकिन जब ऐप्पल ने नेक्स्ट खरीदा तो उन्होंने अन्य प्लेटफार्मों पर कोको और ऑब्जेक्टिव-सी उपलब्ध कराने से रोक दिया। कंपाइलर अभी भी हर जगह उपलब्ध है लेकिन ढांचे और रनटाइम नहीं। ओबीजेसी को कहीं और उपलब्ध कराने के बारे में स्टीव जॉब्स की तुलना में नया सीईओ अधिक खुले दिमागी हो सकता है।

+0

चार साल बहुत देर हो चुकी है, है ना? –

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