विशिष्ट मेनफ्रेम प्रवाह ...
Input Disk/Tape/User (runtime) --> Job Control Language (JCL) --> Output Disk/Tape/Screen/Printer
| ^
v |
`--> COBOL Program --------'
विशिष्ट लिनक्स प्रवाह ...
Input Disk/SSD/User (runtime) --> sh/bash/ksh/zsh/... ----------> Output Disk/SSD/Screen/Printer
| ^
v |
`--> Python script --------'
| ^
v |
`--> awk script -----------'
| ^
v |
`--> sed script -----------'
| ^
v |
`--> C/C++ program --------'
| ^
v |
`--- Java program ---------'
| ^
v |
: :
गोले लिनक्स के गोंद हैं
Sh / ksh / bash / ... जैसे लिनक्स के गोले पुराने मेनफ्रेम जॉब कंट्रोल लैंग्वेज की तरह इनपुट / आउटपुट / फ्लो-कंट्रोल पदनाम की सुविधा प्रदान करते हैं ... लेकिन स्टेरॉयड पर! वे किसी भी भाषा में ओ / एस समर्थन में लिखी जाने वाली अन्य निष्पादन प्रक्रियाओं से डेटा और नियंत्रण को कुशलतापूर्वक पारित करने के लिए अनुकूलित किए जाने के दौरान पूरी भाषा में अपने आप में ट्यूरिंग कर रहे हैं ।
अधिकांश लिनक्स अनुप्रयोग, इस बात पर ध्यान दिए बिना कि किस भाषा में कार्यक्रम का थोक लिखा गया है, शेल स्क्रिप्ट पर निर्भर करता है और बैश सबसे आम हो गया है। डेस्कटॉप पर एक आइकन पर क्लिक करने से आमतौर पर एक छोटी बैश स्क्रिप्ट चलती है । वह स्क्रिप्ट, जो प्रत्यक्ष या अप्रत्यक्ष रूप से जानता है, जहां सभी आवश्यक फाइलें हैं और चर और कमांड लाइन पैरामीटर सेट करते हैं, अंत में प्रोग्राम को कॉल करते हैं। यह एक शेल का सबसे सरल उपयोग है।
लिनक्स जैसा कि हम जानते हैं कि सिस्टम के स्टार्टअप, घटनाओं की प्रतिक्रिया, नियंत्रण की प्राथमिकताओं और संकलन, कॉन्फ़िगर और चलाने के लिए हजारों शेल स्क्रिप्ट के बिना यह शायद ही लिनक्स होगा। इनमें से कई काफी बड़े और जटिल हैं।
गोले एक बुनियादी ढांचा प्रदान करते हैं जो हमें पूर्व-निर्मित घटकों का उपयोग करने देता है जो संकलन समय के बजाय रन टाइम पर एक साथ जुड़े हुए हैं। वे घटक अपने आप में स्वतंत्र-स्थायी कार्यक्रम हैं जिनका उपयोग अकेले या अन्य संयोजनों में बिना रीकॉम्प्लिनिंग के किया जा सकता है। उन्हें कॉल करने के लिए वाक्यविन्यास बैश बिलिन कमांड से अप्रभेद्य है , और वास्तव में कई अंतर्निहित कमांड हैं जिनके लिए सिस्टम पर एक स्टैंड-अलोन निष्पादन योग्य है, जिसमें अक्सर अतिरिक्त विकल्प होते हैं।
प्रदर्शन में पायथन और बैश के बीच कोई भाषा-व्यापी अंतर नहीं है । यह पूरी तरह से इस बात पर निर्भर करता है कि प्रत्येक को कैसे कोडित किया जाता है और कौन से बाहरी उपकरण कहलाते हैं।
कोई भी प्रसिद्ध उपकरण जैसे कि awk, sed, grep, bc, dc, tr, इत्यादि उन कार्यों को धूल में या तो भाषा में करना छोड़ देंगे। बैश को तब ग्राफिकल यूजर इंटरफेस के बिना कुछ भी पसंद किया जाता है क्योंकि पायथन की तुलना में बैश जैसे टूल से डेटा को कॉल और पास करना आसान और अधिक कुशल होता है ।
प्रदर्शन
यह इस बात पर निर्भर करता है कि बैश शेल स्क्रिप्ट कॉल कौन से प्रोग्राम्स और सबटैक के लिए उनकी उपयुक्तता है जो उन्हें दिया जाता है कि क्या कुल थ्रूपुट और / या जवाबदेही समकक्ष पायथन से बेहतर या बदतर होंगे । अधिकांश भाषाओं की तरह, पायथन को जटिल बनाने के लिए , अन्य निष्पादनयोग्य भी कह सकते हैं, हालांकि यह अधिक बोझिल है और इस प्रकार अक्सर उपयोग नहीं किया जाता है।
प्रयोक्ता इंटरफ़ेस
एक क्षेत्र जहां पायथन स्पष्ट विजेता है यूजर इंटरफेस है। यह स्थानीय या क्लाइंट-सर्वर अनुप्रयोगों के निर्माण के लिए एक उत्कृष्ट भाषा बनाता है क्योंकि यह मूल रूप से GTK ग्राफिक्स का समर्थन करता है और बैश की तुलना में कहीं अधिक सहज है ।
बैश केवल पाठ को समझता है। अन्य उपकरणों को GUI के लिए बुलाया जाना चाहिए और डेटा उनसे वापस पारित हो जाएगा। एक पायथन स्क्रिप्ट एक विकल्प है। तेज़ लेकिन कम लचीले विकल्प YAD, Zenity और GTKDialog जैसे बायनेरी हैं ।
जबकि तरह के गोले बैश की तरह GUIs के साथ अच्छी तरह से काम Yad , GtkDialog (एम्बेडेड एक्सएमएल की तरह जीटीके + कार्यों के लिए इंटरफेस) , संवाद , और xmessage , पायथन अधिक सक्षम और इतने जटिल जीयूआई खिड़कियों के लिए बेहतर है।
सारांश
शेल स्क्रिप्ट के साथ निर्माण करना कंप्यूटर को ऑफ-द-शेल्फ घटकों के साथ असेंबल करने जैसा है जैसे डेस्कटॉप पीसी।
साथ बिल्डिंग अजगर , सी ++ या सबसे किसी भी अन्य भाषा अधिक चिप्स (पुस्तकालयों) और अन्य इलेक्ट्रॉनिक भागों को एक साथ जिस तरह से स्मार्टफोन हैं टांका लगाने से एक कंप्यूटर के निर्माण की तरह है।
सर्वोत्तम परिणाम आमतौर पर भाषाओं के संयोजन का उपयोग करके प्राप्त किए जाते हैं जहां प्रत्येक वह कर सकता है जो वे सबसे अच्छा करते हैं। एक डेवलपर इसे " पॉलीग्लॉट प्रोग्रामिंग " कहता है ।