कृपया हमारे साप्ताहिक प्रायोजक पुशर का हैकर नून में स्वागत करें! पुशर रियलटाइम एपीआई बनाता है जो दुनिया भर के डेवलपर्स को अपने ऐप्स में संचार और सहयोग सुविधाओं को जल्दी से जोड़ने में सक्षम बनाता है। उनका मुख्य उत्पाद डेवलपर्स को इन-ऐप नोटिफिकेशन, एक्टिविटी स्ट्रीम, रियल-टाइम डैशबोर्ड, लाइव ट्रैकर और बहुत कुछ जैसी सुविधाएँ आसानी से बनाने में सक्षम बनाता है।
आज हम पुशर डेवलपर इवेंजलिस्ट ज़ैन मार्कन से बात करेंगे, जिसमें हम कोटलिन की स्थिति, उसे ऐसा करने के लिए क्या प्रेरित करता है, तथा एक अंतरिक्ष काउबॉय को अंतरिक्ष काउबॉय बनाने वाली चीजों पर चर्चा करेंगे।
डेविड : चलिए कोटलिन की स्थिति से शुरू करते हैं। आपने हाल ही में कोटलिन पर एक सर्वेक्षण किया था ( इसकी बारीकियों के बारे में यहाँ और पढ़ें)। आपने जनवरी से मार्च 2018 तक 2,744 लोगों का सर्वेक्षण किया ताकि पारिस्थितिकी तंत्र की नब्ज को समझा जा सके। किन परिणामों ने आपकी धारणाओं को झुठलाया? किन परिणामों ने आपकी धारणाओं की पुष्टि की? और कोटलिन के साथ जो कुछ हो रहा है, उसका लिफ्ट पिच टेकअवे क्या है?
ज़ैन : यह सही है। हमने देखा कि हमारे उत्पादों के साथ एप्लिकेशन बनाते समय ज़्यादा से ज़्यादा डेवलपर्स कोटलिन का इस्तेमाल कर रहे हैं, इसलिए हमने गहराई से जानने का फ़ैसला किया कि उन्हें क्या प्रेरित करता है। मुझे कुछ आश्चर्यजनक बातें पता चलीं।
सबसे पहले, मैं छात्रों और जूनियर डेवलपर्स द्वारा कोटलिन को दिए जा रहे प्यार से वास्तव में आश्चर्यचकित था। मैं अधिक/कम अनुभवी डेवलपर्स के बीच एक बड़े अंतर की उम्मीद कर रहा था, लेकिन नए लोग कोटलिन में वास्तव में शामिल हो रहे हैं क्योंकि Google ने समुदाय के पीछे अपनी बंदूकें रखी हैं।
एक और बात जिसने मुझे आश्चर्यचकित किया, वह यह थी कि कितने लोग उन सुविधाओं को आज़माने के लिए उत्सुक हैं जिन्हें कोटलिन टीम द्वारा प्रायोगिक के रूप में लेबल किया गया है, अर्थात् कोरोउटिन और मल्टी-प्लेटफ़ॉर्म परियोजनाओं के लिए समर्थन - प्रत्येक में लगभग 25-30%।
सर्वेक्षण के परिणामों ने कमोबेश मेरे इस संदेह की पुष्टि की कि एंड्रॉइड कितना बड़ा है - हमारे सर्वेक्षण डेटा के अनुसार लगभग 80%। मैंने जो कुछ अन्य सर्वेक्षण देखे हैं, उनमें एंड्रॉइड का थोड़ा कम होना दिखाया गया है, फिर भी यह 75% के निशान से ऊपर है। इस अंतर का कुछ हिस्सा मेरे नेटवर्क के ज़्यादातर एंड्रॉइड-केंद्रित होने के कारण हो सकता है, लेकिन इसका प्रभाव स्पष्ट रूप से उतना बड़ा नहीं था।
एक बात यह है कि कोटलिन एक रोमांचक भाषा है, और यह डेवलपर्स को खुश करती है।
यह काफी दुर्लभ है (कम से कम मुख्यधारा की प्रोग्रामिंग भाषा के लिए), और इसके परिणामस्वरूप पूरे कोटलिन पारिस्थितिकी तंत्र के आसपास एक जीवंत और उत्साही समुदाय का निर्माण हुआ है।
कोटलिन का प्राथमिक विकास रूस के सेंट पीटर्सबर्ग में स्थित जेटब्रेन्स प्रोग्रामर्स की एक टीम द्वारा किया गया है। आप हमें इसकी स्थापना के बारे में और क्या बता सकते हैं? और आपने पहली बार कोटलिन का उपयोग कब किया था?
मेरी जानकारी के अनुसार, कोटलिन का इतिहास जेटब्रेन्स द्वारा अपने डेवलपर टूल के लिए "बेहतर जावा" की चाहत का है। इंटरऑपरेबिलिटी और बेहतर उत्पादकता उनके कुछ मुख्य लक्ष्य थे, और उस समय कोई भी अन्य JVM-आधारित भाषा वास्तव में बिल के अनुकूल नहीं थी - स्काला ने अधिकांश बॉक्सों को टिक किया, लेकिन टूलिंग बस वहां नहीं थी, और बिल्ड समय जेटब्रेन्स की विकास आवश्यकताओं के लिए बहुत धीमा था।
अत्यधिक अंतर-संचालनीय और बेहतर जावा का यही विचार था जिसके कारण इसने इतने सारे एंड्रॉयड डेवलपर्स को आकर्षित करना शुरू किया (जिनमें मैं भी शामिल हूं, क्योंकि मैं शुरुआती दिनों से ही एंड्रॉयड पर काम कर रहा हूं)।
कुछ साल पहले एंड्रॉयड इकोसिस्टम ज़्यादातर जावा के पुराने वर्शन पर ही अटका हुआ था — जावा 7 और जावा 6 के बीच एक अजीब हाइब्रिड, जिसमें लैम्बडा जैसी अच्छी सुविधाएँ नहीं थीं और यह काफी वर्बोज़ था। इसलिए लोगों ने इस नई चीज़ के साथ खेलना शुरू कर दिया जो अच्छी तरह से इंटरऑपरेबल लगती थी और ज़्यादा उत्पादकता की अनुमति देती थी (खासकर जब यह सब कुछ नहीं तोड़ती थी 😅)।
यही बात मुझे भी इसमें खींच लाई - मैंने पहली बार 2014 में इसके बारे में सुना, और फिर कोटलिन के विकास पर कड़ी नज़र रखी - या तो अपने खाली समय में इसके साथ खेलकर, या चीजों को जल्दी से प्रोटोटाइप करने के लिए इसका इस्तेमाल करके। मैंने पुशर चैटकिट और फीड्स उत्पादों पर काम करते समय पहला प्रोडक्शन कोटलिन कोड लिखा था।
आपको क्या लगता है कि कोटलिन कम अनुभवी डेवलपर्स के लिए क्यों बनाया गया है? और इसे एक सनक बनने से कौन रोक सकता है?
हा! मुझे नहीं लगता कि यह कम अनुभवी डेवलपर्स के लिए है, वास्तव में मैं इसे काफी हद तक उसी तरह के समूह के रूप में देखता हूं जैसा कि हमने स्टैकओवरफ्लो सर्वेक्षण के परिणामों के साथ देखा है, इसलिए उद्योग कैसे विकसित हो रहा है, इस संदर्भ में इसमें कुछ भी अप्रत्याशित नहीं है।
हमने यह भी देखा है कि सबसे पहले इसे अनुभवी (नौकरीपेशा) डेवलपर्स द्वारा अपनाया गया था, तथा हाल ही में इसे छात्रों और युवा डेवलपर्स द्वारा भी अपनाया जाने लगा है।
मैं कोटलिन को सीखने में आसान भाषा मानता हूँ। इसमें बेहतरीन उपकरण हैं जो हमें इसके बारे में ज़्यादा जानकारी के बिना भी उत्पादक होने की अनुमति देते हैं। यह जावा के साथ इंटरऑपरेबल है, इसलिए कोई भी पोर्टिंग या माइग्रेशन आपकी अपनी गति से हो सकता है। और अंत में, Google और JetBrains दोनों ही कोटलिन का समर्थन करने वाले दस्तावेज़ और संसाधन तैयार करने में शानदार काम कर रहे हैं।
आपको क्या लगता है कि कोटलिन को अन्य प्रोग्रामिंग भाषाओं से अलग क्या बनाता है, जिसके कारण इसे तेजी से अपनाया गया? और अधिक सामान्य रूप से, आपको क्या लगता है कि जिन प्रोग्रामिंग भाषाओं को अपनाया जाता है, उन्हें प्रोग्रामिंग भाषाओं से अलग क्या बनाता है, जिन्हें अपनाने में कठिनाई होती है?
Google और JetBrains से मिले समर्थन ने निश्चित रूप से मदद की है। दूसरी ओर, Google ने डेवलपर समुदाय से भारी धक्का मिलने के बाद ही Android में आधिकारिक तौर पर Kotlin का समर्थन करने का फैसला किया, इसलिए दूसरी तरफ से भी पहले से ही पर्याप्त धक्का था।
मुझे वास्तव में लगता है कि यह एक ऐसी भाषा है जो सही समय पर, सही समुदाय में सामने आई है - एंड्रॉइड समुदाय, जैसे-जैसे यह परिपक्व होता गया, और लोग अधिक से अधिक उत्पादक बनने के लिए नए टूल चाहते थे। कोटलिन, बस वहाँ था, निश्चित रूप से इसमें अपनी खामियाँ थीं, लेकिन यह मौजूद था और लोगों के लिए इसे सही तरीके से करने के लिए पर्याप्त अच्छा था।
आप अगले 5 वर्षों में कोटलिन को मौजूदा भाषाओं और आर्किटेक्चर के साथ प्रभावी रूप से प्रतिस्पर्धा और पूरक के रूप में कैसे देखते हैं?
अगर हम स्पष्ट से शुरू करें, तो जावा काफी आसान है, और कोटलिन पहले से ही इसे अच्छी तरह से पूरक करता है। मेरा मानना है कि हम निश्चित रूप से इसे और अधिक देखेंगे, खासकर जब टूलिंग समेकित हो जाती है और कुछ "गोल्ड स्टैंडर्ड" टूल सामने आते हैं। इनमें से एक टूल एरो है, जो कोटलिन के लिए एक फंक्शनल प्रोग्रामिंग टूलकिट है, जिसे फंकशनेल और कैटेगरी टीमों द्वारा मिलकर कुछ बेहतर, अधिक संपूर्ण बनाने के लिए विकसित किया गया है। मुझे लगता है कि यह चलन बनने जा रहा है।
जहां तक अन्य प्रोग्रामिंग भाषाओं का प्रश्न है - JVM पर हम देखेंगे कि स्काला और अन्य के साथ क्या होता है, और JVM की दुनिया के बाहर यह बताना अभी भी जल्दबाजी होगी, लेकिन मैंने कोटलिन/नेटिव और बहु-प्लेटफॉर्म परियोजनाओं के लिए कोटलिन के बारे में कुछ आशाजनक विचार देखे हैं - दोनों अभी भी बहुत प्रयोगात्मक हैं, लेकिन कुछ अवधारणा के प्रमाण मौजूद हैं, जो काम कर रहे हैं और काफी रोमांचक हैं।
जब अल्बर्टो बल्लानो की " कोटलिन फंक्टर्स, एप्लीकेटिव्स, एंड मोनाड्स इन पिक्चर्स " हैकर न्यूज़ पर आई, तो इसने एक दिलचस्प चर्चा को जन्म दिया... आपको क्या लगता है कि कोटलिन किस चीज़ का प्रवेश द्वार है?
यह तो बहुत ही घटिया लगता है! यह आधुनिक प्रोग्रामिंग भाषाओं के लिए एक प्रवेश द्वार है - जो हमें उत्पादक और खुश दोनों बनाती है। यह निश्चित रूप से कई लोगों को कार्यात्मक प्रोग्रामिंग से परिचित कराएगा - विशेष रूप से एरो जैसी चीजों के साथ, और इससे कुछ लोगों को अधिक हार्ड कोर एफपी भाषाओं में आसानी से प्रवेश करने में मदद मिलेगी।
इसके अलावा, यह कुछ अन्य चीजें भी कर सकता है, जैसे कि यह एंड्रॉइड डेवलपर्स को वेब या मूल विकास में शामिल होने के लिए प्रेरित कर सकता है, इसके सभी क्रॉस-प्लेटफॉर्म समर्थन के साथ, और साथ ही, जैसे-जैसे अधिक से अधिक डेवलपर्स इसे अपनी पहली प्रोग्रामिंग भाषा के रूप में चुनेंगे, वे अनिवार्य रूप से कोटलिन को एक बेंचमार्क के रूप में देखेंगे जिसके आधार पर वे अन्य सभी भाषाओं को मापते हैं, और यह भी काफी रोमांचक है।
भाषाविज्ञान में, अंग्रेजी या स्पेनिश जैसी किसी भाषा को अपनाने में बहुत लंबा समय लगता है। और वे कई बोलियाँ हैं, लेकिन एक पूरी तरह से नई बोली जाने वाली भाषा का उपयोग नई सॉफ़्टवेयर भाषाओं के उपयोग से कम प्रमुख है। क्या आपको लगता है कि हम उद्योग की परिपक्वता के उस बिंदु पर पहुँच जाएँगे जहाँ नई सॉफ़्टवेयर भाषाओं की दर में गिरावट आएगी? या क्या और भी नई सॉफ़्टवेयर भाषाएँ उभरती रहेंगी?
हमने पहले ही देखा है कि कई बेहतरीन प्रोग्रामिंग भाषाओं को तेज़ी से अपनाया जा रहा है, और हाल के वर्षों में — स्विफ्ट, गो, टाइपस्क्रिप्ट और रस्ट का नाम सबसे पहले आता है। उनमें से प्रत्येक को एक (या अधिक) बड़े इंजीनियरिंग संगठन द्वारा समर्थित किया जाता है जिसके पास पर्याप्त संसाधन और मौजूदा डेवलपर समुदाय होते हैं।
उनमें से प्रत्येक ने अपने संगठन की एक विशेष खुजली को भी खरोंचा, और यदि वह खुजली बहुत से अन्य डेवलपर्स द्वारा साझा की जाती है तो गोद लेने की प्रक्रिया होती है और एक भाषा आगे बढ़ती है, जिससे इसे "महत्वपूर्ण द्रव्यमान" प्राप्त करने की अनुमति मिलती है। मैंने जिन भाषाओं का उल्लेख किया है, उनमें से प्रत्येक के साथ यही हुआ - उदाहरण के लिए गो तब शुरू हुआ जब Google अच्छी तरह से समवर्ती करना चाहता था, और रस्ट का एक उद्देश्य कभी भी क्रैश नहीं होना था।
जहां तक भविष्य की बात है, मुझे लगता है कि निश्चित रूप से नए कंप्यूटिंग प्रतिमान होंगे, नए विचार विकसित किए जाएंगे (कौन जानता है, शायद ब्लॉकचेन वास्तव में किसी दिन एक चीज बन जाएगी ) - जो हमारे मौजूदा टूलिंग के साथ बहुत उपयोगी नहीं होंगे। कुछ अन्य उदाहरण क्वांटम कंप्यूटिंग या एआई हैं।
हालाँकि आजकल ज़्यादातर भाषाएँ सामान्य प्रयोजन की होने का दावा करती हैं, फिर भी इसका मतलब यह नहीं है कि वे हर उद्देश्य के लिए समान रूप से उपयुक्त हैं। हम नए उद्देश्यों को देखेंगे जिनके लिए नई भाषाओं की ज़रूरत होगी।
चलिए ज़ैन नाम के व्यक्ति के बारे में बात करते हैं। आपकी निजी वेबसाइट पर बायो के पहले दो शब्द हैं "स्पेस काउबॉय।" क्या कुछ लोग आपको प्यार का गैंगस्टर कहते हैं? क्या दूसरे लोग आपको मौरिस कहते हैं? क्या आप प्यार के पोम्पेटस का प्रतीक हैं?
हा, मुझे वह गाना बहुत पसंद है! गैंगस्टर ऑफ लव, शायद, क्योंकि मुझे नहीं लगता कि कोई भी ज़ैन को मौरिस में गलत तरीके से लिख पाया है, यहां तक कि स्टारबक्स स्टाफ भी नहीं। मुझे रॉकेट भी बहुत पसंद हैं और मैं अभी भी फायरफ्लाई के खोने का शोक मनाता हूं, इसलिए यह भी एक तरह से स्पेस काउबॉय थीम है।
उस "शीर्षक" के पीछे की असली कहानी यह है कि कुछ साल पहले, जब मैं अभी भी एक स्टार्टअप चला रहा था, जिसे मैंने विश्वविद्यालय के कुछ दोस्तों के साथ मिलकर शुरू किया था। अजनबियों से पैसे मांगते समय (यानी निवेश जुटाने के लिए) थोड़ा ज़्यादा वैध दिखने के लिए, हमने अपने-अपने लिए बिज़नेस कार्ड बनवाए थे।
मुझे शीर्षकों का बहुत शौक नहीं है, खासकर सी-शीर्षकों का, जब हर कोई लगभग सब कुछ कर रहा होता है, इसलिए मैंने दूसरी तरफ जाने का फैसला किया और स्पेस काउबॉय को चुना जो किसी भी चीज़ से ज़्यादा सटीक नहीं है। कम से कम मुझे लगा कि यह एक अच्छी बातचीत शुरू करने वाली चीज़ होगी।
आपने इसके बारे में जो पूछा, उससे यह सिद्ध होता है कि यह बातचीत शुरू करने के लिए कितना अच्छा विषय है।
कहा जाता है कि आपको वेस्ट कोस्ट स्टाइल IPA पसंद है। मैं अभी कोलोराडो में हूँ और मुझे लैगुइनाटिस की याद आती है। आपके सबसे अच्छे 3/5 वेस्ट कोस्ट IPA कौन से हैं?
मुझे वे हिंसक रूप से मजबूत और निर्दयतापूर्वक हॉपी पसंद हैं।
जब भी मैं वेस्ट कोस्ट जाता हूँ तो मैं रशियन रिवर का प्लिनी द एल्डर और बेशक स्टोन आईपीए ज़रूर पीता हूँ - दोनों ही ड्राफ्ट हैं, ज़ाहिर है। जब मैं घर के नज़दीक होता हूँ तो मैं ब्रूडॉग का जैक हैमर पीता हूँ।
एक अच्छा डेवलपर प्रचारक क्या होता है? आप अपने काम में कैसे बेहतर हुए हैं? पुशर तकनीक को प्रचार के लायक क्या बनाता है?
एक देव प्रचारक (सामान्य रूप से कोई भी डेवलपर संबंध व्यक्ति) के लिए सबसे महत्वपूर्ण बात सिखाने और ज्ञान साझा करने का सच्चा जुनून होगा। वास्तव में, शायद सच्चा होना और भी महत्वपूर्ण है। पूर्ण विराम। डेवलपर्स स्वाभाविक रूप से BS डिटेक्टर होते हैं जिन्हें बेची जाने वाली चीजें पसंद नहीं होती हैं।
यह भी एक बहुत अच्छा एहसास है जब आप जानते हैं कि आपने किसी को बेहतर डेवलपर बनने में मदद की है।
सबसे पहली चीज़ जो मुझे बेहतर करनी पड़ी, वह है समय प्रबंधन। डेवलपर पृष्ठभूमि से आने के कारण, आपके लिए कुछ कार्यों के लिए समय का बड़ा हिस्सा आवंटित करना बहुत आम बात है। मेरी वर्तमान नौकरी उससे कहीं ज़्यादा गतिशील है, और शुरू में जब मुझे उस बदलाव या समायोजन की उम्मीद नहीं थी, तो यह काफी भारी था । निर्माता और प्रबंधक के शेड्यूल पर पॉल ग्राहम के बेहतरीन निबंध ने मेरी बहुत मदद की।
एक और उपयोगी कौशल जो मैंने सीखा है, वह है परियोजना प्रबंधन - उदाहरण के लिए, कोटलिन की स्थिति के साथ, मेरा अधिकांश काम सर्वेक्षण की स्थापना और शुरू में सामग्री बनाने के इर्द-गिर्द घूमता था, और फिर अधिक पारंपरिक परियोजना प्रबंधन में चला गया, जैसे कि इसमें शामिल अन्य टीमों के साथ समन्वय करना, जैसे कि डिजाइन और डेवलपमेंट (उन्होंने यह काम किया है, मैंने नहीं, फिर से धन्यवाद - आप जानते हैं कि आप कौन हैं), और अंत में विभिन्न प्रकाशनों में शब्द को बाहर निकालना, वेब पर साक्षात्कार करना।
पुशर की तकनीक इस बात के लिए प्रसिद्ध है कि इसे कितनी तेजी से एकीकृत किया जाता है, साथ ही इस तथ्य के लिए भी कि "यह बस काम करता है"।
इस तरह, प्रचार करना बहुत आसान है। मेरे पास मोबाइल डेवलपमेंट कॉन्फ्रेंस में भी लोग आए और उन्होंने मुझे बताया कि पुशर का इस्तेमाल करने वाली वेब टीम के उनके सहकर्मियों ने उनसे कहा कि वे मुझे बताएं कि हमारा चैनल उत्पाद कितना बढ़िया है - यह रोमांचक था 😁
कुल मिलाकर, पुशर के दीर्घकालिक दृष्टिकोण को साकार करने में कोटलिन कहाँ फिट बैठता है?
हमने पहले ही अपने Android SDK के लिए प्राथमिक विकास भाषा के रूप में Kotlin पर दांव लगा दिया है। हमने नए उत्पादों के लिए SDK से शुरुआत की - Beams , Chatkit और Feeds , और हम वर्तमान में इससे काफी खुश हैं।
हम यह भी मानते हैं कि कोटलिन में सबसे रोमांचक और व्यस्त समुदायों में से एक है, और यही कारण है कि हमने कोटलिन की स्थिति सर्वेक्षण और इसके लिए रिपोर्ट बनाने का फैसला किया। हम निश्चित रूप से आशा करते हैं कि कोटलिन डेवलपर्स को खुश और उत्पादक बनाता रहे, और कोटलिन की स्थिति इसके अपनाने को और आगे बढ़ाने में मदद करती है!
पुशर , हमारा साप्ताहिक प्रायोजक, संचार और सहयोग API बनाता है जो दुनिया भर के ऐप्स को शक्ति प्रदान करता है, जो वेब, मोबाइल, साथ ही सबसे लोकप्रिय बैकएंड स्टैक के लिए आसानी से एकीकृत SDK द्वारा समर्थित है। आरंभ करें।