Loading...

जावा का कवर

Original

अप्रैल 2001

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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