2008-10-09 12 views
5

का उपयोग करने के लिए भाषा चुनने में परेशानी हो रही है। मैं लाभ उद्यम के लिए अपना पहला स्वतंत्र शुरुआत कर रहा हूं। मुझे यह तय करने में कठिनाई हो रही है कि किस भाषा का उपयोग करना है। मैं पर्ल में अपना ऐप लिखना चाहता हूं, लेकिन मुझे नहीं लगता कि यह संकलन करने के लिए काफी आसान होगा। अगर मैं इसे पर्ल में नहीं लिखता तो मैं इसे सी ++ में लिखूंगा।नई परियोजना: मुझे

इस एप्लिकेशन में wxwidgets इंटरफ़ेस, एसडीएल, टाइमर, कुछ थ्रेडिंग और ऑडियो प्रोसेसिंग के साथ डील सहित कई सुविधाएं होंगी। कार्यक्रम स्वयं कुछ जटिल होगा, लेकिन बहुत बड़ा नहीं होगा।

तो मेरे सवाल का कर रहे हैं:

  1. बराबर, Perl2exe, या समकक्ष अधिक एक बुनियादी परीक्षण मामलों की तुलना में संकलन कर सकते हैं?
  2. गति, और संकलन एक तरफ पर्ल पर सी ++ का उपयोग क्यों करना चाहिए?

संपादित करें: अपने प्रोजेक्ट विनिर्देशों के कुछ।

  • मल्टी प्लेटफार्म। मैं अपने उपयोगकर्ताओं के 50% या अधिक मैक के मालिक होने की उम्मीद कर रहा हूं, बाकी के अधिकांश विंडोज उपयोगकर्ता हैं। यदि संभव हो तो मैं लिनक्स का भी समर्थन करना चाहता हूं क्योंकि यह मेरी रोजमर्रा की ऑपरेटिंग सिस्टम है।
  • चूंकि यह बहु प्लेटफार्म है, इसलिए मुझे एक एकीकृत जीयूआई निर्माण उपकरण की आवश्यकता है। इसे मूल प्रकारों का उपयोग करने में सक्षम होना चाहिए, और मुझे कस्टम इवेंट हैंडलर और कस्टम जीयूआई ऑब्जेक्ट्स बनाने की अनुमति दें।
  • इसे ऑडियो प्रोसेसिंग की आवश्यकता है। पढ़ें और खेलो, WAV और/या एमपी 3। इसके अलावा मैं ऑडियो फ़ाइलों के विशेष गुणों को निर्धारित करने के लिए कुछ कस्टम एल्गोरिदम का उपयोग करूँगा; टेम्पो, पैटर्न, आदि जैसे चीजें।
  • मुझे पसंद है लेकिन एसडीएल/ओपनजीएल समर्थन की आवश्यकता नहीं है।

बाकी सब कुछ सुंदर है। कुछ अलग वर्ग और कंटेनर। कुछ कस्टम जीयूआई नियंत्रण।

उत्तर

9

क्यों दोनों के संकर का उपयोग नहीं करते? आमतौर पर यह तरीका है कि इन दिनों बहुत सारे विकास चल रहे हैं।

मैं एक लुआ/सी ++ या पायथन/सी ++ कॉम्बो का सुझाव दूंगा (मुझे यकीन नहीं है कि पर्ल/सी ++ कॉम्बो कितना अच्छा काम करता है, लेकिन यह भी एक अच्छा विकल्प हो सकता है)।

व्यक्तिगत रूप से मैंने लुआ/सी ++ कॉम्बो के साथ एक गुच्छा किया है और यह बहुत शानदार है।

+0

दिलचस्प विचार। आपने इस बारे में क्या समझा है? सी ++ पर गति निर्भर और जटिल चीजें निकालें, और इसे अपने लुआ/पायथन कोड में लपेटें? –

+0

