Last chance! 50% off DataCamp Premium
Sale ends in
इस वर्ष PyCon 2017 में, वैज्ञानिक Python समुदाय से जुड़े दो लोगों ने मुख्य वक्तव्य दिए: डॉ. जेक वैंडरप्लास ने बताया कि वैज्ञानिकों ने Python को क्यों अपनाया है और क्यों अपनाना चाहिए; डॉ. कैथरीन हफ ने समझाया कि Python समुदाय वैज्ञानिक समुदायों की किस तरह मदद कर सकता है और क्यों करनी चाहिए। ये दोनों वार्ताएं मिलकर यह समग्र और सुसंगत दृष्टि प्रस्तुत करती हैं कि वैज्ञानिक अनुसंधान और Python प्रोग्रामिंग एक-दूसरे की पूरक कैसे हैं, आज कई कार्यरत वैज्ञानिकों के लिए Python अपनाना क्यों सर्वश्रेष्ठ है और Python समुदाय वैज्ञानिक अनुसंधान में प्रभावी ढंग से क्यों और कैसे सहायक हो सकता है।

जेक वैंडरप्लास सिएटल स्थित यूनिवर्सिटी ऑफ वॉशिंगटन के eScience Institute में खगोलशास्त्री हैं। वे व्यापक वैज्ञानिक Python समुदाय में भी सक्रिय हैं और SciPy, scikit-learn तथा altair सहित कई Python पैकेजों में योगदान दे चुके हैं।
अधिकांश लोग खगोलविदों को विशाल दूरबीनों के आधारों पर लेंसों में झांकते हुए कल्पना करते हैं, लेकिन जेक ने आश्वस्त किया कि अधिकांश खगोलविदों ने अपने पेशेवर जीवन में कभी दूरबीन से नहीं झांका; वे अपना अधिकांश डेटा-संग्रहण समय वास्तव में डेटाबेस क्वेरी करके बिताते हैं। पर डेटाबेस तो खगोलविदों के संगणकीय कौशल का सिर्फ एक छोटा हिस्सा हैं, जिनकी आवश्यकता उनके कार्यों के कारण पड़ती है—और जेक ने कई रोचक उदाहरण दिए। उदाहरण के लिए, TRAPPIST-1 एक्सोप्लानेटरी सिस्टम का निम्न दृश्यांकन देखें:

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

यह समस्त अनुमिति और सांख्यिकीय विश्लेषण कैसे किया गया? बेशक, Python में। और सिस्टम का 'बेहद जटिल सांख्यिकीय मॉडलन' करके; साथ ही, ऐसे सिस्टम खोजना, जेक के शब्दों में, 'जटिल डेटा विश्लेषण पाइपलाइन में सांख्यिकीय कोड लिखने' पर आ टिकता है।
यह उन कई वैज्ञानिक परियोजनाओं (खगोल विज्ञान में) में से एक है, जो अपने डेटा प्रोसेसिंग और विश्लेषण पाइपलाइनों में Python का उपयोग करती हैं। ध्यान देने योग्य बात यह है कि ये सभी परियोजनाएं न सिर्फ एक ओपन सोर्स प्रोग्रामिंग भाषा में लिखी गई हैं, बल्कि अपना कोड github पर भी रखती हैं—जैसे Kepler और JWST—जहां बाद वाली परियोजना अन्य ग्रहों के वायुमंडल में गैसों का पता लगाकर अन्य तारों के चारों ओर स्थित ग्रहों की रासायनिक संरचना सूंघने, यानी अन्य जीवन-रूपों के रासायनिक संकेत खोजने का प्रयास कर रही है—ये परियोजनाएं Python में हैं, github पर होस्टेड हैं और Jupyter नोटबुक्स सहित अन्य टूल्स का उपयोग करती हैं।
क्या यह मात्र उपाख्यानात्मक है—यानी Python में कुछेक परियोजनाएं जो अपवाद हैं, नियम नहीं? खगोल विज्ञान में तो नहीं। जेक ने एक विश्लेषण प्रस्तुत किया, जिससे स्पष्ट हुआ कि Python का उपयोग करने वाले प्रकाशनों में लगातार वृद्धि हुई है:

