जोशुआ बलोच: जावा प्लेटफॉर्म की अंतरात्मा
"जावा प्रोग्रामिंग भाषा ने संस्करण 5.0 में पेश किए गए परिवर्तनों के साथ अपने जटिलता बजट का उपयोग कर लिया है।" यह एक चौंकाने वाला वाक्य है, मुख्य रूप से इसलिए कि इसे किसने कहा। जोशुआ बलोच ने सन माइक्रोसिस्टम्स में उन अतिरिक्त सुविधाओं को डिजाइन करने में वर्षों बिताए, और JDK 5.0 रिलीज जिसे उन्होंने आकार देने में मदद की, वह भाषा का अब तक का सबसे महत्वाकांक्षी विस्तार था। फिर उन्होंने दुनिया को बताया कि यह काफी है। वह प्रवृत्ति — एक ऐसी प्रणाली की निगरानी करना जिसे उन्होंने व्यक्तिगत रूप से विस्तारित किया था, और सुविधाओं के बजाय बजट में सोचना — एक पंक्ति में उनका पूरा व्यक्तित्व है।
साउथेम्प्टन, कोलंबिया, पिट्सबर्ग
बलोच का जन्म 28 अगस्त 1961 को साउथेम्प्टन, न्यूयॉर्क में हुआ था। उन्होंने कोलंबिया विश्वविद्यालय के स्कूल ऑफ इंजीनियरिंग एंड एप्लाइड साइंस से कंप्यूटर विज्ञान में स्नातक की डिग्री ली, फिर डॉक्टरेट के लिए कार्नेगी मेलन गए, जिसे 1990 में पूरा किया। उनका शोध प्रबंध, "एब्स्ट्रैक्ट डेटा ऑब्जेक्ट्स के प्रतिकृति के लिए एक व्यावहारिक दृष्टिकोण," को ACM विशिष्ट डॉक्टरेट शोध प्रबंध पुरस्कार के लिए नामांकित किया गया था।
शीर्षक को दो बार पढ़ने लायक है। एक स्नातक छात्र के रूप में भी, बलोच के काम में मुख्य शब्द व्यावहारिक था। वह वितरित प्रणालियों में एक सैद्धांतिक समस्या के रूप में प्रतिकृति पर हमला नहीं कर रहे थे; वह एक ऐसा संस्करण ढूंढ रहे थे जिसे इंजीनियर वास्तव में एब्स्ट्रैक्ट डेटा ऑब्जेक्ट्स के खिलाफ तैनात कर सकें। उन्होंने अपना बाकी करियर उस संकीर्ण, गैर-फैशनेबल अंतर के बीच बिताया है जो सिद्ध रूप से सही है और जिसे एक कामकाजी प्रोग्रामर उपयोग करने के लिए भरोसा कर सकता है।
सन, और कलेक्शन फ्रेमवर्क
ट्रांसार्क में वरिष्ठ सिस्टम डिजाइनर के रूप में एक अवधि के बाद, बलोच सन माइक्रोसिस्टम्स में शामिल हो गए, जहां वे विशिष्ट इंजीनियर बने और उन कई टुकड़ों के डिजाइन और कार्यान्वयन का नेतृत्व किया जो जावा को पहचानने योग्य रूप से जावा बनाते हैं। जावा कलेक्शन फ्रेमवर्क उनमें से सबसे बड़ा है: इंटरफेस और कार्यान्वयन का सेट — सूचियां, सेट, मैप्स, और उन पर काम करने वाले एल्गोरिदम — जिस पर तब से हर जावा प्रोग्राम बनाया गया है। उन्होंने java.math पैकेज और भाषा के एसेट तंत्र का भी नेतृत्व किया, और JDK 5.0 में प्रमुख सुधारों को आगे बढ़ाया।
यह लेखकत्व का एक अजीब प्रकार है। एक कलेक्शन लाइब्रेरी एक एप्लिकेशन नहीं है; यह एक शब्दावली है। लाखों प्रोग्रामर जिन्होंने कभी बलोच का नाम नहीं सुना है, वे अपने कामकाजी जीवन को उन संज्ञाओं और क्रियाओं के भीतर बिताते हैं जिन्हें उन्होंने चुना है, और उनकी सोच का आकार उनके इंटरफेस के आकार से सीमित है। इसे गलत करने से एक बुरा प्रोग्राम नहीं बनता; इसने प्रोग्राम लिखने के लिए एक बुरी भाषा बनाई होती, स्थायी रूप से।
बीस प्रश्न, घड़ी पर आठ मिनट, और अब तक टेस्ट देने वालों के सामने मापा गया पर्सेंटाइल। साइन-अप नहीं।
IQ टेस्ट दें →इफेक्टिव जावा
2001 में उन्होंने इफेक्टिव जावा प्रकाशित किया, और इसने कुछ ऐसा किया जो प्रोग्रामिंग भाषाओं के बारे में किताबें शायद ही कभी करती हैं: यह एक समुदाय के लिए नैतिक अधिकार बन गया। स्वतंत्र वस्तुओं की एक क्रमांकित श्रृंखला के रूप में संरचित, प्रत्येक एक नियम बताती है और फिर वास्तविक विफलता मोड से इसके लिए तर्क करती है, इसने 2001 में जोल्ट पुरस्कार जीता। 2008 में दूसरा संस्करण, पढ़ने में कठिन हुए बिना सत्तावन वस्तुओं से बढ़कर अठहत्तर हो गया; एक तीसरा 2017 में आया।
उन्होंने सहयोगियों के साथ दो और किताबें लिखीं। 2005 में नील गैफ्टर के साथ जावा पज़लर्स, भाषा के जाल का एक संकलन है — कोड जो विनिर्देश के अनुसार सही व्यवहार करता है और अंतर्ज्ञान के अनुसार पागलपन भरा — जिसे एक नैदानिक अभ्यास के रूप में प्रस्तुत किया गया है। 2006 में जावा कॉन्करेंसी इन प्रैक्टिस, डग ली सहित पांच सहयोगियों के साथ लिखा गया था, और यह उस सबसे कठिन चीज़ पर मानक संदर्भ बन गया जो प्लेटफॉर्म अपने उपयोगकर्ताओं से मांगता है।
गूगल, और एपीआई डिजाइन
बलोच जून 2004 से अगस्त 2012 तक गूगल के मुख्य जावा आर्किटेक्ट थे। वहीं उनकी केंद्रीय चिंता एक सार्वजनिक तर्क में बदल गई। उनका 2006 का सम्मेलन पत्र, "एक अच्छा एपीआई कैसे डिजाइन करें और यह क्यों मायने रखता है," इंटरफेस डिजाइन को स्वाद के मामले के बजाय दांव के साथ एक अनुशासन के रूप में मानता है, इस आधार पर कि एक एपीआई एक अनुबंध है जिसे आप फिर से बातचीत नहीं कर सकते। उन्होंने हताशा का ठोस वर्णन किया: गूगल में वह कुछ वर्गों के लिए वैकल्पिक कार्यान्वयन प्रदान नहीं कर सके क्योंकि उन्हें इंटरफेस के बजाय ठोस प्रकार के रूप में घोषित किया गया था — किसी और द्वारा वर्षों पहले लिया गया निर्णय, जो, जैसा कि उन्होंने कहा, उस तरह की सीमा है जिसे "सामान्य डेवलपर्स हर दिन महसूस करते हैं।"
उनकी सलाह में एक सुसंगत स्वाद है: किसी के अपने निर्णय के बारे में विनम्रता। खुद को दोहराएं नहीं; अपने खुद के लिखने के बजाय, विशेष रूप से कॉन्करेंसी के लिए, एक स्थापित लाइब्रेरी तक पहुंचें। इस भावना पर अविश्वास करें कि समय से पहले अनुकूलन के बारे में सामान्य चेतावनी अन्य लोगों पर लागू होती है — "यह महसूस करना आसान है कि समय से पहले अनुकूलन के बारे में सामान्य चेतावनी आप पर लागू नहीं होती है, क्योंकि आप बस जानते हैं कि कौन सा कोड समय-महत्वपूर्ण है।" और द एलिमेंट्स ऑफ स्टाइल पढ़ें, क्योंकि "अच्छी प्रोग्रामिंग और अच्छी लेखन दोनों अभिव्यक्ति की स्पष्टता और अर्थव्यवस्था के बारे में हैं।"
जोशुआ को जीनियस क्यों कहा जाता है
प्रश्न में संकाय कच्चा आविष्कार नहीं है बल्कि एक दुर्लभ चीज है: सॉफ्टवेयर के एक टुकड़े को उस अजनबी की स्थिति से देखने की क्षमता जिसे इसका उपयोग करना होगा, और अपनी क्षमता के बजाय उस अजनबी की संभावित गलतियों के लिए डिजाइन करने की क्षमता। बलोच के ढांचे में, एक एपीआई उन लोगों पर थोपी गई भाषा है जिन्होंने कभी इसके लिए सहमति नहीं दी और इसे संशोधित नहीं कर सकते, जो इसे डिजाइन करने को बड़े पैमाने पर दुरुपयोग की प्रत्याशा में एक अभ्यास बनाता है, दशकों पहले। कलेक्शन फ्रेमवर्क इसका सबूत है: एक शब्दावली जिसका उपयोग सभी कामकाजी प्रोग्रामरों के एक विशाल अंश द्वारा किया जाता है, जो काफी हद तक अपरिवर्तित रहने के लिए पर्याप्त सही है। दूसरा टुकड़ा संहिताकरण है: इफेक्टिव जावा ने मौन विशेषज्ञता ली जो पहले केवल कुछ प्लेटफॉर्म इंजीनियरों के सिर में रहती थी और इसे हस्तांतरणीय, तर्कसंगत नियमों में बदल दिया।
प्रति-मामला बताने लायक है। बलोच ने नया कंप्यूटर विज्ञान उत्पन्न नहीं किया। उनके शोध प्रबंध को एक विशिष्ट-शोध प्रबंध पुरस्कार के लिए नामांकित किया गया था, दिया नहीं गया था; उनका सबसे प्रसिद्ध काम सर्वोत्तम प्रथाओं की एक किताब है, जो खोज के बजाय क्यूरेशन और निर्णय है। रिकॉर्ड पर सम्मान एक व्यापार प्रकाशन पुरस्कार और एक पत्रिका सूची है, क्षेत्र के प्रमुख अनुसंधान पुरस्कार नहीं, और यहां परामर्श किया गया कोई भी स्रोत किसी को उन्हें जीनियस कहते हुए रिकॉर्ड नहीं करता है। कलेक्शन फ्रेमवर्क एक बड़ा टीम प्रयास था जिसका उन्होंने नेतृत्व किया, न कि एकल रचना। निष्पक्ष फैसला यह है कि बलोच इंजीनियरिंग निर्णय के एक सर्वोच्च व्यवसायी और शिक्षक हैं — एक अनुशासन जो सॉफ्टवेयर में नवीनता से अधिक मायने रखता है और बहुत कम श्रेय प्राप्त करता है।
विरासत
उन्होंने सन छोड़ने के बाद भाषा को आकार देना जारी रखा, क्लोजर के दृष्टिकोण के रूप में स्वचालित संसाधन प्रबंधन ब्लॉक और संक्षिप्त इंस्टेंस निर्माण अभिव्यक्ति का सह-प्रस्ताव किया; एआरएम ब्लॉक JDK 7 में आ गए। दिसंबर 2004 में जावा डेवलपर्स जर्नल ने उन्हें दुनिया के शीर्ष चालीस सॉफ्टवेयर लोगों में नामित किया। वह तब से कार्नेगी मेलन लौट आए हैं, जहां वह सॉफ्टवेयर और सामाजिक प्रणाली विभाग में अभ्यास के प्रोफेसर हैं — एक शीर्षक जो उनके करियर के सारांश की तरह पढ़ता है, क्योंकि अभ्यास हमेशा बिंदु था।
काम का माप यह है कि इसका प्रभाव बिना श्रेय के है। आज कहीं, एक प्रोग्रामर जिसने कभी बलोच के गद्य की एक पंक्ति नहीं पढ़ी है, वह एक ठोस वर्ग के बजाय एक इंटरफेस के लिए पहुंचेगा, या कॉन्करेंसी प्रिमिटिव को हाथ से रोल करने से इनकार करेगा, क्योंकि एक सहकर्मी ने उन्हें एक बार ऐसा नहीं करने के लिए कहा था, इसे एक किताब में एक क्रमांकित आइटम में पढ़ने के बाद।
