2009-02-15 15 views
7

मैं पिछले 4-5 सालों से सी ++ पर काम कर रहा हूं। हाल ही में मैंने आईफोन और मैकबुक खरीदा है और आईफोन के लिए कुछ प्रोग्रामिंग करना चाहता हूं।अध्ययन उद्देश्य-सी, रूबी या पायथन?

इसलिए मैंने उद्देश्य-सी के बारे में एक पुस्तक पढ़ना शुरू कर दिया है। मैंने यह भी सीखा है कि हम मैक पर रूबी और पायथन के साथ प्रोग्राम कर सकते हैं।

तो मेरा प्रश्न यह है कि कौन सा अध्ययन करना है? आप कौन सी भाषा भविष्य को देखते हैं ???

क्या हम अन्य भाषाओं पर इन भाषाओं के साथ प्रोग्राम कर सकते हैं? या ये केवल मैक पर ही सीमित हैं?

मैं केवल उद्देश्य में शुरुआत करने वाला हूं- सी। कुछ विशेषज्ञ विचारों को जाने का तरीका।

एसी

+5

कोई भी भाषा "भविष्य" नहीं है, और प्रश्न चिह्नों के अतिरिक्त क्या है ??? – womble

+0

ठीक है एक प्रश्न चिह्न। लेकिन क्यों -2 वोट? क्या यह अमान्य सवाल है? – anand

+4

यह अमान्य नहीं है।इसे शायद "व्यक्तिपरक" के रूप में टैग किया जाना चाहिए। और आपका व्याकरण और वाक्यविन्यास पोस्ट को पढ़ने के लिए परेशान करता है। पूरे व्याकरण का उपयोग करके, और "आप" की जगह "यू" जैसी चीजों से परहेज करते हुए, आपको अधिक बुद्धिमान दिखता है और लोगों को आपके प्रश्नों के उत्तर देने के लिए और अधिक तैयार करता है। –

उत्तर

8

मैं सभी भाषाओं सी ++, रूबी, पायथन और उद्देश्य-सी का उपयोग करता हूं। मैं प्रत्येक को अलग-अलग तरीकों से पसंद करता हूं। यदि आप मैक और आईफोन विकास में दूसरों के रूप में जाना चाहते हैं तो मैं उद्देश्य-सी की अनुशंसा करता हूं।

उल्लेख नहीं किए गए लाभों में से एक यह है कि उद्देश्य-सी सी (सी ++ लगभग एक सुपरसेट है) का उचित सुपरसेट है, जिसका अर्थ है कि आप अपने सभी सी प्रोग्रामिंग ज्ञान को सी ++ को ऑब्जेक्टिव-सी प्रोग्रामिंग में ला सकते हैं। वास्तव में आप उद्देश्य-सी कोड में सी ++ कोड में भी मिश्रण कर सकते हैं।

आप पाइथन और रूबी में एक निर्बाध तरीके से ऐसा नहीं कर सकते हैं। इसका कारण यह है कि आप यह कर सकते हैं कि उद्देश्य-सी वास्तव में एक बहुत ही सरल भाषा है।

[rectangle setX: 10 y: 10 width: 20 height: 20]; 

और यह इस करने के लिए परिवर्तित संकलन से पहले:

objc_msgSend(rectangle, "setX:y:width:height:", 10, 10, 20, 20); 
कि रूबी, अजगर और उद्देश्य से

अलावा

मूल रूप से यह एक कस्टम मेड पूर्वप्रक्रमक जो इस तरह के बयानों ले लिया साथ सी बस था -सी कम से कम सी ++ की तुलना में उनके ऑब्जेक्ट मॉडल में बहुत समान हैं। संकलन समय पर सी ++ वर्गों में बनाए जाते हैं। उद्देश्य-सी में, रुबी और पायथन कक्षाएं रनटाइम पर बनाई गई चीजें हैं।

मैं पर why Obj-C is cool here

4

एक Perlite रूप में, मैं सिर्फ इतना है कि ओएस एक्स पर्ल के साथ-साथ पायथन या रूबी है इंगित करने के लिए जा रहा हूँ।

जहां तक ​​पर्ल/पायथन/रूबी चला जाता है, कार्यक्रम लगभग पूरी तरह से क्रॉस-प्लेटफ़ॉर्म होते हैं। किसी प्लेटफ़ॉर्म पर पर्ल/पायथन/रूबी प्रोग्राम चलाने के लिए यह काफी आसान है और यह उतना ही कम काम करता है। कुछ मामूली मतभेद हो सकते हैं, लेकिन वे प्रमुख नहीं हैं।

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

