Google को छोड़ते हुए
(airs.com)- Ian Lance Taylor ने Google में 19 साल काम करने के बाद इस्तीफा दिया, जिनमें से ज़्यादातर समय उन्होंने Go programming language के विकास को समर्पित किया
- Go की शुरुआत 2007 की शरद ऋतु में Rob Pike, Ken Thompson, Robert Griesemer ने की थी, और Taylor जून 2008 में Russ Cox के लगभग उसी समय इसमें शामिल हुए
- शुरुआती उम्मीदों के विपरीत, Go केवल सरल विचारों के प्रयोग से आगे बढ़कर डेवलपर्स द्वारा ज़रूरत के हिसाब से चुनी जाने वाली एक सामान्य programming language बन गई
- Taylor ने GCC के लिए Go frontend, Google के अंदरूनी build system, SWIG support, team management, generic proposals सहित Go की भाषा और ecosystem की नींव से जुड़े कामों में हिस्सा लिया
- Google, Go और programming environment तीनों बदलने के साथ Taylor ने महसूस किया कि Google के Go project के साथ उनकी संगति कम हो गई है, और वे कुछ समय आराम के बाद फिर से Go में योगदान देना चाहते हैं
Google में 19 साल और Go से जुड़ना
- Ian Lance Taylor ने Google में 19 साल काम करने के बाद कंपनी छोड़ दी
- अपने कार्यकाल का अधिकांश हिस्सा उन्होंने Go programming language पर काम करते हुए बिताया
- Go की शुरुआत 2007 की शरद ऋतु में Rob Pike, Ken Thompson, Robert Griesemer ने की थी
- Taylor जून 2008 में Go team से जुड़े, और Russ Cox भी लगभग उसी समय जुड़े
- उनका कहना है कि वे खुद को भाग्यशाली मानते हैं कि उन्हें प्रतिभाशाली लोगों और दिलचस्प projects के साथ काम करने का मौका मिला
उम्मीद से कहीं व्यापक हुआ Go का उपयोग
- Taylor इस बात से हैरान थे कि Go का उपयोग वर्षों में उनकी अपेक्षा से कहीं अधिक व्यापक हो गया
- अब Go उस स्तर पर पहुंच चुका है जहां डेवलपर ज़रूरत पड़ने पर इसे एक सामान्य programming language की तरह चुन सकते हैं
- शुरुआती उम्मीद Go के बड़े पैमाने पर प्रसार से अधिक, दूसरी भाषाओं और programming environments के लिए उपयोगी विचारों के उदाहरण देने की थी
compiler और language specification पर काम
- Go पर Taylor का पहला काम GCC compiler में Go frontend जोड़ना था
- उस समय Go project में Inferno C compiler पर आधारित एक मौजूदा compiler पहले से मौजूद था
- दोनों compilers के साथ मौजूद रहने से language definition को अधिक स्पष्ट बनाया जा सका
- जब भी व्यवहार अलग होता था, specification को सुधारा जाता था और सही व्यवहार तय किया जाता था
team में भूमिका और generics का आगमन
- Taylor ने Go team में खुद के लिए यह भूमिका तय की कि वे project को समग्र रूप से देखें और जहां मदद की ज़रूरत हो, उसे पहचानें
- शुरुआती कुछ वर्षों में उन्होंने Google के अंदरूनी build system और SWIG tool में Go support जोड़ा
- कुछ वर्षों तक उन्होंने team manager की भूमिका भी निभाई
- Go के शुरुआती दौर से ही डेवलपर्स किसी न किसी रूप में generics या type parameterization support की मांग कर रहे थे
- Taylor ने Robert Griesemer के साथ मिलकर language changes के कई proposals तैयार किए
- generics को Go 1.18 release in 2022 में भाषा में जोड़ा गया
अपने काम करने के तरीके का आकलन
- Taylor का मानना है कि उनके approach में ताकत और सीमाएं दोनों थीं
- इसकी ताकत यह थी कि वे लोगों की मौजूदा समस्याओं और जल्द आने वाली समस्याओं को जल्दी समझकर उन्हें समाधान तक पहुंचाने में मदद कर सकते थे
- दूसरी ओर, जिन विचारों को अभी तक आज़माया नहीं गया था और जिनकी ज़रूरत अभी स्पष्ट नहीं हुई थी, उन्हें वे देर से पहचानते थे
- उदाहरण: Go module proxy
- उदाहरण: Go vulnerability database
जाने की वजह और आगे की योजना
- Taylor का मानना है कि उनका तरीका एक सफल project बनाने में कुल मिलाकर मददगार रहा
- लेकिन Google, Go और computer programming environment तीनों बदल चुके हैं
- उनका निष्कर्ष है कि पिछले लगभग एक साल में यह साफ हो गया कि वे अब Google के Go project के लिए पहले जैसे उपयुक्त नहीं रहे
- Go के प्रति उनकी रुचि अब भी बनी हुई है
- वे Go language को समाप्त मानकर नहीं देख रहे
- कोई भी programming language कभी पूरी तरह अंतिम रूप में स्थिर नहीं रहती
- programming environment लगातार बदलता रहता है, और भाषा यदि विकसित न हो तो वह गायब हो जाती है
- Go जैसी बड़ी standard library वाली भाषा को programmers की नई ज़रूरतों के अनुसार अपनी standard library को भी ढालना पड़ता है
- Taylor कुछ समय विश्राम करने के बाद भविष्य में फिर से Go में योगदान देना चाहते हैं
1 टिप्पणियां
Hacker News की रायें
Ian ने Go community और पूरी programming community में जितना योगदान दिया है, उसे बढ़ा-चढ़ाकर बताना मुश्किल है
gccgo ही नहीं, उन्होंने gold linker भी बनाया, compiler toolchain पर बहुत व्यापक लेख लिखे, और gcc codebase के बड़े हिस्सों का maintenance किया है [0]
उनसे कुछ बार ईमेल पर बातचीत हुई थी; Google में उनकी जो भी जिम्मेदारियां और priorities रही हों, वे हमेशा जवाब देते थे, patches review करते थे, और उनका feedback भी insightful होता था
Go भाषा को लेकर मेरी मिली-जुली भावनाएं हैं, लेकिन Ian के बिना Go निश्चित रूप से खराब ही होगा
शुरुआती Go team में Bell Labs जैसा माहौल था; कंप्यूटर को अंदर तक समझने वाले कुछ लोगों ने assembler, linker, दो compilers, language specification, documentation generator, build system और विशाल standard library तक सब कुछ बना दिया था
अब Go Google के लिए धीरे-धीरे और महत्वपूर्ण हो रहा है और बड़े software projects की standard practices आ रही हैं, तो लगता है कि यह एक ज्यादा फीकी corporate culture बन गई है
Ian ने अपने message में शायद इसी सांस्कृतिक बदलाव की ओर इशारा किया है, लेकिन यह जानने की उत्सुकता है कि छोड़ने का ठोस turning point क्या था
उम्मीद है Ian भरपूर आराम कर पाएंगे, और आगे वे जो भी project करेंगे, उसे follow करना चाहूंगा
[0]: https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS
हालांकि उत्सुकता है कि लोग या organizations असल में gcc-go का इस्तेमाल किस काम के लिए करते हैं
जब मैं Google में काम करता था, Ian Lance Taylor randomly assign होने वाले code reviewer pool में थे
वे विनम्र, दृढ़ और जानकारी बहुत साफ तरीके से देने वाले थे
Taylor और project दोनों के लिए यह अच्छी बात लगती है; ऐसी reviews कुछ वैसी ही हैं जैसे YC founders को सलाह देता है कि customer support खुद करें
यह सतही भावना हो सकती है, लेकिन मेरे code review में उनके initials दिखना काफी रोमांचक लगता था
golang के लिए उन्होंने जो कुछ किया, उसके लिए आभार
मैंने जीवन का एक अहम सबक सीखा है कि smart, 10x developer या competent कहलाने से बेहतर है कि आपको विनम्र, दयालु और अच्छा इंसान माना जाए
विनम्र, दृढ़, जानकारीपूर्ण—और मैं इसमें जिज्ञासा भी जोड़ना चाहूंगा
project में contribute करने का अनुभव बहुत अच्छा था और Ian उसका बड़ा हिस्सा थे
Go जैसे बड़े project में यह बहुत कुछ कहता है
मैंने Google में Python readability भी की थी, लेकिन “एक बड़ा CL लाओ और process के अंत तक उसे अच्छा बना दो, बस” वाला तरीका Go की प्रक्रिया जितना उपयोगी नहीं लगा
खुशी है कि Go team ने अपने नियम खुद बनाए, और इससे मुझे भी मदद मिली
हालांकि आधी रात को call आने पर, जब सोचता था “बस यह code check in करके फिर सोना है”, तब बात अलग थी ;)
उनकी एक comment पर मैंने counter करने की कोशिश भी की थी
यह काफी शानदार लगा कि सच में अपने काम को जानने वाले व्यक्ति ने मेरे काम पर approval की मुहर लगाई
अगर मैं गलत याद नहीं कर रहा, तो वह सच में कमाल था
“Gooogle [sic] बदल गया है, Go भी बदल गया है, और पूरा computer programming environment भी बदल गया है। पिछले करीब एक साल में यह साफ हो गया है कि मैं अब Google के Go project में ठीक से fit नहीं बैठता। अब जाने का समय है” वाला हिस्सा काफी चौंकाने वाला है
ये तीन वाक्य आसानी से हटाए जा सकते थे या खाली औपचारिक बातों में बदले जा सकते थे, लेकिन इसे इस तरह लिखना बताता है कि यहां कोई गंभीर वजह है
management की तरफ से दबाव बहुत ज्यादा बढ़ गया है और भरोसा बहुत कम हो गया है
L7+ में से काफी लोगों से यह अपेक्षा भी की गई कि “पर्याप्त impact” रखने के लिए उन्हें AI-संबंधित काम करना होगा
दबाव बढ़ने के साथ इनके बीच turf wars भी बहुत बढ़ गए; अब भरोसेमंद manager होना काफी नहीं रहा, बल्कि संबंधित document के सबसे ऊपर आपका नाम होना चाहिए और साथियों का नाम नहीं होना चाहिए, जैसी स्थिति बन गई
2023 से पहले मैंने जिन L7, L8 लोगों के साथ काम किया, उन्हें Google छोड़ते हुए लगभग सिर्फ इसलिए देखा कि उन्हें दिलचस्प नए अवसर मिल गए थे या वे retire हो रहे थे
अब इस level पर जाने वाले ज्यादातर लोग Google से तंग आकर निकलते हैं
हालत खराब है
आज की large tech companies बस ऐसी जगहें हैं जहां लोग पैसा कमाने जाते हैं, और जरूरी नहीं कि उन्हें long-term vision में रुचि हो
ज्यादातर जगहें ऐसे लोगों से भरी हैं जिन्हें engineering या computers के प्रति बहुत कम passion है, और जिन्हें जबरन academy-style training देकर तैयार किया गया है
न कल्पनाशक्ति, न box के बाहर सोच; नौकरी पाने के लिए रटकर तैयारी करते हैं, फिर PIP या layoff झेलते हैं और किसी दूसरी बड़ी company में वही काम दोहराते हैं
TC नहीं तो दफा हो जाओ—ऐसे लोग
कल के Google जैसे startup में आपकी किस्मत बेहतर हो सकती है
CEO की तरफ से आने वाला पूरा focus profitability, revenue, commerciality पर है
लगता है इसी व्यक्ति ने पहले भी कुछ ऐसा लिखा था
“आज Google की कई समस्याएं Sundar Pichai की visionary leadership की कमी और शुरुआती Google के cultural norms को बनाए रखने में उनकी स्पष्ट उदासीनता से पैदा होती हैं”
2016 में जब मैं Google में था, मैंने ऐसी टीम में शुरुआत की थी जहाँ सभी golang इस्तेमाल करते थे
पहले project के तौर पर हम एक नई service बना रहे थे और Ian से कई बार readability approval लिया था
एक बार approval के साथ एक follow-up request भी मिली थी, लेकिन मैंने उसे देखा नहीं और change apply कर दिया
Ian ने फिर संपर्क करके follow-up work करने को कहा, और उस समय मुझे यह भी नहीं पता था कि वे core Golang developers में से एक हैं
ऐसा करने की उन्हें कोई खास जरूरत नहीं थी, फिर भी वे सचमुच बहुत उदार थे, और वह घटना मुझे हमेशा याद रहेगी
language असल में कैसे इस्तेमाल होती है, यह देखने और core problems पहचानने में उन्होंने इतना समय लगाया, यह वाकई कमाल है
“Gooogle बदल गया है, Go भी बदल गया है, और पूरा computer programming environment भी बदल गया है। पिछले करीब एक साल में यह साफ हो गया कि मैं अब Google के Go project में ठीक से fit नहीं बैठता। अब मुझे जाना चाहिए” वाले paragraph के बारे में और विस्तार से सुनना चाहूंगा
लगता है Ian ने कोई वास्तविक बदलाव नोटिस किया था
“Go compiler errors में Gemini डालिए, वरना बाहर जाइए” जैसी बात
antitrust issues, short-term profits के लिए company को बेच देने वाली खराब leadership, और लंबे समय तक dominant रही tech company का एक और Microsoft/IBM clone में बदल जाना साफ दिखता है
अब यह industry leader नहीं रही, बस trends follow कर रही है और wave पर सवार हो रही है, जैसे AI trend
संदिग्ध इतिहास वाली governments के आगे झुक रही है और ऐसे projects support कर रही है जो नागरिकों की मौत से जुड़े हो सकते हैं
“बुरा मत बनो” कहना तो मजाक भी नहीं लगता
लगता है वे लगातार चल रही डींगों और जबरन निगलाए जाने वाले झूठों से पूरी तरह तंग आ चुके होंगे
छोड़ने का timing भी शायद stock compensation या options vesting/expiry से मिलाया गया हो सकता है
यहाँ meta question यह है कि आज के दौर में 2005 का Google क्या है
क्या सचमुच OpenAI है? या ऐसी कोई चीज मौजूद भी है?
इससे भी meta question यह है कि जिस state को कई engineers golden age के रूप में याद करते हैं, Google में वह असल में कितनी देर तक चली थी
वह company ऐसे दौर में पैदा हुई थी जब underlying technology कहीं ज्यादा शक्तिशाली हो रही थी, और उस समय technology में creative investment करने वाली companies कल्पना से परे अमीर हो गईं
मैं 2022 में Google में शामिल हुआ और फिर छोड़ दिया, लेकिन एक नए employee की नजर से भी यह साफ था कि golden age न केवल खत्म हो चुकी थी, बल्कि post-golden-age era भी ढलान पर था
माहौल “बेखौफ innovation खत्म हो गया है, लेकिन product को जितना हो सके बेहतरीन बनाते हैं” वाला नहीं था, बल्कि “कुछ मत तोड़ो और हो सके तो 1–2% improvement निचोड़ लो” वाला था
Google, Bell Labs की तरह, अपने समय की ही उपज था, और Bell Labs का भी आज कोई आधुनिक counterpart नहीं है
उसे बनाने का मौका है
मुझे लगता है इस generation की companies की समस्या technology नहीं, culture है
tech culture ruthless capitalism से इतना भर गया है कि शायद वैसा फिर कभी नहीं होगा
पहले कम से कम ऐसा महसूस होता था कि innovation और experiment करने की इच्छा है
अब तो बस machine में तेल डालने का काम है
बात एक ऐसी industry का अनुमान लगाने की है जो 1 trillion dollars से आगे बढ़ेगी, और एक ऐसी company का जो search की तरह fundamental और हर जगह मौजूद tool देगी
मैं कोई conspiracy theory नहीं बनाना चाहता, लेकिन सोच रहा हूँ कि क्या इसका Ian Hickson के Google/Flutter टीम छोड़ने की घटना [1] से कोई संबंध है
उन्होंने खास तौर पर कुछ नामों का ज़िक्र किया था
“आज Google की कई समस्याएँ Sundar Pichai के visionary leadership की कमी और शुरुआती Google के सांस्कृतिक norms को बनाए रखने में उनकी साफ़ उदासीनता से पैदा होती हैं। इसका एक symptom अक्षम middle management का फैलना है। उदाहरण के लिए Jeanine Banks एक ऐसा विभाग मैनेज करती हैं जिसमें Flutter, Dart, Go, Firebase आदि कुछ हद तक मनमाने ढंग से शामिल हैं। उनके विभाग के पास नाम के लिए strategy है, लेकिन अगर मैं उसे लीक करना भी चाहूँ तो नहीं कर सकता। वर्षों तक उन्हें समझाते सुनने के बावजूद मैं सचमुच यह बिल्कुल नहीं समझ पाया कि उसका कोई हिस्सा क्या मतलब रखता है। उनकी अपनी teams क्या करती हैं, इसकी समझ अधिक से अधिक न्यूनतम है। वे अक्सर पूरी तरह असंगत और लागू न हो सकने वाली requests करती हैं। वे engineers को commodity की तरह treat करके उन्हें अमानवीय बनाती हैं, और लोगों को उनकी इच्छा से अलग, उनकी क्षमता से कोई संबंध न रखने वाले तरीके से इधर-उधर करती हैं। वे constructive feedback बिल्कुल स्वीकार नहीं कर पातीं। सचमुच उसे acknowledge तक नहीं करतीं। मैंने सुना है कि दूसरी teams के leaders मुझसे ज़्यादा politically smart हैं, इसलिए उन्होंने उन्हें ‘handle’ करना सीख लिया है—सही समय पर बस सही जानकारी देकर ताकि वे परेशान न करें। Google का सबसे अच्छा रूप देखने वाले व्यक्ति के तौर पर यह नई reality निराशाजनक है”
[1]: https://ln.hixie.ch/?start=1700627373
एक दूसरे executive ने पूरी Python team को निकाल दिया था
उनमें से कई Python के core contributors थे, और उन्हें कम salary वाली TypeScript team से replace किया गया, फिर और भी कम salary वाले region में नई team से headcount भरा गया
उनका communication समझ से बाहर होता है; वे सब कुछ कहते हैं और साथ ही कुछ भी नहीं कहते
ऐसे announcements आते हैं जिनमें dramatic बदलाव और सब कुछ जैसा था वैसा ही रहने, दोनों messages साथ-साथ होते हैं, इसलिए बहुत confusion होता है
मेरी theory है कि यह direction तय करने या vision या goals समझाने के लिए नहीं, बल्कि दूसरे managers पर impressive दिखने और social position बनाने वाली किसी चीज़ में converge हो जाता है
performance reviews के समय credit लेने की material के रूप में इस्तेमाल होता है
मुझे याद रहने वाले memes में से एक था, “अगर आप 5 सेकंड में जवाब नहीं दे सकते कि आप किस team में हैं, तो शायद आप Googler हैं”
engineers बेहद शानदार हैं, लेकिन impostor syndrome भी बहुत फैला है, और ऐसा लगता है जैसे सब आँखों पर पट्टी बाँधे अलग-अलग दिशाओं में भटक रहे हैं
बड़ी company कैसे चलानी चाहिए, यह मुझे भी नहीं पता, लेकिन एक अच्छी शुरुआत शायद स्पष्ट और वर्णनात्मक भाषा का इस्तेमाल होगी
साफ़ है कि corporate-speak translators तक कोई shared reality नहीं बना पा रहे हैं
हमारी industry को लेकर सबसे डरावनी बातों में से एक यह है कि शायद हमारे पास शुरुआती Google जैसी company फिर कभी न हो
Pichai के command संभालने पर company का नाम बदल देना चाहिए था
क्योंकि वह कुछ ऐसा बन गई थी जिसे पहचाना नहीं जा सकता था
Google में काम कर चुके जिन ज़्यादातर लोगों से आप मिलेंगे, वे शायद उनके दौर में काम करने वाले लोग होंगे
अगर Google के core लोग Chrome के बाद अब golang project से भी जा रहे हैं, तो यह काफ़ी साफ़ दिखता है कि management अच्छा काम नहीं कर रही
शायद यह सही भी होगा
मैं Google की internal politics के बारे में बहुत नहीं जानता, लेकिन पिछले कुछ सालों में मशहूर लोगों के अचानक resignation announce करने वाले posts और blog posts काफी frequent लगते हैं
इस trend के पीछे क्या है?
Google में मुझे थका देने वाली हर concrete परेशानी की जड़ में जाने पर बात अंततः यहीं पहुँचती थी, और इसी वजह से मैंने अगस्त में छोड़ा
जब अपेक्षाकृत छोटी organization रहते हुए top talent hire करके सफलता मिलती है और फिर numbers बढ़ाए जाते हैं, तो वह model scalable नहीं होता, इसलिए गिरावट आती है
जब आकार tens of thousands में पहुँचता है, तो “professional management” कहे जाने वाले idiots अंदर आते हैं, और organization पहले average रूप से decline करती है
क्योंकि दुनिया में tens of thousands सचमुच शानदार लोग पर्याप्त नहीं हैं
फिर idiots का भारी negative impact पड़ता है और organization सड़ने लगती है
जब वे culture को बुरी दिशा में बदलते हैं, तो सबसे अच्छे लोग छोड़ देते हैं, और average employee level और नीचे चला जाता है
कीमत में नहीं, बल्कि employee quality में bottom की race शुरू हो जाती है
Google को Go को non-profit foundation के रूप में अलग कर देना चाहिए और उसे 1 billion dollars देकर independent बना देना चाहिए
Russ Cox से आजीवन benevolent dictator के रूप में चलाने की विनती करनी चाहिए, और उम्मीद करनी चाहिए कि Ian Lance Taylor को फिर से hire कर सकें