हां यह सबसे अच्छा तरीका है। कई बार कई चीजें जो गति निर्भर प्रतीत होती हैं वे वास्तविकता में महत्वपूर्ण नहीं हैं। इसके अलावा यदि आप बहुत सारे गणित कर रहे हैं और बस अपने लुआ कोर को लुआकोको कोर में बदलना चाहते हैं तो लुआ साइड गणित 10 गुना –

+0

मैं पर्ल/सी ++ को एक आसान संयोजन बनाने के लिए एक प्रोजेक्ट पर काम कर रहा हूं। अधिक जानकारी के लिए Google मेरा नाम और पर्ल। –

11

सी ++ के साथ जाएं। टाइमर, थ्रेडिंग, ऑडियो, एसडीएल, wxwidgets, ये सभी चीजें हैं जो पर्ल कर सकते हैं, लेकिन वास्तव में उत्कृष्टता नहीं है। इसके अलावा, PAR या perl2exe वितरण के लिए क्लंकी तंत्र हैं। वे काम करते हैं, लेकिन वे आदर्श नहीं हैं। इस बीच, सी ++ (और मैं आपको Boost का उपयोग करने के लिए अत्यधिक प्रोत्साहित करता हूं) इस भूमिका में अच्छी तरह से फिट होगा।

5

मैंने विंडोज के लिए एक पर्याप्त पर्ल/टीएस प्रोग्राम पैकेज करने के लिए PAR का उपयोग किया है। यह थोड़ा सा झुकाव लिया, लेकिन यह काम किया।

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

4

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

+0

अंतर्दृष्टिपूर्ण टिप्पणी के लिए धन्यवाद। मैं योजना और शोध कर रहा हूं। इस सवाल पर ज्यादातर समय और कई हफ्तों के लिए समर्थक/विपक्ष पर जा रहा है। –

+0

उत्कृष्ट प्रतिक्रिया। मैं, मैं, विश्लेषण पक्षाघात के लिए प्रवण हूं और महत्वपूर्ण बात यह है कि शुरू करना है। – Darrel

11

मैं सी ++ और पर्ल प्रोग्रामर दोनों हूं। सी ++ एक अच्छी भाषा है, लेकिन जब भी मेरे पास विकल्प होता है, तो मैं पर्ल के साथ जाता हूं विकास बस इतना अधिक तेजी से आगे बढ़ता है के बाद से

टिप्पणियों के एक जोड़े:।

  1. बराबर, perlapp, और perl2exe नहीं compilers हैं वे packagers हैं पर्ल खुद को छोड़कर कोई पर्ल संकलक नहीं है, तो आप चाहते हैं।।। पर्ल कोड के बाइटकोड रूप के कुछ रूप, आपको तोते पर पर्ल 6 के लिए इंतजार करना होगा।
  2. मैंने उपयोग किया है डी PAR कुल 500k एसएलओसी के साथ एक आवेदन पैकेज करने के लिए, खुद को perl सहित नहीं। यह ठीक काम करता है, उसी गति को खुद के रूप में चलाता है, लेकिन स्टार्टअप धीमा था। यह 2005 था। तब से, स्टार्टअप प्रदर्शन में उल्लेखनीय सुधार हुआ है यदि आप विकास मशीन पर पुरालेख :: अनजिप :: बर्स्ट मॉड्यूल स्थापित करते हैं जहां आप प्रोग्राम को पैकेज करते हैं। मैंने छोटे से उपरोक्त 500k लाइनों के आकार में भिन्न विभिन्न अनुप्रयोगों के लिए सफलतापूर्वक PAR का उपयोग किया है। अगर आपको PAR के साथ मदद की ज़रूरत है, तो एक सक्रिय और मैत्रीपूर्ण मेलिंग सूची है। बस हमें और अपने आप को "ओएमजी, कुछ भी काम नहीं करता है, मेरी मदद करो, kthx!" के साथ चिंतन करने का पक्ष नहीं है। लोग हर समय ऐसा करते हैं (और कभी-कभी अभी भी सहायता प्राप्त करते हैं)। :)
  3. पर्ल की थ्रेडिंग बहुत अच्छी नहीं है। जांचें कि पीओई की तरह कुछ आपके बिल के बजाय फिट बैठता है या नहीं। मैं एक threads.pm उपयोगकर्ता हूँ, लेकिन मैं नहीं बल्कि होगा। कड़ी मेहनत करने वाले रखरखाव, जेरी डी हेडन के लिए उपयुक्त माफी के साथ।
  4. wxPerl एक बहुत अच्छे आकार में है और इसके आसपास एक समुदाय है। स्वाभाविक रूप से, चूंकि wxwidgets सी ++ है, यह हमेशा एक और अधिक वर्तमान और पूर्ण है।
  5. एसडीएल पर्ल पुस्तकालय के चारों ओर एक सीधी आवरण है। (छोटा) दस्तावेज मानता है कि आप इसे पहले ही जानते हैं। मेरे अनुभव में, एक अलग भाषा में पुस्तकालय के लिए दस्तावेज़ पढ़ने में परेशानी हो सकती है।
  6. टाइमर पेर्ल में ठीक हैं: Time::HiRes
  7. पोर्टेबिलिटी कठिन है। पर्ल की तुलना में सी ++ में अधिक, लेकिन यह वास्तव में हमेशा अनुशासन के लिए आता है और कई प्लेटफार्मों पर परीक्षण करने में सक्षम होता है।
  8. विंडोज पर पर्ल के लिए, सुनिश्चित करें कि आप स्ट्रॉबेरी पर्ल देखें।
