Loading...

जावा का कवर

Original

अप्रैल 2001

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

किसी भाषा को प्रोग्राम लिखने से पहले ही खारिज कर देना लापरवाही लग सकती है। लेकिन यह ऐसा कुछ है जो सभी प्रोग्रामर को करना पड़ता है। बहुत सारी तकनीकें हैं, जिन्हें सीखना मुश्किल है। आपको बाहरी संकेतों से निर्णय लेना सीखना होगा, जो आपके समय के लायक होगा। मैंने भी कोबोल, एडा, विजुअल बेसिक, आईबीएम एएस400, वीआरएमएल, आईएसओ 9000, एसईटी प्रोटोकॉल, वीएमएस, नोवेल नेटवेयर और कोर्बा जैसी अन्य भाषाओं को लापरवाही से खारिज किया है। वे बस गलत थे।

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