Loading...

जावा का आवरण

Original

अप्रैल 2001

यह निबंध कई अन्य प्रोग्रामरों के साथ हुई बातचीत से विकसित हुआ है कि जावा संदिग्ध क्यों लगता है। यह जावा की आलोचना नहीं है! यह हैकर के रडार का एक केस स्टडी है।

समय के साथ, हैकर्स अच्छी (और बुरी) तकनीक के लिए एक नाक विकसित करते हैं। मैंने सोचा कि यह लिखने की कोशिश करना दिलचस्प हो सकता है कि जावा मुझे संदिग्ध क्यों लगा।

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

"आप एक किताब को उसके आवरण से नहीं बता सकते" यह कहावत उस समय की है जब किताबें सादे कार्डबोर्ड के आवरण में बेची जाती थीं, ताकि प्रत्येक खरीदार अपने स्वाद के अनुसार उन्हें बाँध सके। उन दिनों, आप एक किताब को उसके आवरण से नहीं बता सकते थे। लेकिन तब से प्रकाशन आगे बढ़ गया है: वर्तमान प्रकाशक आवरण को ऐसा बनाने के लिए कड़ी मेहनत करते हैं जिससे आप एक किताब को बता सकते हैं।

मैं बहुत समय किताबों की दुकानों में बिताता हूं और मुझे ऐसा लगता है कि अब तक मैंने किताबों के बारे में प्रकाशकों द्वारा मुझे बताई जाने वाली हर चीज को समझना सीख लिया है, और शायद थोड़ा और भी। जो समय मैंने किताबों की दुकानों में नहीं बिताया है, वह मैंने ज्यादातर कंप्यूटर के सामने बिताया है, और मुझे ऐसा लगता है कि मैंने कुछ हद तक, तकनीक को उसके आवरण से भी आंकना सीख लिया है। यह सिर्फ भाग्य हो सकता है, लेकिन मैंने खुद को कुछ ऐसी तकनीकों से बचा लिया है जो वास्तव में बदबूदार निकलीं।

