पायथन विरोधाभास

अगस्त 2004

हाल ही में एक टॉक में मैंने कुछ ऐसा कहा जिससे बहुत से लोग नाराज़ हो गए: कि आप पायथन प्रोजेक्ट पर काम करने के लिए जावा प्रोजेक्ट पर काम करने वालों की तुलना में अधिक स्मार्ट प्रोग्रामर प्राप्त कर सकते हैं।

मेरा मतलब यह नहीं था कि जावा प्रोग्रामर मूर्ख होते हैं। मेरा मतलब था कि पायथन प्रोग्रामर स्मार्ट होते हैं। एक नई प्रोग्रामिंग भाषा सीखना बहुत काम का है। और लोग पायथन इसलिए नहीं सीखते हैं क्योंकि इससे उन्हें नौकरी मिल जाएगी; वे इसे इसलिए सीखते हैं क्योंकि वे वास्तव में प्रोग्रामिंग करना पसंद करते हैं और उन भाषाओं से संतुष्ट नहीं हैं जिन्हें वे पहले से जानते हैं।

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

अब तक केवल कुछ ही कंपनियों ने इसे समझने के लिए पर्याप्त स्मार्ट काम किया है। लेकिन यहां एक प्रकार का चयन भी हो रहा है: वे ठीक वही कंपनियां हैं जहां प्रोग्रामर सबसे अधिक काम करना पसंद करेंगे। उदाहरण के लिए, Google। जब वे जावा प्रोग्रामिंग नौकरियों का विज्ञापन करते हैं, तो वे पायथन अनुभव भी चाहते हैं।

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

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

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