Loading...

जावा का कवर

Original

अप्रैल 2001

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. यह pseudo-hip है। सन अब यह दिखावा करता है कि जावा एक ग्रासरूट, ओपन-सोर्स भाषा प्रयास है जैसे पर्ल या पायथन। यह केवल एक विशाल कंपनी द्वारा नियंत्रित होता है। इसलिए यह भाषा किसी भी अन्य चीज़ की तरह नीरस और भारी हो सकती है जो एक बड़ी कंपनी से आती है।

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

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

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

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

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

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

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