अब तक, जावा मुझे एक बदबूदार लगता है। मैंने कभी कोई जावा प्रोग्राम नहीं लिखा है, इसके बारे में संदर्भ पुस्तकों पर कभी एक नज़र से ज़्यादा नहीं डाली है, लेकिन मुझे लगता है कि यह एक बहुत सफल भाषा नहीं होगी। मैं गलत साबित हो सकता हूं; तकनीक के बारे में भविष्यवाणियां करना एक खतरनाक काम है। लेकिन इसके लायक, एक तरह के समय कैप्सूल के रूप में, यहाँ बताया गया है कि मुझे जावा का लुक पसंद क्यों नहीं है:

  1. इसे इतना ऊर्जावान ढंग से प्रचारित किया गया है। वास्तविक मानकों को बढ़ावा देने की आवश्यकता नहीं होती है। किसी को भी C, या Unix, या HTML को बढ़ावा देने की आवश्यकता नहीं थी। एक वास्तविक मानक तब तक स्थापित हो जाता है जब तक अधिकांश लोग इसके बारे में सुनते हैं। हैकर रडार स्क्रीन पर, पर्ल जावा जितना बड़ा है, या उससे भी बड़ा है, सिर्फ अपनी खूबियों के बल पर।

  2. यह कम लक्षित है। मूल जावा व्हाइट पेपर में, गोस्लिंग स्पष्ट रूप से कहते हैं कि जावा को C के अभ्यस्त प्रोग्रामर के लिए बहुत कठिन नहीं होने के लिए डिज़ाइन किया गया था। इसे एक और C++ के रूप में डिज़ाइन किया गया था: C प्लस कुछ विचार अधिक उन्नत भाषाओं से लिए गए थे। सिटकॉम या जंक फूड या पैकेज टूर के रचनाकारों की तरह, जावा के डिजाइनर जानबूझकर उन लोगों के लिए एक उत्पाद डिजाइन कर रहे थे जो उनसे उतने स्मार्ट नहीं थे। ऐतिहासिक रूप से, अन्य लोगों के उपयोग के लिए डिज़ाइन की गई भाषाएँ खराब रही हैं: कोबोल, PL/I, पास्कल, एडा, C++। अच्छी भाषाएँ वे थीं जो उनके अपने रचनाकारों के लिए डिज़ाइन की गई थीं: C, पर्ल, स्मॉलटॉक, लिसप।

  3. इसके छिपे हुए मकसद हैं। किसी ने एक बार कहा था कि दुनिया एक बेहतर जगह होगी अगर लोग केवल इसलिए किताबें लिखते क्योंकि उनके पास कहने के लिए कुछ होता, बजाय इसके कि वे एक किताब लिखना चाहते हैं। इसी तरह, हम जावा के बारे में हर समय सुनते हैं, इसका कारण यह नहीं है कि प्रोग्रामिंग भाषाओं के बारे में कहने के लिए कुछ है। हम जावा के बारे में सन की माइक्रोसॉफ्ट को कमजोर करने की योजना के हिस्से के रूप में सुनते हैं।

  4. कोई भी इसे प्यार नहीं करता। C, पर्ल, पायथन, स्मॉलटॉक और लिसप प्रोग्रामर अपनी भाषाओं से प्यार करते हैं। मैंने कभी किसी को यह कहते हुए नहीं सुना कि वे जावा से प्यार करते हैं।

  5. लोगों को इसका इस्तेमाल करने के लिए मजबूर किया जाता है। मेरे जानने वाले बहुत से लोग जावा का उपयोग कर रहे हैं क्योंकि उन्हें लगता है कि उन्हें करना चाहिए। या तो यह कुछ ऐसा है जो उन्हें लगा कि उन्हें धन प्राप्त करने के लिए करना होगा, या कुछ ऐसा जो उन्हें लगा कि ग्राहक चाहेंगे, या कुछ ऐसा जो उन्हें प्रबंधन द्वारा करने के लिए कहा गया था। ये स्मार्ट लोग हैं; अगर तकनीक अच्छी होती, तो वे स्वेच्छा से इसका इस्तेमाल करते।

  6. इसमें बहुत सारे रसोइये हैं। सबसे अच्छी प्रोग्रामिंग भाषाएँ छोटे समूहों द्वारा विकसित की गई हैं। जावा एक समिति द्वारा चलाया जा रहा है। अगर यह एक अच्छी भाषा बनती है, तो यह इतिहास में पहली बार होगा जब एक समिति ने एक अच्छी भाषा डिजाइन की है।

  7. यह नौकरशाही है। जावा के बारे में जितना कम मुझे पता है, ऐसा लगता है कि चीजों को करने के लिए बहुत सारे प्रोटोकॉल हैं। वास्तव में अच्छी भाषाएँ ऐसी नहीं होती हैं। वे आपको वह करने देते हैं जो आप चाहते हैं और रास्ते से हट जाते हैं।

  8. यह छद्म-हिप है। सन अब दिखावा करता है कि जावा एक जमीनी स्तर पर, ओपन-सोर्स भाषा प्रयास है जैसे पर्ल या पायथन। यह सिर्फ एक विशाल कंपनी द्वारा नियंत्रित होता है। इसलिए भाषा में किसी भी अन्य चीज़ की तरह ही नीरस क्लंकनेस होने की संभावना है जो एक बड़ी कंपनी से निकलती है।

  9. यह बड़े संगठनों के लिए डिज़ाइन किया गया है। बड़े संगठनों के हैकर्स से अलग लक्ष्य होते हैं। वे ऐसी भाषाएँ चाहते हैं जो (माना जाता है कि) औसत दर्जे के प्रोग्रामरों की बड़ी टीमों द्वारा उपयोग के लिए उपयुक्त हैं - ऐसी भाषाएँ जिनमें ऐसे फीचर हैं जो, यू-हॉल ट्रकों में गति सीमा की तरह, मूर्खों को बहुत अधिक नुकसान करने से रोकते हैं। हैकर्स को ऐसी भाषा पसंद नहीं है जो उनसे बात करती है। हैकर्स बस शक्ति चाहते हैं। ऐतिहासिक रूप से, बड़े संगठनों (PL/I, एडा) के लिए डिज़ाइन की गई भाषाएँ हार गई हैं, जबकि हैकर भाषाएँ (C, पर्ल) जीत गई हैं। कारण: आज का किशोर हैकर कल का सीटीओ है।

  10. गलत लोग इसे पसंद करते हैं। जिन प्रोग्रामरों की मैं सबसे अधिक प्रशंसा करता हूं, वे कुल मिलाकर जावा से मोहित नहीं हैं। जावा किसे पसंद है? सूट, जो एक भाषा को दूसरी भाषा से नहीं जानते, लेकिन जानते हैं कि वे प्रेस में जावा के बारे में सुनते रहते हैं; बड़ी कंपनियों के प्रोग्रामर, जो यह जानकर हैरान हैं कि C++ से भी कुछ बेहतर है; और प्लग-एंड-चग अंडरग्रेजुएट, जो कुछ भी पसंद करने के लिए तैयार हैं जो उन्हें नौकरी दिला सके (क्या यह परीक्षा में होगा?)। इन लोगों के विचार हर हवा के साथ बदलते हैं।

  11. इसके पिताजी मुश्किल में हैं। सन का बिजनेस मॉडल दो मोर्चों पर कमजोर हो रहा है। डेस्कटॉप मशीनों में इस्तेमाल होने वाले उसी प्रकार के सस्ते इंटेल प्रोसेसर अब सर्वर के लिए काफी तेज हैं। और FreeBSD सर्वर के लिए सोलारिस जितना अच्छा ऑपरेटिंग सिस्टम लगता है। सन का विज्ञापन बताता है कि औद्योगिक शक्ति अनुप्रयोगों के लिए आपको सन सर्वर की आवश्यकता है। अगर यह सच होता, तो याहू सन खरीदने के लिए सबसे आगे होता; लेकिन जब मैं वहां काम करता था, तो सभी सर्वर इंटेल बॉक्स थे जो FreeBSD चला रहे थे। यह सन के भविष्य के लिए बुरा संकेत है। अगर सन मुसीबत में पड़ता है, तो वे जावा को अपने साथ खींच सकते हैं।

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

