जावा का कवर
अप्रैल 2001
यह निबंध मेरे और कई अन्य प्रोग्रामरों के बीच हुई बातचीत से विकसित हुआ है कि जावा संदिग्ध क्यों लगता है। यह जावा की आलोचना नहीं है! यह हैकर के रडार का एक केस स्टडी।
समय के साथ, हैकर्स अच्छी (और बुरी) तकनीक के लिए एक नाक विकसित करते हैं। मुझे लगा कि यह उस बारे में लिखने की कोशिश करना दिलचस्प हो सकता है जिसने जावा को मेरे लिए संदिग्ध बना दिया।
इसको पढ़ने वाले कुछ लोग सोचते हैं कि यह ऐसी चीज़ के बारे में लिखने का एक दिलचस्प प्रयास है जिसके बारे में पहले कभी नहीं लिखा गया है। अन्य लोग कहते हैं कि मुझे उन चीज़ों के बारे में लिखने के लिए परेशानी होगी जिन्हें मैं समझता नहीं हूँ। इसलिए, बस इस मामले में कि यह कोई अच्छा काम करे, मुझे यह स्पष्ट करने दें कि मैं यहाँ जावा के बारे में नहीं लिख रहा हूँ (जिसका मैंने कभी उपयोग नहीं किया है) बल्कि हैकर के रडार के बारे में लिख रहा हूँ (जिसके बारे में मैंने बहुत सोचा है)।
कहावत "आप किसी किताब को उसके कवर से नहीं बता सकते" उन समयों से उत्पन्न हुई है जब किताबें सादे कार्डबोर्ड कवर में बेची जाती थीं, जिन्हें प्रत्येक खरीदार अपनी पसंद के अनुसार बांधता था। उन दिनों, आप किसी किताब को उसके कवर से नहीं बता सकते थे। लेकिन प्रकाशन तब से आगे बढ़ गया है: आज के प्रकाशक कवर को कुछ ऐसा बनाने के लिए कड़ी मेहनत करते हैं जिसे आप किसी किताब से बता सकें।
मैं बुकशॉप में बहुत समय बिताता हूँ और मुझे ऐसा लगता है कि मैंने अब तक सब कुछ समझना सीख लिया है जो प्रकाशक किसी किताब के बारे में मुझे बताना चाहते हैं, और शायद थोड़ा और भी। जो समय मैंने बुकशॉप में नहीं बिताया, वह मैंने ज्यादातर कंप्यूटर के सामने बिताया है, और मुझे ऐसा लगता है कि मैंने, कुछ हद तक, कवर से तकनीक का भी न्याय करना सीख लिया है। यह सिर्फ किस्मत हो सकती है, लेकिन मैंने खुद को कुछ ऐसी तकनीकों से बचाया है जो वास्तविक बदबूदार साबित हुईं।
अब तक, जावा मुझे बदबूदार लगता है। मैंने कभी जावा प्रोग्राम नहीं लिखा है, कभी भी इसके संदर्भ पुस्तकों को सरसरी तौर पर भी नहीं देखा है, लेकिन मुझे शक है कि यह बहुत सफल भाषा नहीं होगी। मैं गलत साबित हो सकता हूँ; तकनीक के बारे में भविष्यवाणी करना एक खतरनाक व्यवसाय है। लेकिन जो भी हो, एक तरह की टाइम कैप्सूल के रूप में, यहाँ बताया गया है कि मुझे जावा का रूप क्यों पसंद नहीं है:
-
इसका बहुत उत्साहपूर्वक प्रचार किया गया है। वास्तविक मानकों को बढ़ावा देने की आवश्यकता नहीं है। किसी को भी C, या Unix, या HTML को बढ़ावा देने की आवश्यकता नहीं थी। एक वास्तविक मानक आमतौर पर उस समय तक स्थापित हो जाता है जब तक कि अधिकांश लोग इसके बारे में सुनते हैं। हैकर रडार स्क्रीन पर, पर्ल जावा जितना ही बड़ा है, या उससे भी बड़ा है, केवल अपने गुणों के आधार पर।
-
यह निम्न लक्ष्य पर है। मूल जावा व्हाइट पेपर में, गोस्लिंग स्पष्ट रूप से कहता है कि जावा को C से अभ्यस्त प्रोग्रामरों के लिए बहुत मुश्किल न बनाने के लिए डिज़ाइन किया गया था। इसे एक और C++ बनाने के लिए डिज़ाइन किया गया था: C प्लस कुछ अधिक उन्नत भाषाओं से लिए गए विचार। सिटकॉम या जंक फूड या पैकेज टूर के निर्माताओं की तरह, जावा के डिजाइनरों ने जानबूझकर उन लोगों के लिए एक उत्पाद डिजाइन किया जो उनसे उतने स्मार्ट नहीं थे। ऐतिहासिक रूप से, अन्य लोगों द्वारा उपयोग के लिए डिज़ाइन की गई भाषाएँ खराब रही हैं: कोबोल, पीएल/आई, पास्कल, एड, सी++। अच्छी भाषाएँ वे रही हैं जो उनके अपने रचनाकारों के लिए डिज़ाइन की गई थीं: सी, पर्ल, स्मॉलटॉक, लिस्प।
-
इसके छिपे हुए उद्देश्य हैं। किसी ने एक बार कहा था कि दुनिया एक बेहतर जगह होगी यदि लोग केवल इसलिए किताबें लिखते क्योंकि उनके पास कहने के लिए कुछ था, बजाय इसके कि वे एक किताब लिखना चाहते थे। इसी तरह, हम जावा के बारे में हर समय इसलिए सुनते हैं क्योंकि इसके पास प्रोग्रामिंग भाषाओं के बारे में कहने के लिए कुछ है। हम सन के माइक्रोसॉफ्ट को कमजोर करने की योजना के हिस्से के रूप में जावा के बारे में सुनते हैं।
-
कोई भी इसे प्यार नहीं करता। C, पर्ल, पायथन, स्मॉलटॉक और लिस्प प्रोग्रामर अपनी भाषाओं से प्यार करते हैं। मैंने कभी किसी को जावा से प्यार करते हुए नहीं सुना है।
-
लोगों को इसका उपयोग करने के लिए मजबूर किया जाता है। मेरे कई परिचित जो जावा का उपयोग कर रहे हैं, वे इसका उपयोग इसलिए कर रहे हैं क्योंकि उन्हें लगता है कि उन्हें करना ही होगा। या तो यह कुछ ऐसा था जो उन्हें धन प्राप्त करने के लिए करना पड़ा, या कुछ ऐसा जो उन्हें लगा कि ग्राहक चाहेंगे, या कुछ ऐसा जो उन्हें प्रबंधन द्वारा करने के लिए कहा गया था। ये स्मार्ट लोग हैं; यदि तकनीक अच्छी होती, तो वे स्वेच्छा से इसका उपयोग करते।
-
इसमें बहुत सारे रसोइए हैं। सबसे अच्छी प्रोग्रामिंग भाषाएँ छोटे समूहों द्वारा विकसित की गई हैं। जावा एक समिति द्वारा संचालित प्रतीत होता है। यदि यह एक अच्छी भाषा साबित होती है, तो यह इतिहास में पहली बार होगा कि एक समिति ने एक अच्छी भाषा डिजाइन की है।
-
यह नौकरशाही है। जावा के बारे में मुझे जो थोड़ी बहुत जानकारी है, उससे लगता है कि चीजों को करने के लिए बहुत सारे प्रोटोकॉल हैं। वास्तव में अच्छी भाषाएँ ऐसी नहीं होती हैं। वे आपको वह करने देते हैं जो आप चाहते हैं और रास्ते से हट जाते हैं।
-
यह छद्म-हिप है। सन अब दिखावा करता है कि जावा पर्ल या पायथन की तरह एक जमीनी स्तर का, ओपन-सोर्स भाषा प्रयास है। यह एक बस एक विशाल कंपनी द्वारा नियंत्रित होता है। इसलिए भाषा में वही नीरस खस्ताहाली होने की संभावना है जो किसी भी अन्य चीज़ से आती है जो एक बड़ी कंपनी से निकलती है।
-
यह बड़े संगठनों के लिए डिज़ाइन किया गया है। बड़े संगठनों के हैकर्स से अलग लक्ष्य होते हैं। वे ऐसी भाषाएँ चाहते हैं जो (माना जाता है) बड़े पैमाने पर औसत दर्जे के प्रोग्रामरों की टीमों द्वारा उपयोग के लिए उपयुक्त हों - ऐसी भाषाएँ जिनमें ऐसी सुविधाएँ हों, जो यू-हॉल ट्रकों में स्पीड लिमिटर्स की तरह, मूर्खों को बहुत अधिक नुकसान करने से रोकती हैं। हैकर्स ऐसी भाषा पसंद नहीं करते जो उनसे नीची बात करे। हैकर्स बस शक्ति चाहते हैं। ऐतिहासिक रूप से, बड़े संगठनों के लिए डिज़ाइन की गई भाषाएँ (PL/I, Ada) हार गई हैं, जबकि हैकर भाषाएँ (C, Perl) जीत गई हैं। कारण: आज का किशोर हैकर कल का सीटीओ है।
-
गलत लोग इसे पसंद करते हैं। जिन प्रोग्रामरों की मैं सबसे अधिक प्रशंसा करता हूँ, वे, कुल मिलाकर, जावा से मोहित नहीं हैं। जावा किसे पसंद है? सूट, जिन्हें एक भाषा से दूसरी भाषा का अंतर नहीं पता, लेकिन वे जानते हैं कि वे प्रेस में जावा के बारे में सुनते रहते हैं; बड़ी कंपनियों के प्रोग्रामर, जो यह जानकर हैरान हैं कि C++ से भी बेहतर कुछ है; और प्लग-एंड-चग अंडरग्रेजुएट, जो किसी भी चीज़ को पसंद करने के लिए तैयार हैं जो उन्हें नौकरी दिला सकती है (क्या यह परीक्षा में होगा?)। इन लोगों की राय हर हवा के साथ बदलती है।
-
इसके पिता एक संकट में हैं। सन के व्यापार मॉडल को दो मोर्चों पर कमजोर किया जा रहा है। सस्ते इंटेल प्रोसेसर, जो डेस्कटॉप मशीनों में उपयोग किए जाने वाले समान प्रकार के हैं, अब सर्वर के लिए पर्याप्त से अधिक तेज हैं। और फ्रीबीएसडी सर्वर के लिए कम से कम सोलारिस जितना ही अच्छा ओएस प्रतीत होता है। सन का विज्ञापन बताता है कि औद्योगिक शक्ति अनुप्रयोगों के लिए आपको सन सर्वर की आवश्यकता है। यदि यह सच होता, तो याहू सन खरीदने वाली पहली पंक्ति में होता; लेकिन जब मैंने वहां काम किया, तो सर्वर सभी फ्रीबीएसडी चलाने वाले इंटेल बॉक्स थे। यह सन के भविष्य के लिए अशुभ है। यदि सन को परेशानी होती है, तो वे जावा को अपने साथ नीचे खींच सकते हैं।
-
रक्षा विभाग को यह पसंद है। रक्षा विभाग डेवलपर्स को जावा का उपयोग करने के लिए प्रोत्साहित कर रहा है। यह मुझे अब तक का सबसे निंदनीय संकेत लगता है। रक्षा विभाग देश की रक्षा करने का एक अच्छा (यद्यपि महंगा) काम करता है, लेकिन वे योजनाओं और प्रक्रियाओं और प्रोटोकॉल से प्यार करते हैं। उनकी संस्कृति हैकर संस्कृति के विपरीत है; सॉफ्टवेयर के सवालों पर वे गलत दांव लगाने की प्रवृत्ति रखते हैं। पिछली बार जब रक्षा विभाग को एक प्रोग्रामिंग भाषा पसंद आई थी, तो वह एड थी।
ध्यान रखें, यह जावा की आलोचना नहीं है, बल्कि इसके कवर की आलोचना है। मैं जावा को पसंद या नापसंद करने के लिए पर्याप्त रूप से नहीं जानता। यह सिर्फ एक स्पष्टीकरण है कि मुझे इसे सीखने के लिए उत्सुक क्यों नहीं लगता।
यह किसी भाषा को उसमें प्रोग्राम लिखने का प्रयास करने से पहले खारिज करना लापरवाह लग सकता है। लेकिन यह कुछ ऐसा है जो सभी प्रोग्रामरों को करना पड़ता है। सीखने के लिए बहुत सारी प्रौद्योगिकियाँ हैं। आपको यह जानने के लिए बाहरी संकेतों से न्याय करना सीखना होगा कि आपके समय के लायक क्या होगा। मैंने इसी तरह कोबोल, एड, विजुअल बेसिक, आईबीएम AS400, VRML, ISO 9000, SET प्रोटोकॉल, VMS, नोवेल नेटवेयर, और CORBA, और अन्य को लापरवाही से खारिज कर दिया है। वे बस गलत महकते थे।
यह हो सकता है कि जावा के मामले में मैं गलत हूँ। यह हो सकता है कि एक भाषा जिसे एक बड़ी कंपनी द्वारा दूसरी को कमजोर करने के लिए बढ़ावा दिया गया हो, जिसे एक समिति द्वारा "मुख्यधारा" दर्शकों के लिए डिज़ाइन किया गया हो, जिसकी आसमान तक प्रचार किया गया हो, और जिसे रक्षा विभाग द्वारा पसंद किया गया हो, फिर भी एक साफ, सुंदर, शक्तिशाली भाषा हो जिसे मैं प्रोग्रामिंग करना पसंद करूँगा। यह हो सकता है, लेकिन यह बहुत असंभावित लगता है।