2012-04-12 16 views
8

पर देशी सी ++ क्यूटी का उपयोग करने का क्या फायदा है मैं क्यूटी में विकसित करना चाहता हूं, और मुझे पहले से ही पायथन पता है। मैं सी ++ सीख रहा हूं, तो पाइथन पर सी ++ में प्रोग्रामिंग क्यूटी के फायदे क्या हैं? सी ++ अधिक जटिल लगता है, और ऐसा लगता है कि बहुत अधिक लाभ नहीं है।पीईक्यूटी

+6

इसी कारण से आप सामान्य रूप से पायथन पर सी ++ का उपयोग करेंगे ... – Anthony

+0

क्या आप उम्मीद करते हैं कि आपके उपयोगकर्ता एकाधिक प्लेटफ़ॉर्म या एकल पर हों? – Danish

उत्तर

7

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

+0

मैं शायद py2exe जैसे कुछ निष्पादन योग्य संकलित करता हूं। – Orcris

+0

वाह, क्या आपने पीईक्यूटी के लिए कोशिश की है? (मैंने नहीं किया है।) परिणामी निष्पादन योग्य बहुत बड़ा होने जा रहे हैं। –

+9

बहुत विशाल परिभाषित करें। 1 99 5 में 10 एमबी ओवरहेड "विशाल" हो सकता है लेकिन आज यह हास्यास्पद है। आज, ऐप वितरण स्टैंडपॉइंट से, एक पीईक्यूटी (या पायसाइड) ऐप को मूल के रूप में, या उस मामले के लिए कोई पायथन ऐप तैनात करना उतना ही आसान है। – astevanovic

0

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

मुझे सी ++ पसंद है लेकिन इन दिनों, अधिकांश परियोजनाओं के लिए, मैं जावा पर नहीं होने पर ज्यादातर पाइथन पर जाता हूं। हालांकि, अगर मैं एक गेम या ग्राफिक्स एप्लिकेशन लिख रहा हूं, तो मैं सी ++ पर विचार कर सकता हूं।

+1

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

+0

दिलचस्प, इसे साझा करने के लिए धन्यवाद। मुझे लगता है कि मैंने कई प्लेटफार्मों पर एक ही सी ++ प्रोग्राम बनाने की कोशिश करने का दर्द पाइथन और पीईक्यूटी स्थापित करने से * अधिक * होगा। लेकिन यदि सभी उपयोगकर्ता एक मंच पर होंगे, तो सी ++ निश्चित रूप से बहुत बेहतर लगता है। – Danish

+0

सच है। यह शायद आपके कार्यक्रम का उपयोग कर लोगों की संख्या के साथ भी स्केल करता है। जितना अधिक लोगों को आपको सेवा करने की आवश्यकता है, उतना ही आप चाहेंगे कि आप उन्हें सभी बाइनरी दे सकें जिनके लिए कोई इंस्टॉलेशन की आवश्यकता नहीं है। यदि आप केवल उन लोगों को प्रोग्राम वितरित करते हैं जिन्हें शायद ही कभी सर्विस की आवश्यकता होती है, तो पाइथन का देव समय बोनस शायद प्रभावी है। – ely

15

PyQt

गति/शक्ति/नियंत्रण अपने हाथ में देशी सी ++ क्यूटी का उपयोग कर के लाभ क्या है।

पीईक्यूटी आवेदन को अभी भी अजगर की आवश्यकता होगी। सी ++/क्यूटी अनुप्रयोग देशी exe के लिए संकलित करता है। सी ++ का उपयोग करके आपको तीसरे पक्ष के पुस्तकालयों तक पहुंच प्राप्त होगी जो कि पायथन में उपलब्ध नहीं होंगे, साथ ही आप "मध्य व्यक्ति" - परत जो आपके प्रोग्राम और क्यूटी डीएलएस के बीच बैठे हैं और संभावित रूप से आप बेहतर प्रदर्शन प्राप्त कर सकते हैं। उदाहरण के लिए, मैं अजगर में एक संग्रहक या एमपी 3 डिकंप्रेसर नहीं लिखूंगा, हालांकि यह निश्चित रूप से किया जा सकता है।

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

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

कृपया ध्यान दें कि भाषा एक उपकरण है। यदि आप अपनी भाषा का उपयोग केवल इसलिए चाहते हैं क्योंकि आप भाषा पसंद करते हैं, तो आप कुशलता से काम नहीं कर रहे हैं।

--EDIT--

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

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

अंत में यह सबसे उपयुक्त टूल के चयन के लिए नीचे आता है - यदि सी ++ आपको पायथन की तुलना में कोई लाभ नहीं देगा, तो स्विच करने का कोई कारण नहीं है।

+4

अच्छा जवाब, हालांकि मैं यह इंगित करना चाहता हूं कि पाइथन के लिए उपलब्ध मॉड्यूल की मात्रा विशाल है और सी ++ के साथ बड़ी स्वतंत्रता रखने का तर्क काफी बहस योग्य है। कुछ भी गहन प्रदर्शन सी ++ के लिए, बाकी शायद पाइथन IMHO के साथ बेहतर फिट होगा। – astevanovic

+0

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

3

सी ++ मशीन की गति को अनुकूलित करता है।

पायथन प्रोग्रामर की गति को अनुकूलित करता है।

सी ++ अपेक्षाकृत शब्दशः है: प्रति विचार अधिक शब्द व्यक्त किए गए हैं। कीड़े/Lines_of_code मोटे तौर पर एक स्थिर, तो अवगत मामलों है।

सी ++ का मेमोरी प्रबंधन कभी-कभी मैन्युअल होता है, जिसका अर्थ अजीब रनटाइम मुद्दों http://stromberg.dnsalias.org/~strombrg/checking-early.html सेगफाल्ट और मेमोरी लीक समेत हो सकता है। पायथन इसे प्रोग्रामर के हाथों से बाहर ले जाता है और इसे स्वचालित करता है।

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

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