पायथन किस प्रकार के अनुप्रयोगों के लिए एक बुरा विकल्प है? [बन्द है]


21

मैंने अभी पायथन सीखना शुरू किया है, और मैं भाषा पर कुछ और संदर्भ प्राप्त करना चाहूंगा।

मुझे लगता है कि, कई मामलों में, पायथन C या C ++ के सापेक्ष एक धीमी भाषा है। इस प्रकार, पायथन संभवतः उन अनुप्रयोगों के लिए सबसे अच्छा विकल्प नहीं है जिन्हें जल्द से जल्द चलाने की आवश्यकता है।

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


8
एक महान सामान्य प्रयोजन की भाषा जैसी कोई चीज नहीं है। हर पांच साल में, एक नया एक पुराने की जगह लेता है जो केवल आला बाजारों में जीवित रहता है। लिस्प, फोरट्रान, पास्कल, बेसिक, अदा, पर्ल ...
मॉविसील

3
@mouviciel: पास्कल एक आला भाषा? ठीक है, इसका नाम बदल कर डेल्फी को बोरलैंड / कोडगियर / एम्बरकैडेरो आईडीई से मिलान किया गया, लेकिन डेल्फी अभी भी (पास्कल पर आधारित है) और हालांकि यह बाज़ार में खो गया है, मैं वास्तव में इसे एक आला भाषा नहीं कहूंगा। और न ही उस बात के लिए बेसिक। विजुअल बेसिक अभी भी बेसिक है। डेल्फी और विजुअल बेसिक दोनों का उपयोग कई कंपनियों में किया जाता है ...
मार्जन वेनमा

7
"पायथन सी या सी ++ के सापेक्ष एक धीमी भाषा है"। आपके द्वारा उपयोग किए गए विशिष्ट बेंचमार्क के साथ आपको इसे वापस करना चाहिए। कुछ मामलों में (I / O बाध्य प्रोग्राम जो बहुत सारे सिस्टम कॉल करते हैं) पायथन C के समान तेज़ है क्योंकि यह C लाइब्रेरी के चारों ओर एक आवरण है।
S.Lott

@ S.Lott सच, और PyPy कभी-कभी JVM या यहाँ तक कि C / C ++ को भी टक्कर दे सकता है
yati sagade

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

जवाबों:


22

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


... कि जब तक कोई Arduino के एक अजगर बंदरगाह बनाता है। अरे रुको!
Spoike

5
@ उस लिंक को वास्तव में कंप्यूटर पर अजगर चलाने के लिए है और केवल arduino को क्रमिक रूप से संचार कर रहा है। Arduino अजगर कोड नहीं चल रहा है
basarat

1
@ बारातअली: डिस्क्लेमर - मैंने अपनी टिप्पणी जेस्ट में लिखी थी। ;-)
स्पोइक

14

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


1
क्या फोरट्रान अभी भी संख्यात्मक गणना में C / C ++ से आगे है? ...
सरदारथियन - मोनिका

1
तुम्हें पता है मैं नहीं जानता। यह ऐसा क्षेत्र नहीं है जिसका मुझे बहुत अनुभव है। लेकिन मुझे पता है कि फोरट्रान लोगों ने 30+ साल बिताए हैं, जिससे उनके उपकरण बहुत तेजी से चलते हैं।
ज़ाचरी के

@ सरदारथियन - यह कहना मुश्किल है। केवल प्राकृतिक, आप समझते हैं। लेकिन, कुछ महीने पहले, इंटेल फोरट्रान प्रसिद्धि के श्री लियोनेल ने कहा कि उनकी फोरट्रान लाइन उनके विकास लाइन में हर दूसरे उत्पाद को आउटसोर्स करती है (जो इतना संकीर्ण नहीं है)।
रूक

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

यह भी याद रखें कि संख्यात्मक गणना करने वाले बहुत से लोग फोर्ट्रान को वास्तव में अच्छी तरह से जानते हैं और यह उनकी पसंद का उपकरण है। इसलिए जब उन्हें उस तरह का कार्य करना होगा तो वे फोरट्रान के लिए पहुंचेंगे।
ज़ाक्रि के

8

चूंकि पायथन एक गतिशील रूप से टाइप की जाने वाली भाषा है, बिना संकलन-समय की जाँच के, एक बड़े पायथन प्रोजेक्ट को फिर से तैयार करना, जिसमें व्यापक इकाई परीक्षण नहीं होते हैं, मुश्किल होगा।

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


17
यूनिट परीक्षणों के बिना किसी भी बड़ी परियोजना को फिर से बनाना बहुत कठिन है।
सरदारथियन - मोनिका

9
यह सच है, लेकिन बिना सुरक्षा के बहुत कठिन है।
एरिक विल्सन

3
@ एरिक विल्सन - फिर भी, मजबूत टाइपिंग आपको सुरक्षा का झूठा एहसास दिला सकती है ... यह संकलन करता है, इसे शिप करें!
मार्क बूथ

2
यह प्रश्न के विषय पर 100% नहीं हो सकता है लेकिन फिर भी एक वैध बिंदु है। जावा या C # जैसी भाषाओं की तुलना में डायनामिक टाइप की गई भाषाओं के लिए विशेष रूप से रीफ़ैक्टरिंग टूल की कमी है। बस नाम बदलने के सामान बड़े पायथन परियोजनाओं में एक संपूर्ण व्यायाम हो सकता है।
ओलिवर

क्या पायथन को एक अलग क्रम या वीएम की आवश्यकता होती है, या क्या यह एक एकल आत्म निहित निष्पादन योग्य उत्पन्न कर सकता है?
जिम इन टेक्सास

2

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

हालाँकि, आयरनपाइथन .Net पर चलता है और आपके पास चुनने के लिए फॉर्म डिजाइनरों के साथ दो आईडीई हैं: विजुअल स्टूडियो और शार्पड्रॉप। वास्तव में विजुअल स्टूडियो के लिए पायथन टूल्स का उपयोग CPython के साथ-साथ IronPython के लिए भी किया जा सकता है, जो बहुत साफ-सुथरा है, हालाँकि मैंने अभी तक इसकी कोशिश नहीं की है ...


2

यह वास्तव में इस बात पर निर्भर करता है कि आप "बुरी पसंद" से क्या मतलब है।

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

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


2

यह अपनी अभिव्यंजक क्षमता और समर्थन पुस्तकालयों की विस्तृत विविधता के कारण किसी चीज़ को जल्दी से स्क्रिप्ट करने के लिए आदर्श है।

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


0

ठीक है, आपकी तरह, मैं भी सिर्फ पायथन से शुरुआत कर रहा हूं। लेकिन मेरे लिए मशीन लर्निंग और डेटा साइंस के संदर्भ में।

मैंने अभी जावा 8 और इसके नए स्ट्रीम ओरिएंटेड लाइब्रेरियों में सभी नए ज्ञान प्राप्त किए हैं।

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

मैंने और देखा। लेकिन बहुत कम। खराब प्रलेखन, हालांकि इसमें बहुत कुछ था; कोई तरलता नहीं है, और तथ्य की बात के रूप में मुझे यह अनुमान लगाया गया था कि क्या कोई विधि एक नई वस्तु का शासन कर रही है, या इस पर काम कर रही है; एक नक्शा / कमी आदि के करीब कुछ भी नहीं है जो मैं निराश होने के लिए आश्चर्यचकित था।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.