+1

उस जानकारी के लिए धन्यवाद। एफ़िमेंट और आपने अफवाहों को अस्वीकार कर दिया है जो मैंने सुना है। लाइसेंसिंग के अनुसार मेरे वाणिज्यिक ऐप के साथ पैकेज पर्ल के लिए यह ठीक है? मुझे Perl.org, या PAR से लिंक करने में कोई फर्क नहीं पड़ता, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि मैं कानूनी स्पष्ट हूं। –

+0

यह पूरी तरह से कानूनी है। यह अनिवार्य रूप से कारण है कि पीएलएल में दोहरी कलात्मक + जीपीएल लाइसेंसिंग शर्तें होती हैं। एक और बात: ऐसा नहीं लगता कि PAR आपके स्रोत कोड को छिपाने के लिए हुप्स के माध्यम से कूदता है। "Unzip foo.exe" आज़माएं जहां foo.exe एक PAR-packaged निष्पादन योग्य है। यह भी देखें: फ़िल्टर :: क्रिप्टो मॉड्यूल। – tsee

1

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

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

यदि पर्ल कुछ प्लेटफ़ॉर्म पर इसे नहीं कर रहा है, तो कोड को C++ में बदलें।

  1. इसका मतलब है कि आप शायद OO पर्ल के साथ प्रोटोटाइप लिखना होगा:

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

  2. शायद आप प्रोटोटाइप को सी ++ के कम या ज्यादा संज्ञेय में रोक सकते हैं।लेकिन मुझे इसके बारे में निश्चित नहीं है, आप map को लूप में विघटित कर सकते हैं या यहां तक ​​कि इसे केवल एक फ़ंक्शन फ़ंक्शन के साथ फ़ंक्शन पॉइंटर के साथ फ़िल्टर फ़िल्टर के साथ प्रतिस्थापित कर सकते हैं।

+0

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

0

सी ++ में अपने मुख्य कार्यक्षमता लिखें, तो सवाल में मंच, यानी के लिए उपकरण में आपके आवेदन के लिए सामने के अंत बारे में, मैक ओएस एक्स, नेट/डेल्फी/Windows के लिए MFC, आदि के लिए कोको

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

5

पर्ल का उपयोग करने का एक बड़ा कारण मेटा प्रोग्रामिंग है।

पर्ल कोड लिखने के लिए कोड लिखने के लिए पर्याप्त लचीला है (इस प्रकार मूस अपना जादू करता है)। आप समय बचाएंगे और स्क्वैश करने के लिए आपको आवश्यक बगों की संख्या कम कर देंगे।

पर्ल का उपयोग करने का शानदार कारण सीपीएएन है।

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