2009-09-21 5 views
25

मैं जानना चाहता थापायथन का उपयोग करके किस तरह के अनुप्रयोग बनाए जाते हैं?

पायथन किस तरह के अनुप्रयोगों के लिए उपयुक्त है?

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

+0

@Stackoverflow पाठकों:।। समर्थक प्रदान करने के लिए आप सभी को धन्यवाद मेरी क्वेरी के लिए mpt जवाब। – Rachel

उत्तर

32

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

"हार्ड रीयल टाइम" अनुप्रयोगों में, सभी गतिशील स्मृति आवंटन और मुक्त करने, और विशेष रूप से कचरा संग्रह, काफी समझ में आता है; यह लगभग सभी आधुनिक भाषाओं (पायथन सहित, लेकिन जावा, सी #, इत्यादि सहित) को भी नियम देता है, क्योंकि उनमें से लगभग सभी गतिशील मेमोरी हैंडलिंग और किसी प्रकार या कचरे के संग्रह पर भरोसा करते हैं।

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

कई अन्य निचोड़ हैं जो समान बाधाओं को साझा करते हैं (अधिकतर स्मृति पर ध्यान केंद्रित करते हैं: संभवतः कुछ बिट्स के रूप में उपयोग करने पर ध्यान केंद्रित करते हैं और/या सटीक पूर्व निर्धारित सीमाओं के भीतर सख्ती से निष्पादन को सीमित करते हैं - कोई गतिशीलता, आवंटन, कोई कचरा संग्रह आदि नहीं। , आदि), और मूल रूप से मामला एक बार फिर इसी तरह से उतार देगा (उदाहरण के लिए, सर्वर अनुप्रयोग हैं, जो सर्वर के असंख्य पर चलने के लिए लक्षित हैं, जो सी ++ में कोड किए जाने पर प्रति सर्वर कई मेगाबाइट बचा सकता है [विशेष रूप से अगर बिना "कथित तौर पर- स्मार्ट, पॉइंटर्स ;-)] जावा, पायथन, सी #, और इसी तरह के बजाय)।

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

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

+1

+ वोट दें - अच्छा स्पष्टीकरण –

+0

@meder धन्यवाद, "प्लस" उदाहरण के अपने सारांश भी अच्छा था (मैं "शून्य" उदाहरण पर जोर क्योंकि वे कर रहे हैं विशिष्ट और यह समझाना आसान है कि पाइथन, जावा या सी # जैसी भाषाओं को उन विशिष्ट निकस के लिए अनुपयुक्त बनाता है ... ज्यादातर स्मृति प्रबंधन के मुद्दे, वास्तव में! -) –

+0

समझ में आता है। मेरा खुद का नियम-अंगूठे उन मामलों में पायथन का उपयोग नहीं करना है जहां मैं पहले से ही चिंतित हूं कि मैं इसे सी या सी ++ में पर्याप्त तेज़ी से चलाने में सक्षम हूं या नहीं। मेरे मामले में, यह रीयलटाइम डीएसपी काम है जहां मैं पायथन से बचता हूं। – Nosredna

21

संक्षिप्त:

  • वेब अनुप्रयोग (Django, Pylons)
  • खेल (ईव ऑनलाइन - MMORPG)
  • सॉफ्टवेयर विकास (Trac के लिए परियोजना प्रबंधन)
  • वस्तु डेटाबेस (ZODB/Durus)
  • नेटवर्क प्रोग्रामिंग (Bittorent)
  • मोबाइल अनुप्रयोगों

और कहीं अधिक ...

+0

ग्रेट उत्तर। मुझे यह जानकर खुशी हुई। – duffymo

+1

ट्रैक डेस्कटॉप सॉफ्टवेयर नहीं है। –

+0

डीजेगो और पिलोन वेब ढांचे हैं। नहीं? – Eimantas

0

यह कंप्यूटर प्रोग्रामिंग भाषा है, और इस तरह के किसी भी कंप्यूटर प्रोग्राम के रूप में सैद्धांतिक रूप से इसके साथ बनाया जा सकता है। here for an example

0

बिट्टोरेंट पायथन पर बनाया गया था।

+0

http://en.wikipedia.org/wiki/Bram_Cohen – andandandand

10

आप कहते हैं:

मैं अजगर दुनिया के लिए नया हूँ, लेकिन मैं जानता हूँ कि यह एक पटकथा भाषा है।

मुझे लगता है कि "पटकथा भाषाओं" और "प्रोग्रामिंग भाषाओं" के बीच अंतर काफी मनमाना है। पिछले 10-20 वर्षों में विकसित लगभग हर भाषा में कुछ प्रकार के रनटाइम समर्थन होते हैं, आमतौर पर बाइटकोड दुभाषिया या आभासी मशीन के रूप में। पायथन कोई अलग नहीं है: यह बाइटकोड में संकलित हो जाता है और बाइटकोड पाइथन रनटाइम द्वारा निष्पादित किया जाता है। मुद्दा यह है कि, मैं कहूंगा कि जावा, सी #, रूबी इत्यादि में आप बहुत कम चीजें कर सकते हैं, कि पाइथन में नहीं कर सका।

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

+1

+1 मिथक को दूर करने का प्रयास करने के लिए +1 है कि "स्क्रिप्टिंग" भाषाएं अन्य प्रोग्रामिंग भाषाओं के लिए अलग या कम हैं! मैं 15+ सालों से इस से लड़ रहा हूं। :) –

+0

+1 "गतिशील भाषा" पायथन का वर्णन करने के लिए एक बेहतर श्रेणी है। –

+0

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

1

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

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

तो, यह मानते हुए कि आपका कार्य CPU बाध्य (वास्तविक समय प्रोग्रामिंग या गेम, या निप्पल क्रिंकलिंग नंबर क्रंचिंग) के बजाय I/O बाध्य है (अधिकांश चीजों की तरह) तो पाइथन उपयुक्त होगा। चाहे उसका दर्शन पर उपयुक्त है मुख्य प्रश्न है।

1

3 डी संकुल जैसे माया, Softimage, हूडिनी, RealFlow, ब्लेंडर, आदि सभी इन दिनों, एक एम्बेडेड स्क्रिप्टिंग और प्लगइन भाषा के रूप में अजगर का उपयोग के अधिकांश।

5

मैं अपनी थोड़ी देर हो चुकी है, लेकिन अगर यह मदद करता है।

Civilization IV 
OpenStack 
Bazaar 
Mercurial 
Blender 3D 
TwistedMatrix 
Trac 
Allura (source project for SourceForge.net) 
BitTorrent(<5.3) 
Gwibber 
Ubuntu Software Center 
YUM 
OpenERP 
journyx 

कृपया ध्यान दें कि मैं वेब फ्रेम काम करता है, IDEs (एरिक अजगर आईडीई, निंजा-आईडीई, PIDA -ide, विंग आईडीई, Stani के अजगर संपादक और उपकरणों (pygame, PyGTK, wxPython की पूरी दौड़ से परहेज किया , आधुनिक अजगर, IPython) और webservices (youtube.com, reddit.com, quora.com, dropbox.com)

0

http://en.wikipedia.org/wiki/List_of_Python_software लिंक का पालन करें और आप के लिए बहुत कुछ देखेंगे। असल में मैं भी सीखने के लिए तैयार हूँ अजगर thats क्यों मैं आप की तरह इस तरह के सवालों के जवाब खोज किया गया है और मैं इस लिंक मिल गया गुड लक साथी

+0

ध्यान दें कि [केवल-लिंक जवाब] (http: //meta.stackoverflow।कॉम/टैग/लिंक-केवल-उत्तर/जानकारी) निराश हो जाते हैं, इसलिए SO समाधान एक समाधान के लिए खोज का अंत बिंदु होना चाहिए (बनाम अभी तक संदर्भों का एक और स्टॉपओवर, जो समय के साथ पुराना हो जाता है)। लिंक को संदर्भ के रूप में रखते हुए, यहां स्टैंड-अलोन सारांश जोड़ना पर विचार करें। – kleopatra

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