जिसके लिए "भविष्य" की भाषा है, भविष्य में सभी 3 (या 4) भाषाओं का व्यापक रूप से उपयोग किया जाएगा। कोई भी वास्तव में इस तरह की चीज़ की भविष्यवाणी नहीं कर सकता है, और कोई भी भाषा वास्तव में मरने जा रही है (जब तक ऐप्पल मैक प्रोग्राम बनाने के लिए "मानक" के रूप में एक नई भाषा में स्विच नहीं करता), तो आप किसी भी के साथ बहुत सुरक्षित रहेंगे उन्हें।

मेरी सलाह: उन सभी को आजमाएं और देखें कि आप कौन सी सोचते हैं कि आपकी शैली सबसे अधिक उपयुक्त है, और उसे सीखें।

+0

SO क्या डेस्कटॉप एप्लिकेशन को पर्ल/रूबी/पायथन के साथ विकसित करना संभव है जैसे हम सी ++ में कर सकते हैं? या क्या केवल वेब भाषाएं हैं? – anand

+0

किसी भी भाषा की तरह पर्ल/पायथन/रूबी के साथ डेस्कटॉप एप्लिकेशन विकसित करना संभव है। कम से कम, पर्ल और पायथन मुझे पता है। मुझे रूबी पर यकीन नहीं है, लेकिन यह संभव है। कुछ भी "केवल" एक वेब भाषा नहीं है (ठीक है, शायद PHP)। –

+0

@Chris http://gtk.php.net/ = पी –

10

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

2

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

यदि आप मैक पर ऐप्स लिखना चाहते हैं, तो मैं उद्देश्य-सी के साथ शुरू करूंगा। अधिक समर्थन उपलब्ध है।

भविष्य के संदर्भ में, ऐसा लगता है कि फिलहाल बहुत सारे लोग रूबी बैंडवैगन पर कूद रहे हैं। सौभाग्य।

+0

ऐसा लगता है कि आप बैंडवैगन पर –

7

उद्देश्य-सी एक आईफोन प्रोग्राम करने का एकमात्र तरीका है यदि आप ऐप स्टोर में बेचे जाने वाले देशी कार्यक्रमों का उत्पादन करना चाहते हैं।

उद्देश्य-सी में कुछ और उन्नत अवधारणाओं को अब सी # जैसी भाषाओं में जोड़ा जा रहा है (उदाहरण: सी # v3.0 में विस्तार विधियां)। उद्देश्य-सी में सोचने के लिए सीखना उपयोगी होगा, आपके द्वारा सीखने वाले ओओ मॉडल आपके सी ++ अनुभव के अतिरिक्त अन्य भाषाओं और वातावरण पर लागू होंगे।

रूबी का ऑब्जेक्ट मॉडल पाइथन की तुलना में उद्देश्य-सी के करीब है, इसलिए मैं रूबी सीखने का सुझाव देता हूं लेकिन जब तक कि आपके उद्देश्य-सी कौशल को ठोस रूप से नीचे न किया जाए।

ध्यान दें कि आप अपनी फ़ाइलों पर .mm प्रत्यय होने से ऑब्जेक्टिव-सी का उपयोग कर सकते ++ और सभी लेकिन अपने जीयूआई कोड के लिए C++ का उपयोग करें - यह दोनों iPhone और मैक पर काम करता है। आपके सी ++ अनुभव को देखते हुए, जो आपको उत्पादक बनने में मदद करता है।

यदि आप आईफोन प्रोग्राम करना चाहते हैं, तो नए उद्देश्य-सी 2.0 मेमोरी प्रबंधन को सीखने से परेशान न हों, लेकिन आप अभी भी प्रॉपर्टी मॉडल का उपयोग कर सकते हैं (आईफोन प्रभावी रूप से उद्देश्य-सी 2.0 रनटाइम का सबसेट है)।

2

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

3

के रूप में दूसरों के द्वारा उल्लेख किया गया है, यदि आप कार्यक्रम iPhone चाहते हैं, ऑब्जेक्टिव-सी जाने का रास्ता है।

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

पायथन और रूबी दूसरी ओर प्लेटफार्मों (दोनों Windows और कई यूनिक्स बोलियों सहित) की एक बड़ी संख्या में उपलब्ध हैं। व्यक्तिगत रूप से, मैं पाइथन पसंद करता हूं, लेकिन मैं कहूंगा कि दोनों भाषाएं बहुत उपयोगी हैं और दृष्टिकोण के लिए बहुत आसान हैं।

ध्यान दें कि Python और Ruby दोनों में उद्देश्य-सी पुल उपलब्ध हैं, जो आपको उन भाषाओं में से किसी भी फैंसी कोकोका अनुप्रयोगों को लिखने की अनुमति देता है।

7

कौन सी भाषा तुम लोग भविष्य देख ??? क्या की