ध्यान रखें, यह जावा की आलोचना नहीं है, बल्कि इसके आवरण की आलोचना है। मैं जावा को इतनी अच्छी तरह से नहीं जानता कि मैं इसे पसंद करूं या नापसंद करूं। यह सिर्फ एक स्पष्टीकरण है कि मुझे इसे सीखने के लिए उत्सुक क्यों नहीं लगता।

किसी भाषा को तब तक खारिज करना अहंकारी लग सकता है जब तक आप उसमें प्रोग्राम लिखने की कोशिश नहीं करते। लेकिन यह कुछ ऐसा है जो सभी प्रोग्रामरों को करना पड़ता है। सीखने के लिए बहुत सारी तकनीकें हैं। आपको बाहरी संकेतों से आंकना सीखना होगा कि कौन सा आपके समय के लायक होगा। इसी तरह मैंने कोबोल, एडा, विजुअल बेसिक, आईबीएम AS400, VRML, ISO 9000, SET प्रोटोकॉल, VMS, नोवेल नेटवेयर और CORBA को भी खारिज कर दिया है। वे बस गलत महकते थे।

यह हो सकता है कि जावा के मामले में मैं गलत हूं। यह हो सकता है कि एक भाषा जिसे एक बड़ी कंपनी द्वारा दूसरी कंपनी को कमजोर करने के लिए बढ़ावा दिया जाता है, एक समिति द्वारा "मुख्यधारा" दर्शकों के लिए डिज़ाइन किया गया है, आसमान तक बढ़ावा दिया गया है, और DoD द्वारा प्यार किया जाता है, फिर भी एक स्वच्छ, सुंदर, शक्तिशाली भाषा है जिसे मैं प्रोग्रामिंग में प्यार करता हूं। यह हो सकता है, लेकिन यह बहुत कम संभावना है।