देखिए वह Python हॉकी स्टिक! तो हमने जान लिया कि वैज्ञानिक Python का उपयोग बढ़-चढ़कर कर रहे हैं, पर वे क्यों इसका उपयोग करते हैं?
जेक ने पूछा, 'विज्ञान में Python इतना प्रभावी औज़ार क्यों है?'
गोंद के रूप में Python: ऐतिहासिक रूप से, अनेक कार्यरत वैज्ञानिकों के पास प्रयोग/डेटा से लेकर संप्रेषणीय परिणामों तक पहुंचने के लिए अटपटी, जटिल और लगभग हास्यास्पद डेटा पाइपलाइंस रही हैं—जिनमें डेटाबेस क्वेरी, कमांड लाइन कौशल, विशिष्ट या स्वामित्व सॉफ़्टवेयर और डेटा विज़ुअलाइज़ेशन टूल्स तक सब शामिल रहा। जेक वैंडरप्लास ने डेव बीज़ली को उद्धृत किया क्योंकि उन्होंने बात सटीक कही:
'वैज्ञानिक... सिमुलेशन कोड, डेटा विश्लेषण पैकेज, डेटाबेस, विज़ुअलाइज़ेशन टूल्स और स्वयं विकसित सॉफ़्टवेयर सहित अनेक प्रणालियों के साथ काम करते हैं—जिनमें से प्रत्येक उपयोगकर्ता को अलग इंटरफ़ेस और फ़ाइल प्रारूप देता है। परिणामस्वरूप, वैज्ञानिक काफी समय महज़ इन सभी अवयवों को किसी तरह साथ चलाने में खर्च कर सकता है...'
और Python वैज्ञानिक अनुसंधान में प्रयोग आने वाले अधिकांश टूल्स के साथ अंतःक्रिया कर सकता है: यह बांधता है, यह गोंद है। जेक के शब्दों में, Python 'लोग जिस खिचड़ी-से टूलसेट के साथ काम कर रहे हैं, उन्हें जोड़ने' के लिए प्रयोग होता है; उच्च-स्तरीय Python सिंटैक्स इन निम्न-स्तरीय C/Fortran लाइब्रेरियों को रैप करता है।
शोध वैज्ञानिकों के Python की ओर आकर्षित होने (और जो नहीं हुए, उन्हें "होना चाहिए") का दूसरा कारण यह है कि
SciPy) पारिस्थितिकी तंत्र के रूप में थर्ड-पार्टी मॉड्यूल्स उपलब्ध हैं।"बैटरियां साथ" के जरिए आप वेब स्क्रैप कर सकते हैं, वेब सर्वर चला सकते हैं, फ़ाइल सिस्टम और डेटाबेस के साथ काम कर सकते हैं, JSON पढ़ सकते हैं और बहुत कुछ!
वहीं "थर्ड-पार्टी" मॉड्यूल्स चीजों को सच में रोमांचक बनाते हैं। उदाहरणों में शामिल हैं, पर सीमित नहीं हैं:
जेक के शब्दों में, "यदि आपके पास कोई समस्या है, तो संभवतः कोई न कोई लाइब्रेरी मिलेगी जो मदद करेगी—और वह शायद github पर होगी!"