भविष्य? आईफोन विकास? उद्देश्य सी।

वेब सेवाएं? थोड़ी देर के लिए समानांतर में पायथन/रूबी। कम से कम जब तक लोग बड़े रूबी अनुप्रयोगों पर रखरखाव करने की कोशिश करना शुरू नहीं करते हैं और इसकी अस्पष्टता से निराश हो जाते हैं।

रीयल-टाइम गेम इंजन विकास? एम्बेडेड अनुप्रयोग? क्या भविष्य?

"क्या हम इन प्लेटफार्मों पर इन भाषाओं के साथ प्रोग्राम कर सकते हैं? या ये केवल मैक पर सीमित हैं?"

रूबी और पायथन: हाँ। इन्हें किसी भी मंच पर चलाने के लिए डिज़ाइन किया गया है जो सी

उद्देश्य-सी: हां का समर्थन करता है। यह खुला स्रोत है, यह जीसीसी में है, यह लगभग कहीं भी काम करना चाहिए।

एक नई भाषा सीखना शून्य-योग गेम नहीं है। आप एक से अधिक भाषा सीख सकते हैं; सीखना उद्देश्य-सी अब आपको भविष्य में पायथन या रूबी सीखने से नहीं रोकता है।

+2

PHP वेब सेवाओं के लिए बहुत अच्छी तरह से काम करते हैं, इसलिए आप वेब सेवा के लिए केवल पायथन या रूबी नहीं कह सकते हैं। –

+0

प्रश्न विशेष रूप से पायथन, उद्देश्य-सी, और रूबी सूचीबद्ध है। प्रश्न में PHP का उल्लेख नहीं किया गया। –

1

उद्देश्य-सी केवल मैक/आईफोन है, और मैं आपको यह जानने की सलाह देता हूं कि क्या आप मैक/आईफोन के लिए एप्लिकेशन विकसित करना चाहते हैं। पायथन सबकुछ है और यह भविष्य है, लेकिन वेब विकास के लिए पाइथन अधिक बेहतर है। पायथन Google है :) पायथन वेब, गेम, विज्ञान, ग्राफिक्स, डेस्कटॉप इत्यादि है। यदि आप सी/सी ++ डेवलपर हैं तो यह भी बहुत अच्छा विकल्प है।

सुनिश्चित नहीं है कि मैं आपको रूबी सीखने की सलाह दे सकता हूं ...

2

रूबी कुछ सामान लिखा था। रुबी के साथ आप मैक्रूबी प्रोजेक्ट के साथ मैक/आईफोन प्लेटफॉर्म पर वेब विकास (रेल/सिनात्रा/आदि) और जल्द ही कार्यक्रम दोनों करने में सक्षम होंगे। दोनों दुनिया के सर्वश्रेष्ठ क्यों नहीं मिलता?

टॉमी

+0

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

2

बस मेरे दो सेंट ... जैसा कि मुझे यकीन है कि आप जानते हैं, एप्पल और संबंधित समुदायों में अन्य लोगों के रूबी और पायथन के साथ बहुत काम कर रहे हैं कर रहे हैं दोनों मैक और iPhone के विकास के लिए, कर रहा हूँ । उद्देश्य-सी आपको इन दिनों केवल ऐप्पल एरिना में ले जाएगा (हालांकि शायद यह एक बुरी चीज नहीं है;) हालांकि, अगर आप केवल भविष्य में एक भाषा सीखने जा रहे हैं, तो इस बारे में सोचें कि आप इसका उपयोग कहां करेंगे, और किस लिए। यदि आप पूरी तरह से मैक डेस्कटॉप और आईफोन से परे देख रहे हैं तो रुबी और पायथन आपको बहुत आगे ले जाएंगे।

2

मैंने रूबी में छोटे गेम, दुभाषिया और बहुत ही भयानक चीजें लिखी हैं। उदाहरण के लिए मैं गहन एआई प्रोग्राम लिखने की सिफारिश नहीं करता हूं, लेकिन अधिकांश अनुप्रयोगों के लिए सीखना और शक्तिशाली होना मजेदार है। यहां तक ​​कि जब मैं सी ++ रूबी में अपना अधिकांश काम करता हूं तो भी व्यक्तिपरक कारणों के लिए मेरी पसंदीदा भाषा है।

उद्देश्य सी ने अधिकांश लोगों के रूप में कहा है कि आईफोन विकास में जरूरी है, और मजेदार है यदि आप भाषा सीखने के लिए उत्साहित हैं।

मैंने पायथन की कोशिश नहीं की है, लेकिन मैं इसके बारे में अच्छी चीजों के अलावा कुछ भी नहीं सुनता, और PyGames काफी लोकप्रिय है।

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

चीयर्स!