
रयान डाहल ने 2009 में Node.js की शुरुआत की, कुछ साल बाद सेवानिवृत्त हुए, और पिछले हफ्ते एक नया प्रोजेक्ट बनाया:
deno - V8 (
GitHub ,
unpacking )
पर एक सुरक्षित टाइपस्क्रिप्ट रनटाइम ।
यह
साक्षात्कार को याद करने का समय है कि रयान ने अगस्त 2017 में मैपिंग द जर्नी पॉडकास्ट दिया, अपने बारे में, अपने करियर के बारे में, नोड.जेएस के बारे में, और उसने इसे करना क्यों बंद कर दिया, वह अब (उस समय) क्या काम कर रहा है।
इस साक्षात्कार के अनुवाद का एक टुकड़ा पहले से ही Habré:
Creator of Node.js पर था: "सर्वर के लिए मैं गो के अलावा किसी अन्य भाषा की कल्पना नहीं कर सकता ।
" इस पोस्ट में पूरा अनुवाद शामिल है।
रियान डाहल Google ब्रेन प्रोजेक्ट में एक इंजीनियर है और क्रोम एन 8 इंजन पर आधारित एक जावास्क्रिप्ट रनटाइम Node.js का निर्माता है। रयान वर्तमान में गहन शिक्षण अनुसंधान में लगे हुए हैं। वह मुख्य रूप से छवि परिवर्तन - रंगीकरण और सुपर रिज़ॉल्यूशन पर काम करता है। उन्होंने कई ओपन सोर्स प्रोजेक्ट्स के विकास में भाग लिया, जिनमें HTTP Parser और libuv शामिल हैं।
प्रमोद: सभी को नमस्कार। यात्रा के मानचित्रण में आपका स्वागत है। जब Node.js की बात आती है, तो हर कोई रयान डाहल का नाम जानता है। उन्होंने दिखाया कि हम गलत तरीके से इनपुट / आउटपुट के साथ काम कर रहे हैं, और हमें सिखाया है कि "शुद्ध async" मॉडल का उपयोग करके कैसे विकसित किया जाए। हमारे अतिथि आज रयान डाहल हैकर, प्रतिभाशाली प्रोग्रामर और नोड के निर्माता हैं। रयान, मुझे आपसे मिलकर बहुत खुशी हुई, यह बहुत अच्छा सम्मान है। आपका स्वागत है!रयान: हाय! आपको देखकर मुझे भी खुशी हुई।
पी।: रयान, आप सबसे अच्छी तरह से नोड के निर्माता के रूप में जाने जाते हैं। मुझे बताइए, तकनीक में दिलचस्पी होने से पहले आपने क्या किया?R: एक बच्चे के रूप में, मैं सैन डिएगो में रहता था। जब मैं 6 साल का था, तो मेरी मां ने मुझे एक Apple 2C खरीदा था, इसलिए मुझे काफी पहले कंप्यूटर की सुविधा मिल गई। वैसे, अब मैं 36 साल का हूं। इसलिए मैं इंटरनेट के निर्माण के दौरान बड़ा हुआ हूं। पहले मैंने एक स्थानीय कॉलेज में अध्ययन किया, और उसके बाद मैंने गणित का अध्ययन करने के लिए सैन डिएगो में कैलिफोर्निया विश्वविद्यालय में प्रवेश किया। फिर मैंने रोचेस्टर विश्वविद्यालय में गणित में स्नातक विद्यालय में प्रवेश लिया। हाँ, वहाँ मैंने बीजगणितीय टोपोलॉजी का अध्ययन किया - एक ऐसा अमूर्त अनुशासन जो मुझे बहुत सुंदर लगता था। लेकिन कुछ समय बाद मैं ऊब गया, क्योंकि मुझे लगा कि उसके पास वास्तविक जीवन के आवेदन नहीं हैं। स्नातक करने के बाद, मैंने पीएचडी करने का फैसला किया, लेकिन महसूस किया कि मैं अपने जीवन के बाकी हिस्सों को गणित के लिए समर्पित नहीं करना चाहता था, और कार्यक्रम छोड़ दिया। मैंने दक्षिण अमेरिका के लिए एक तरफ़ा टिकट खरीदा और एक साल वहां "भूखे छात्र" के रूप में बिताया। और फिर उसने एक आदमी, एरिक के साथ साइट बनाना शुरू कर दिया। और इसलिए एक डेवलपर के रूप में मेरा करियर शुरू हुआ। मैंने एक स्नोबोर्ड कंपनी के लिए रूबी ऑन रेल्स पर एक साइट बनाई।
पी।: बढ़िया! यह शायद एक दिलचस्प अनुभव है - पीएचडी कार्यक्रम छोड़ दें, दक्षिण अमेरिका जाएं और वेब डेवलपर बनें।R: मैं करूँगा। यह सिर्फ इतना है कि आपको स्नातक अध्ययन के बाद अमूर्त कार्यों के साथ काम करने की आदत है, और वेबसाइट विकास एक बहुत ही विशिष्ट प्रक्रिया है। लेकिन मैंने यह सब एक तरह के सुंदर गणितीय सिद्धांत में बदलने की कोशिश की, जैसे कि मैंने मैजिस्ट्रेटीविटी में अध्ययन किया था। मुझे लगता है कि मुझे वास्तव में पसंद आया कि रूबी आपको विकास के दौरान विचारों को अधिक स्पष्ट रूप से व्यक्त करने की अनुमति देती है। इसने मुझे दिलचस्पी दी और कुछ विचार दिए। मुझे लगता है कि यह केवल रेल के बारे में है। मॉडल-व्यू-कंट्रोलर योजना तब नई नहीं थी, लेकिन मुझे लगता है कि यह रेल के लिए लोकप्रिय हो गया है। यह संयोजन था जो मुझे पसंद आया।
P: हाँ, वेब विकास एक दिलचस्प गतिविधि है, और रूबी एक महान उपकरण है। उसके बाद, आप जर्मनी में एक फ्रीलांस डेवलपर थे। आपकी एक परियोजना नोड थी। आपने उस पर 6-8 महीनों के लिए काम करना जारी रखा, है ना?R: यह बात है। दक्षिण अमेरिका के बाद, मैंने लड़की को जर्मनी ले जाया - वह जर्मन है, और उसे विश्वविद्यालय लौटने की जरूरत है। मैंने एक रूबी सम्मेलन में जाना शुरू किया, जहां लोगों ने इस नए मॉडल-व्यू-कंट्रोलर प्रतिमान पर चर्चा की। वहां मेरी मुलाकात क्रिस नेउकिरेचन नाम के एक लड़के से हुई। उन्होंने रैक का निर्माण किया, जो एक परियोजना है जो अनिवार्य रूप से एक वेब सर्वर का सरलीकृत अमूर्तन था। रैक ने एक एकल फ़ंक्शन के साथ वेब सर्वर को एक इंटरफ़ेस में बदल दिया, जहां आप अनुरोध कर सकते हैं और प्रतिक्रियाएं प्राप्त कर सकते हैं। तब मैंने नेग्नेक्स मॉड्यूल के साथ इंजनयार्ड के लिए एक फ्रीलांस प्रोजेक्ट में काम किया। आपको याद दिला दूं कि नगीनक्स में सब कुछ अतुल्यकालिक रूप से काम करता है, इसलिए जब आप इसके लिए एक मॉड्यूल बनाते हैं, तो आपको ताले से बचने की आवश्यकता होती है। जब मैं नगीनक्स वेब सर्वर पर नॉन-ब्लॉकिंग आई / ओ के साथ काम कर रहा था, तो मैं क्रिस न्यूकीर्चेन की रैक परियोजना से मिला। मुझे लगता है कि इसीलिए मुझे इन दोनों चीजों को मिलाने का विचार आया।
पी।: यह पता चला है कि रैक और नग्नेक्स के आधार पर आपको एक रूपरेखा विकसित करने का विचार मिला जो सर्वर साइड से जावास्क्रिप्ट कोड निष्पादित करेगा और प्रदर्शन में काफी वृद्धि करेगा। आपने ऐसा करने के लिए अगले 6 महीने कैसे बिताने का फैसला किया?आर: इन दो तत्वों - रैक और नगीने अपनी अतुल्यकालिकता के साथ - एक साथ वेब सर्वर इंटरफ़ेस को सरल बनाया। दिसंबर 2008 में, क्रोम जारी किया गया था। और इसके साथ, जावास्क्रिप्ट V8 इंजन। अधिक सटीक रूप से, इंजन ही नहीं, बल्कि रनटाइम जहां जेआईटी संकलन होता है। सामान्य तौर पर, V8 की रिलीज के साथ, मैं इसे समझने लगा। V8 दिलचस्प, साफ-सुथरा और तेजी से काम करता दिख रहा था। और अचानक यह मुझ पर छा गया। जावास्क्रिप्ट एकल-थ्रेडेड है, और हर कोई पहले से ही इस पर गैर-अवरुद्ध एल्गोरिदम लिख रहा है। मेरा मतलब है, हर कोई पहले से ही ब्राउज़र में AJAX अनुरोध कर रहा है, जो वैसे भी गैर-अवरुद्ध हैं। मैंने सोचा: महान, जावास्क्रिप्ट प्लस अतुल्यकालिक I / O और एक HTTP सर्वर के लिए थोड़ी सी कार्यक्षमता जो मुझे चाहिए। और मैं इस विचार से इतना प्रेरित था कि बिना किसी विराम के मैंने अगले 4 वर्षों तक इस पर काम किया।
पी।: हाँ, जावास्क्रिप्ट और एसिंक्रोनस I / O ने ठीक काम किया। मुझे लगता है कि डेवलपर्स केवल इस तरह के ढांचे की प्रतीक्षा कर रहे थे। और मैं जिज्ञासा से बाहर पूछता हूं: जब आपने नोड विकसित किया था, तो क्या आपके पास किसी प्रकार का संरक्षक था, या आपने इसे स्वयं प्रबंधित किया था?R: सामान्य तौर पर, मैंने सब कुछ खुद किया। मेरे कुछ दोस्त प्रोग्रामर हैं, और उन्होंने कुछ सलाह दी, लेकिन मैंने अपने कमरे में अकेले काम करना शुरू कर दिया। फिर मैं सैन फ्रांसिस्को चला गया, और मुझे जॉयंट में काम पर वास्तव में बहुत सारे पेशेवर प्रोग्रामर मिले। पहले से ही, कई ने नोड के लिए सलाह और सुझाव दिए।
पी।: स्पष्ट। कृपया हमें नोड विकास प्रक्रिया के बारे में बताएं। बेशक, 2009 के बाद से बहुत समय बीत चुका है ...आर: मेरे लिए, जीवन के सबसे अच्छे क्षण हैं जब मैं अपने सिर के साथ किसी चीज में खुद को डुबोता हूं, जब मैं किसी विचार पर विश्वास करता हूं। और जब मेरे पास उस पर लगन से काम करने का समय होगा। नोड एक ऐसा विचार था जिसे लागू करने की आवश्यकता थी, और यदि मेरे लिए नहीं, तो किसी और ने इसे लिया होगा। यह सिर्फ इतना हुआ कि मेरे पास बहुत कम काम था और पर्याप्त खाली समय था। मैं कई महीनों के लिए नोड समर्पित कर सकता था - बस ऐसे समय में आप प्रारंभिक संस्करण जारी कर सकते हैं। और यह बहुत अच्छा और मजेदार था।
पी।: क्लास, आपने बहुत अच्छा काम किया। नोड शुद्ध async प्रोग्रामिंग मॉडल पर आधारित है। क्या आपको लगता है कि इस विचार ने अच्छा काम किया?आर: एक दिलचस्प सवाल। कई साल हो गए हैं, और मैंने खुद 2012-2013 से कहीं भी नोड पर काम नहीं किया है। बेशक, इस समय के दौरान नोड काफी बढ़ गया है। जब उन्होंने पहली बार छोड़ा, तो मैंने बहुत सारे व्याख्यान दिए और यह समझाने की कोशिश की कि शायद हम सब कुछ गलत कर रहे हैं, और गैर-अवरुद्ध I / O कई विकास समस्याओं को हल करने में मदद करेंगे। या हम थ्रेड के बारे में पूरी तरह से भूल सकते हैं और प्रक्रिया के सार और क्रमांकन के साथ प्राप्त कर सकते हैं। लेकिन एक ही समय में, एक प्रक्रिया के ढांचे के भीतर, कई अनुरोधों पर कार्रवाई की जाएगी, और इसलिए हम अतुल्यकालिक हासिल करेंगे। उस समय, मुझे इस विचार पर ईमानदारी से विश्वास था, लेकिन पिछले कुछ वर्षों में मैंने महसूस किया कि यह एकमात्र अवसर से बहुत दूर है। खासकर गो की रिहाई के बाद। मेरी राय में, गो पहले भी दिखाई दिया था, लेकिन मैंने पहली बार 2012 में इसके बारे में सुना। तब उसके पास पहले से ही एक अच्छा रनटाइम और उच्च गुणवत्ता वाला हरा धागा था, और इस सब के साथ सार का उपयोग करना आसान था। यह I / O को अवरुद्ध करने जैसा था, लेकिन जैसा कि मैं इसे समझता हूं, गो और ऑपरेटिंग सिस्टम के बीच हरे रंग के धागे के बीच का इंटरफ़ेस वास्तव में गैर-अवरुद्ध है।
हालांकि, यह सब उपयोगकर्ता को एक अवरुद्ध इंटरफ़ेस के रूप में उपलब्ध था, और, मेरी राय में, इस मॉडल के फायदे हैं। एक नियम के रूप में, यह समझना आसान है कि एल्गोरिदम को अवरुद्ध करने में क्या हो रहा है। जब क्रियाओं का एक क्रम होता है, तो आप इसका अनुसरण कर सकते हैं: A प्रदर्शन करें, उत्तर की प्रतीक्षा करें, या शायद कोई त्रुटि पकड़ लें। फिर बी निष्पादित करें और उत्तर या त्रुटि भी प्राप्त करें। नोड में, सब कुछ अधिक जटिल है क्योंकि आपको दूसरे फ़ंक्शन कॉल में कूदना होगा।
पी।: मुझे गो में प्रोग्रामिंग मॉडल भी पसंद है। गोरोटाइन का उपयोग करना एक खुशी है। अब मेरी टीम गो पर एक वितरित आवेदन लिख रही है।आर: हाँ, कुछ प्रकार के अनुप्रयोगों के लिए गो सबसे उपयुक्त है - उदाहरण के लिए, जब एक सर्वर का निर्माण होता है। मैं सोच भी नहीं सकता कि किसी और चीज़ के साथ कैसे काम किया जाए। हालाँकि, मुझे लगता है, फिर भी, गैर-अवरुद्ध प्रतिमान ने जावास्क्रिप्ट के लिए बहुत अच्छा काम किया, जिसमें कोई सूत्र नहीं हैं। इसके अलावा, जावास्क्रिप्ट में अब async कीवर्ड है और आप एसिंक्रोनस फ़ंक्शंस के साथ काम कर सकते हैं, इसलिए आपको अब अनाम फ़ंक्शंस के बीच जल्दबाज़ी नहीं करनी होगी और कॉलबैक विडल्स को समझना होगा। जावास्क्रिप्ट के नए संस्करणों ने काम करना आसान बना दिया है। हालांकि, मेरा मानना है कि बड़े पैमाने पर वेब सर्वर के लिए नोड सबसे अच्छा विकल्प नहीं है। इसके लिए मैं खुद गो जरूर चुनूंगा। ईमानदारी से, इसीलिए मैंने नोड पर काम करना बंद कर दिया। मुझे बस एहसास हुआ कि सर्वर को विकसित करने के लिए यह एक आदर्श प्रणाली नहीं है।
ताज्जुब है, यह मुझे लगता है कि नोड वास्तव में शानदार ढंग से खुद को सिर्फ ग्राहक पक्ष में दिखाया गया है। यह आपको साइटें बनाते समय स्क्रिप्ट का उपयोग करने की अनुमति देता है। उदाहरण के लिए, Browserify, जैसा कि यह था, क्लाइंट-साइड जावास्क्रिप्ट पैक करता है। यह क्लाइंट को सर्वर पर जावास्क्रिप्ट को प्रोसेस करने की अनुमति देता है। एक अन्य उदाहरण छोटे विकास सर्वर, या यहां तक कि उत्पादन सर्वर हैं जो लाइव ट्रैफिक को संभालते हैं। नोड कुछ चीजों के लिए बहुत उपयोगी और सुविधाजनक हो सकता है। लेकिन अगर आप एक विशाल वितरित DNS सर्वर बढ़ा रहे हैं, तो मैं नोड चुनने की सिफारिश नहीं करूंगा।
P: दुनिया भर के डेवलपर्स इसके बारे में सोचने के लिए उपयोगी पाएंगे। किसी भी व्यवसाय के लिए, सही उपकरण चुनना महत्वपूर्ण है, इसलिए आपके पास नोड के प्रति काफी उद्देश्यपूर्ण रवैया है। आपने पहली बार JsConf 2009 बर्लिन सम्मेलन में Node.js की शुरुआत की। शायद आप हैरान थे कि उसने इतनी जल्दी सफलता हासिल कर ली?आर: बिल्कुल। सामान्य तौर पर, पूरे चार साल तक मैंने आश्चर्य करना बंद नहीं किया। नोड एक अविश्वसनीय गति से विकसित हुआ है और समुदाय ने वास्तव में इसे पसंद किया है।
P: उसके बाद, आपने जोंत को सैन फ्रांसिस्को में ज्वाइन किया और नोड पर काम जारी रखा, है ना? हमें अपने अनुभव के बारे में बताएं। डेवलपर्स बहुत प्रसन्न थे, और आप घटनाओं के केंद्र में थे।R: हाँ, यह मेरे जीवन का मुख्य आकर्षण में से एक था। मैं वास्तव में घटनाओं के केंद्र में था, विभिन्न सम्मेलनों में गया। एक बार जब मैं जापान भी गया, और लोगों ने मुझे अपने साथ एक तस्वीर लेने के लिए कहा ... तो मुझे भी असहज महसूस हुआ। जब मैंने नेट पर किसी चीज़ पर टिप्पणी की, तो ऐसा लगा कि सौ लोगों ने मुझे तुरंत जवाब दिया। तब मुझे एहसास हुआ कि मुझे अपने शब्दों को ध्यान से चुनना होगा और सोचना होगा कि वे मुझे कैसा अनुभव करते हैं - ऐसा लगता है कि उन्होंने वास्तव में मेरी बात सुनी, और यह असामान्य था। मुझे यह सब पसंद नहीं आया आखिरकार, मैं एक प्रोग्रामर हूं और बस कोड लिखना चाहता हूं, और कभी-कभी अनुचित सावधानी के बिना अपनी राय व्यक्त करता हूं। इस संबंध में, मैं थोड़ा असहज था।
P: जब आप नोड बनाए थे तब आप 29 या 30 साल के थे? और वह पहले ही ऐसी प्रभावशाली तकनीक बन चुका है।आर: हाँ। लेकिन फिर भी मैं एक नौसिखिया डेवलपर की संभावना अधिक थी।
पी।: रयान, उस समय कई अलग-अलग परियोजनाएं थीं जो सर्वर साइड पर जावास्क्रिप्ट के साथ काम करती थीं। नोड एकमात्र समाधान नहीं था, लेकिन यह सबसे सफल था - आप क्यों सोचते हैं?आर: यह सच है, कई लोगों ने सर्वर काम के लिए जावास्क्रिप्ट को अनुकूलित करने की कोशिश की। अब मुझे उनके नाम भी याद नहीं हैं।
तथ्य यह है कि इन सभी परियोजनाओं में इनपुट / आउटपुट को अवरुद्ध करने का उपयोग किया गया था, और यह जावास्क्रिप्ट को व्यवस्थित करने के तरीके के साथ बहुत अच्छी तरह से नहीं चला, क्योंकि यह धाराओं के साथ काम नहीं करता है। और यदि आप अवरुद्ध I / O का उपयोग करते हैं, तो आप अनुरोधों को संसाधित करने में सक्षम नहीं होंगे। यही है, आपको उन्हें एक बार में एक प्रक्रिया करना होगा, और कुछ भी नहीं आता है। इसके अलावा, मैंने एक गुणवत्ता HTTP मॉड्यूल जोड़ा और दिखाया कि कैसे एक HTTP सर्वर, साथ ही एक साधारण टीसीपी सर्वर को कॉन्फ़िगर किया जाए। मैंने यह सुनिश्चित करने की कोशिश की कि ये चीजें ठीक से काम करें और लोग बिना किसी समस्या के साइटों का निर्माण कर सकें। मुझे यह स्वीकार करना चाहिए कि एक वेब सर्वर को उठाना एक आसान काम नहीं है, और कई परियोजनाओं को कार्यक्षमता की आवश्यकता है जो समुदाय को अपने दम पर पूरा करना था। लेकिन किसी ने कुछ भी नहीं बनाया, क्योंकि सिस्टम का उपयोग करने के लिए कुछ भी नहीं था। मेरी राय में, किसी भी नए ढांचे या संपूर्ण उत्पाद के लिए, आपको एक बुनियादी नमूने की आवश्यकता है जिसे आप तुरंत उपयोग कर सकते हैं। यह नोड का फायदा था - लोग बस इसे डाउनलोड कर सकते हैं और तुरंत एक वेब सर्वर सेट कर सकते हैं।
पी।: वास्तव में, अच्छे डिजाइन बहुत महत्वपूर्ण हैं, क्योंकि स्थापना और उपयोग में आसानी है। कई और पहले से ही जावास्क्रिप्ट में कोड लिखने में सक्षम थे, इसलिए वे तुरंत व्यापार में उतर सकते थे। जब मैंने पहली बार नोड के साथ काम करना शुरू किया, तो मेरे जावास्क्रिप्ट के ज्ञान ने भी बहुत मदद की।आर: यह मुझे लगता है कि हम यह सोचने के आदी हैं कि भाषाओं के बीच स्विच करना काफी आसान है। लेकिन यहां तक कि अगर आप पहले से ही कुछ भाषा जानते हैं, तो एक नई भाषा के लिए एक संदर्भ बनाना इतना आसान नहीं है। कई डेवलपर्स पहले से ही जावास्क्रिप्ट जानते हैं, इसलिए वे एक नए संदर्भ में एक परिचित भाषा का उपयोग करने में रुचि रखते हैं, नए उपकरण के साथ। यह पता चला है कि एक ही भाषा अधिक अवसरों को खोलती है।
P: यह सुनिश्चित करने के लिए है। 2012 में, बड़ी संख्या में डेवलपर्स ने नोड पर काम किया। आपने जॉयंट से आइजैक स्कैल्टर को परियोजना को छोड़ने और सौंपने का फैसला क्यों किया?R: मुझे लगता है कि इसके लिए दो कारण थे। फिर मैंने 4 साल तक नोड पर काम किया, और, सामान्य तौर पर, मैंने जो कुछ भी योजना बनाई थी। मुझे उम्मीद नहीं थी कि नोड एक विशाल एपीआई में बदल जाएगा। मेरा विचार एक छोटा, कॉम्पैक्ट कोर बनाना था, जिस पर लोग अपने मॉड्यूल का निर्माण कर सकें। मैं कई प्रमुख विशेषताओं का समर्थन करना चाहता था। एक्सटेंशन मॉड्यूल को बहुत शुरुआत से जोड़ा गया था, फिर हमने नेटवर्क लाइब्रेरी, HTTP, UDP, TCP को टाइड किया और सभी फ़ाइल सिस्टम तक पहुंच प्रदान की। तब बॉक्स में से पांच की एक टीम ने इसे विंडोज के लिए स्थापित करने के महत्वपूर्ण कार्य को संभाला। हम विंडोज़ समरूपता का उपयोग करना चाहते थे - पूर्ण बंदरगाहों - अतुल्यकालिक I / O के लिए। इसलिए, हमें रूट लाइब्रेरी को फिर से लिखना पड़ा, और इससे हमें लिबव लाइब्रेरी मिली। एक बिंदु पर, सब कुछ तैयार था, और हमने विंडोज के लिए नोड जारी किया। फिर मैंने सोचा: महान। मैंने अपना लक्ष्य प्राप्त कर लिया है, और मुझे खुशी है कि मैं सब कुछ दिमाग में लाने में कामयाब रहा। बेशक, अभी भी एक हजार कीड़े हैं जो जीवन के अंत तक तय किए जा सकते हैं, लेकिन टीम में पर्याप्त लोग हैं जो इस बात का ध्यान रख सकते हैं। मैं दूसरी चीजें करना चाहता था। इसके अलावा, गो बाहर आया, और मेरे लिए नोड अब केवल सर्वर विकास का एकमात्र समाधान नहीं था। खैर, मैं हर बार ध्यान देना चाहता हूं कि मैं हर बार ब्लॉग पर कुछ लिखूं।
पी।: स्पष्ट। हां, हर कोई इसे पसंद नहीं करता है। जब आपने नोड पर काम करना शुरू किया, तो आपके पास कुछ योजनाएं थीं। क्या आपको लगता है कि नोड ने उन्हें अब पूरा कर लिया है?आर: बेशक, नोड मेरी सभी अपेक्षाओं को पार कर गया। आखिरकार, अब इसका उपयोग सैकड़ों हजारों लोगों द्वारा किया जाता है।
पी।: मुझे बताएं, जब आपने नोड विकास के इस दिलचस्प चरण को पूरा किया तो आपने क्या करने का फैसला किया?आर: जॉयंट छोड़ने के बाद, मैं न्यूयॉर्क चला गया और अपने स्वयं के प्रोजेक्ट पर काम करने के लिए एक छोटी छुट्टी ली। मेरे पास उनमें से कई थे। उस समय इंस्टाग्राम बाहर आया था, तब यह मूल और सरल था। सभी ने कहा: "वाह, यह बहुत आसान है, मैंने इसे खुद बनाया होगा।" और हां, मैंने भी ऐसा ही सोचा था। मेरे पास एक सामाजिक नेटवर्क परियोजना थी, मैंने सी ++ के लिए एक बिल्ड सिस्टम और एचटीएमएल के लिए एक और बिल्ड सिस्टम भी बनाया था, जो ब्राउजरिफाई के समान था - यह स्मार्टली जावास्क्रिप्ट और एचटीएमएल पैक करता था। सामान्य तौर पर, मेरे पास बहुत सारी परियोजनाएँ थीं, लेकिन, यह मुझे प्रतीत होता है, उनमें से एक भी वास्तव में सफल नहीं थी। उनमें से कुछ अभी भी विकास के अधीन हैं, उदाहरण के लिए, मेरा सामाजिक नेटवर्क। किसी दिन मैं इसे फिर से ले जाऊंगा। यही मैंने कुछ समय के लिए किया। फिर मैंने दृढ़ तंत्रिका नेटवर्क के बारे में पढ़ना और सीखना शुरू किया और कैसे छवि वर्गीकरण की समस्या हल हो गई, और मुझे मशीन सीखने में बहुत दिलचस्पी थी।
P: आप Google ब्रेन प्रोग्राम के निवासी भी थे। आपके इंप्रेशन क्या हैं?आर: हां, मैंने हाल ही में माउंटेन व्यू में एक साल बिताया। मैं थोड़ा पीछे हट जाऊंगा: दो साल पहले TensorFlow बाहर आया था।
उसी समय, मशीन लर्निंग प्रयोगशाला में Google ब्रेन ने निवासियों के लिए एक नए कार्यक्रम की घोषणा की, जिसके अनुसार लगभग 20 लोगों को वहां आमंत्रित किया जाता है। मुझे लगता है कि यह विचार उन लोगों को आमंत्रित करने के लिए था जो मशीन लर्निंग से परिचित नहीं हैं, लेकिन जो गणित और प्रोग्रामिंग में सोचते हैं। जो लोग इन नए विचारों के साथ काम करने में रुचि रखते थे। मशीन लर्निंग लगातार बदल रही है और बहुत सारे काम किए जा रहे हैं, लेकिन अब समुदाय ने अंततः तंत्रिका नेटवर्क पर ध्यान केंद्रित किया है। यह माना जाता है कि मशीन सीखने के लिए यह सबसे कुशल एल्गोरिदम है। इसलिए, इस तरह का एक विचार आया - उन लोगों को इकट्ठा करने के लिए जो नए TensorFlow ढांचे के साथ काम करने में रुचि रखते हैं, ताकि संभवतः कुछ दिलचस्प निष्कर्ष पर आ सकें। मैंने प्रयोगशाला में एक साल बिताया। मूल रूप से, मैंने मॉडल विकसित किए और उनके बारे में वैज्ञानिक पत्र लिखे। अधिकांश भाग के लिए, मैंने छवि परिवर्तन कार्यों के साथ काम किया। यही है, अगर किसी प्रकार की स्रोत छवि है, तो आपको यह अनुमान लगाने की आवश्यकता है कि कौन सी छवि आउटपुट होगी। मेरी राय में, यह एक बहुत ही दिलचस्प काम है। वास्तविक उदाहरणों में से एक रंगकरण है। आप एक श्वेत और श्याम छवि ले सकते हैं और यह अनुमान लगाने की कोशिश कर सकते हैं कि रंग क्या परिणाम देगा। सबसे दिलचस्प बात यह है कि इस कार्य के लिए प्रशिक्षण के लिए डेटा की पूरी अनंतता है। आखिरकार, आप किसी भी रंगीन फोटो से संतृप्ति को पूरी तरह से हटा सकते हैं और मूल काले और सफेद छवि प्राप्त कर सकते हैं। मशीन सीखने में मुख्य समस्याओं में से एक बड़ी मात्रा में डेटा की आवश्यकता है, और ऐसे कार्यों के लिए बहुत अधिक डेटा है। हाल ही में, जेनेरेटिव मॉडल पर बहुत सारे शोध। उदाहरण के लिए, जनरेटिव-प्रतिस्पर्धी नेटवर्क और पिक्सेल कनैक्शनल नेटवर्क हैं जिन्होंने वास्तविक छवियों को देखना सीखा है, अर्थात वास्तविक छवियों और वास्तविक प्रतियों की तरह दिखने वाली कृत्रिम प्रतियों के बीच अंतर करना।
मैं जेनरेशन मॉडल और प्रशिक्षण के लिए एक अंतहीन डेटाबेस के इन अध्ययनों के परिणामों का उपयोग करना चाहता था, और छवि परिवर्तन कार्यों के लिए यह सब लागू करना चाहता था। मैंने सुपरसेलिंग की जांच की - यह एक ऐसी प्रक्रिया है जो आपको मूल छवि के संकल्प को बढ़ाने की अनुमति देती है। मैंने छवियों के बीच रूपांतरण के कार्य पर भी काम किया और दो रंगीकरण परियोजनाओं को पूरा किया।P: महान विवरण, रयान के लिए धन्यवाद! मैंने यह भी पढ़ा कि TensorFlow मशीन सीखने के कार्यों के लिए एक शक्तिशाली मंच है। छवि वर्गीकरण, परिवर्तन - बेशक, मैं उन पर विशेष रूप से अच्छा हूं, लेकिन मुझे यकीन है कि यह सब बहुत रोमांचक है। क्या आप मशीन लर्निंग के क्षेत्र में काम करना जारी रखते हैं?R: हां, मैं अभी भी Google पर काम करता हूं, लेकिन पहले से ही एक इंजीनियर के रूप में, और इसी तरह के कार्य करता हूं। मैं जेनरेटर मॉडल का अध्ययन करता हूं और शोधकर्ताओं को नई पीढ़ी के सिस्टम और मॉडल बनाने में मदद करता हूं।पी।: बढ़िया! यद्यपि जेनरिक मॉडल लगभग आपकी पिछली गतिविधियों से संबंधित नहीं हैं - जावास्क्रिप्ट, नोड और वेब डेवलपमेंट ...R: यह सुनिश्चित करने के लिए है। लेकिन फिर भी, मैंने गणित के साथ शुरुआत की, और मेरे पास एक अच्छा गणितीय आधार है। खैर, मैं उन लोगों में से नहीं हूं जो एक विशिष्ट क्षेत्र के लिए प्रचार कर रहे हैं। मैं या तो जावास्क्रिप्ट में या मशीन लर्निंग में गुरु के रूप में बदलना नहीं चाहता। मुझे सिर्फ दिलचस्प अवसर तलाशने हैं। सबसे बढ़कर, यह मुझे कुछ नया आविष्कार करने और निर्माण करने के लिए प्रेरित करता है जो मानवता को लाभान्वित करेगा।.: . , . Optimistic Nihilism , , . , ?आर: हां, मुझे भविष्यवाणियों के साथ और अधिक सावधान रहने की जरूरत है ... इसलिए मैं सिर्फ अपनी व्यक्तिगत राय साझा करता हूं: हम मानवीय बुद्धि से बहुत दूर हैं। मशीन लर्निंग सिस्टम जिसके साथ हम काम करते हैं या तो बहुत आदिम हैं या बिल्कुल भी कार्यात्मक नहीं हैं। मैंने सिर्फ Google ब्रेन में अपने निवास के बारे में एक ब्लॉग पोस्ट लिखा था, और वहां मैंने ऐसे मॉडल सूचीबद्ध करते समय आने वाली समस्याओं को सूचीबद्ध किया। यह मुझे लगता है कि जो लोग इस क्षेत्र से दूर हैं वे अक्सर सोचते हैं कि आप एक मॉडल ले सकते हैं, इसके लिए डेटा पास कर सकते हैं और सब कुछ अपने आप ही काम करेगा। लेकिन यह इतना सरल नहीं है। कई नुकसान और कम शोध वाले मुद्दे हैं। यहां तक कि सबसे मामूली परिणाम प्राप्त करने के लिए, कभी-कभी कई महीनों के प्रयोग और फ़िजीली अनुकूलन का समय लगता है। इसलिए हम अभी भी मानव मस्तिष्क की नकल करने से बहुत दूर हैं,लेकिन होनहार प्रौद्योगिकियां पहले से ही उभर रही हैं - उदाहरण के लिए, दृढ़ तंत्रिका नेटवर्क या त्रुटि के पीछे प्रसार विधि। और, जो उत्साहजनक है, ये प्रौद्योगिकियां तंत्रिका नेटवर्क के एक मॉडल पर आधारित हैं, जो मानव मस्तिष्क की तरह बहुत अधिक नहीं है, लेकिन कुछ हद तक इसके बारे में ज्ञान से प्रेरित है। हमारे पास उन्हें प्रशिक्षण देने के लिए GPU और विधियाँ भी हैं, और हम पहले से ही जानते हैं कि वितरित प्रशिक्षण का संचालन कैसे किया जाए। इसलिए, मेरी राय में, अभी और बड़े और बेहतर सिस्टम की नींव रखी जा रही है। व्यक्तिगत रूप से, मैं एक नास्तिक हूं, और मुझे विश्वास नहीं है कि मेरा मस्तिष्क रसायनों और न्यूरॉन्स से अधिक कुछ भी है। मेरी चेतना और किसी भी व्यक्ति की चेतना किसी तरह इन न्यूरॉन्स की बातचीत में एन्कोडेड है। इसलिए, सिद्धांत रूप में, कोई बाधा नहीं हैइन प्रक्रियाओं का अनुकरण करने के लिए, इस क्षेत्र में अधिक शोध और विकास आवश्यक हैं। यह भविष्यवाणी करना जल्दबाजी होगी कि इसमें कितना समय लगेगा।P: मैं देख रहा हूँ। रयान, आपने बहुत कुछ देखा है - मुझे बताओ, आपको क्या लगता है कि 20 वर्षों में प्रौद्योगिकी कैसे विकसित होगी?आर: मैं मशीन सीखने और इसे खोलने वाले अवसरों के लिए बहुत रुचि रखता हूं। इससे पहले कि हम सच्ची कृत्रिम बुद्धिमत्ता का निर्माण करें, इन तकनीकों को कई अलग-अलग अनुप्रयोगों में पाया जा सकता है। सिद्धांत रूप में, वे किसी भी प्रणाली में बहुत उपयोगी होंगे जहां आपको उचित धारणा बनाने की आवश्यकता होती है। उदाहरण के लिए, आप रीसाइक्लिंग केंद्रों में सामग्री को सॉर्ट करने के लिए कंप्यूटर विज़न का उपयोग कर सकते हैं। बस ऐसे अनगिनत क्षेत्र हैं जहाँ बुनियादी मशीन सीखने की तकनीक काम आएगी। मुझे लगता है कि वे तेजी से विभिन्न प्रक्रियाओं में लगाए जाएंगे, और इससे प्रौद्योगिकी के क्षेत्र में और समग्र रूप से मानवता पर बहुत बड़ा प्रभाव पड़ेगा।पी।: मैं मानता हूं, मशीन सीखना एक रोमांचक विषय है। यह देखना बेहद दिलचस्प है कि माउंटेन व्यू के साथ बिना ड्राइवर वाली कारें कैसे चलती हैं। भविष्य में किसी दिन, यह सिर्फ एक कुर्सी पर वापस लेटने और मशीन को पूर्ण नियंत्रण के साथ सौंपने के लिए बहुत अच्छा होगा। रयान, उत्कृष्ट नोड ढांचे के लिए और हमें आने के लिए धन्यवाद। और भविष्य की परियोजनाओं में शुभकामनाएँ!R: निमंत्रण के लिए धन्यवाद, बात करना दिलचस्प था!P।: धन्यवाद! वह सब है। मैं एक विनम्र और महान व्यक्ति रयान के साथ चैट करने में खुश था। उन्होंने पहले से ही एक डेवलपर के रूप में अपने करियर की शुरुआत में बहुत कुछ हासिल किया और प्रभावशाली तरीके से आगे बढ़े। अगली कहानी देखने के लिए 2 सप्ताह में मुझसे मिलें!