Python लिखना अपेक्षाकृत आसान है, खासकर C जैसी भाषाओं की तुलना में। जेक ने कहा, 'Python में, विशेषकर जब आप, उदाहरण के लिए, C से आते हैं, आप जो लिखते हैं वही होता है; यह कुछ ऐसा है जैसे निष्पादन योग्य छद्म-कोड लिखना'।
उन्होंने पेरी ग्रीनफ़ील्ड को भी उद्धृत किया, जिन्होंने कहा, 'Python डेवलपर्स के लिए बहुत शक्तिशाली भाषा है, पर खगोलविदों के लिए भी सुलभ है। इन दो वर्गों के लोगों को एक ही टूल्स का उपयोग कराना, मेरे विचार में, एक बहुत बड़ा लाभ देता है, जिसे हमेशा देखा या उल्लेखित नहीं किया जाता।'
IPython और Jupyter नोटबुक्स जैसे टूल्स की बदौलत गतिशील कोडिंग और उड़ान पर अन्वेषणात्मक, आवर्ती डेटा विश्लेषण का शानदार अवसर मिलता है। इससे प्रवेश बाधा कम होती है क्योंकि वैज्ञानिक कोडिंग स्वयं रैखिक नहीं और अन्वेषणात्मक होती है। जेक ने बताया कि कुछ लोग इन टूल्स को धीमा मान सकते हैं, पर वैज्ञानिक अनुसंधान के लिए कुंजी विकास की गति है, न कि निष्पादन की गति, जो इन टूल्स को आदर्श बनाता है।
ओपन सोर्स सॉफ़्टवेयर का नैतिक दृष्टिकोण वैज्ञानिक अनुसंधान की अपेक्षित खुलापन के अनुकूल है (वास्तव में, शायद कई वैज्ञानिक अनुसंधानों से भी अधिक)। इस पर हम केटी हफ के मुख्य वक्तव्य पर चर्चा करते समय विस्तार से आएंगे, पर विज्ञान केवल प्रकाशित शोधपत्रों में नहीं होता; विज्ञान परिणाम, निर्देश/प्रोटोकॉल और उस परिणाम को पुनरुत्पादित करने की क्षमता में निहित होता है—ठीक यही ओपन सोर्स सॉफ़्टवेयर विकास करने का प्रयास करता है। जेक ने बकहाइट और डोनोहो (1995, जॉन क्लेयरबाउट का परिभाषित उद्धरण) से यह उद्धरण दिया:
कंप्यूटेशनल परिणाम के बारे में एक लेख विज्ञापन है, छात्रवृत्ति नहीं। वास्तविक छात्रवृत्ति वह संपूर्ण सॉफ़्टवेयर परिवेश, कोड और डेटा है जिसने परिणाम उत्पन्न किया।' — बकहाइट और डोनोहो, 1995
ओपन सोर्स सॉफ़्टवेयर और Python (वैज्ञानिक और अन्य) पारिस्थितिकी तंत्र का खुला नैतिक ढांचा हमें वैज्ञानिक पुनरुत्पादकता संकट से निकालने में सहायक हो सकता है: 'पुनरुत्पादकता सुलझाना खुला विज्ञान अपनाने के बारे में है'—और Python पारिस्थितिकी तंत्र में वैज्ञानिक अनुसंधान का सहयोगात्मक, सहकर्मी-समीक्षित, GitHub-पर-प्रकाशित होने योग्य स्वरूप विज्ञान में इस खुलेपन की कुंजी है। यदि मैं 2016 में (आइंस्टाइन द्वारा भविष्यवाणी किए गए) गुरुत्वाकर्षीय तरंगों का पता कैसे लगाया गया यह देखना चाहूं, तो मुझे बस LIGO रिपोजिटरी यहां पर जाना है। या यदि आप उन बढ़ती संख्या के खगोलविदों में से हैं जो अपने अनुसंधान में Astropy पैकेज का उपयोग करते हैं, तो आप उस कोड और उसे बनाने वाले समुदाय को यहां पा सकते हैं—और इसका इतना खुला होना सीधे तौर पर उस समुदाय का परिणाम है, जिसने व्यापक Python समुदाय में पाए गए ओपन सोर्स और ओपन साइंस के नैतिक मॉडल का अनुसरण किया। देखें यह तालिका, जिसमें जेक (पेरी ग्रीनफ़ील्ड से अनुकूलित) ने बताया कि खगोल समुदाय ने Python समुदाय से क्या सीखा है:

"मैं यहां आपकी शक्ति को अपने उद्देश्यों के लिए साधने आई हूं"—डॉ. कैथरीन हफ ने PyCon समुदाय से कहा और यह ठोस तर्क दिया कि व्यापक Python प्रोग्रामिंग समुदाय विज्ञान को दुनिया बचाने में कैसे और क्यों मदद कर सकता है। उनके मुख्य वक्तव्य ने विस्तार से और संवेदनापूर्ण ढंग से समझाया कि सामान्यतः ओपन सोर्स सॉफ़्टवेयर विकास, और विशेष रूप से Python, वैज्ञानिक कंप्यूटिंग तथा समग्र वैज्ञानिक अनुसंधान और अभ्यास में इतना प्रभावी क्यों साबित हुआ है। उन्होंने इससे एक कदम आगे बढ़कर यह भी दिखाया कि व्यापक Python प्रोग्रामिंग और विकास समुदाय किन-किन अनेक क्षेत्रों में अपने Python कौशल का उपयोग करके वैज्ञानिक समुदाय की मदद कर सकता है और दुनिया को बचाने में योगदान दे सकता है। यदि आप मानते हैं कि पानी, स्वास्थ्य या ऊर्जा मानवता के लिए गंभीर मुद्दे हैं, तो कैथरीन के पास ऐसे प्रोजेक्ट्स और GitHub रिपोजिटरीज़ थीं जिनमें खुले इशू मौजूद थे—जिनमें कूदकर आप मदद कर सकते थे। उन्होंने दर्जनों ओपन प्रोजेक्ट्स और पैकेजों के उदाहरण दिए, जिनमें आप योगदान कर सकते हैं।
कैथरीन (केटी) न्यूक्लियर इंजीनियर हैं, SciPy समुदाय की दीर्घकालीन योगदानकर्ता हैं, Journal of Open Source Software से जुड़ी हैं और अपना काफी समय The Hacker Within तथा Software और Data Carpentries को देती हैं, जो वैज्ञानिकों को कंप्यूटर के बेहतर उपयोग और खोज करने में मदद करते हैं, जिससे वैज्ञानिकों के लिए कंप्यूटर का उपयोग अधिक पुनरुत्पाद्य और सहज बनता है।
केटी का ध्येय परमाणु ऊर्जा के उत्पादन के तरीके को सुधारना है; और उनका पसंदीदा औज़ार क्या है? Python! यह बताने से पहले कि Python समुदाय वैज्ञानिक अनुसंधान समुदाय की किन-किन अनेक तरीकों से मदद कर सकता है, केटी ने एक सशक्त तर्क दिया कि यह वास्तव में आवश्यक क्यों है। केटी ने R. K. मर्टन (1945) को उद्धृत करते हुए विज्ञान को कठोर, संरचित, समुदायगत समीक्षा की मांग करने वाला बताया (यह संगठित संदेहवाद का बढ़िया कार्यकारी परिभाषा-जैसा है); ये सभी गुण ओपन सोर्स Python समुदाय में निस्संदेह मौजूद हैं।

केटी ने इसका महत्व तब स्पष्ट किया जब उन्होंने विज्ञान के बुनियादी सिद्धांत गिनाए और बताया कि ओपन सोर्स सॉफ़्टवेयर विकास ने पायथागोरस युग (ईसा पूर्व 6वीं शताब्दी) से अब तक किसी भी समुदाय से बेहतर ढंग से इन सिद्धांतों का पालन किया है। विज्ञान के ये बुनियादी सिद्धांत हैं:
कंप्यूटरों को वैज्ञानिकों की निम्न कार्यों में "मदद करनी चाहिए":

फिर चुनौती क्या है—और अधिक वैज्ञानिकों को Python जैसे ओपन सोर्स सॉफ़्टवेयर उपयोग करने के लिए प्रेरित करने में, ताकि कंप्यूटर उनकी मदद कर सकें?
इसलिए केटी की Python समुदाय से पुकार:
"मैं आपको इसमें शामिल करना चाहती हूं"।
और ऐसा आह्वान कार्यरत शोध वैज्ञानिकों द्वारा Python उपयोग करने का एक और कारण है: उनके पास खुले स्रोत प्रोग्रामरों का एक विशाल समुदाय उपलब्ध है। केटी, जैसा कि कहा गया, एक अन्य प्रयास में भी लगी हैं—कार्यरत वैज्ञानिकों को अपने काम के लिए कंप्यूटर का उपयोग करना सिखाने में। ऐसे कई कार्यक्रम हैं। मैं सभी कार्यरत वैज्ञानिकों से आग्रह करूँगा कि वे Software Carpentry और Data Carpentry देखें कि क्या वे आपके समूह, विभाग या विश्वविद्यालय की मदद कर सकते हैं (उत्तर: यदि आप कंप्यूट करते हैं, तो संभवतः कर सकते हैं)।
तो डॉ. केटी हफ प्रोग्रामरों को कैसे सुझाव देती हैं कि वे मदद करें? चार सरल चरणों में:
'Python डेवलपर्स के लिए बहुत शक्तिशाली भाषा है, पर [वैज्ञानिकों] के लिए भी सुलभ है। इन दो वर्गों के लोगों को एक ही टूल्स का उपयोग कराना, मेरे विचार में, एक बहुत बड़ा लाभ देता है, जिसे हमेशा देखा या उल्लेखित नहीं किया जाता'।
यदि आपके कोई विचार, प्रतिक्रियाएं और/या मनन हों, तो निःसंकोच मुझे Twitter पर संपर्क करें: @hugobowne।