image-ru-00-18

"हाय, अमीगो। मेरा नाम प्रोफेसर हैंस नूडल्स है। मैं गैलेक्टिक रश में वैज्ञानिक परिषद का प्रमुख हूँ। मैं Java प्रोग्रामिंग सिखाने के आपके प्रयासों का निरिक्षण भी करता हूँ।"

"हेलो, प्रोफेसर नूडल्स।"

मैं आपको समझाना चाहता हूँ कि क्यों Java एक बहुत ही शानदार प्रोग्रामिंग भाषा है।

"आपने कभी न कभी तो सुना होगा कि Java का बेजोड़ लाभ इसकी प्लेटफार्म स्वतंत्रता है। यह क्या है और यह किस लिए होता है, आपने पूछा? मुझे एक विस्तृत दृष्टिकोण की मदद से समझाने दें।"

"एक कंप्यूटर केवल सबसे सरल नूमेरिकल कमांड्स रन कर सकता है। कुत्तों को प्रशिक्षित करते समय हम 'हील', 'शेक' जैसे कमांड्स का उपयोग करते हैं ताकि कुत्ता वैसा ही करे जैसा हम चाहते हैं।"

"कंप्यूटर्स के लिए, नंबर इस प्रकार के कमांड्स की भूमिका अदा करते हैं। प्रत्येक कमांड निश्चित नंबर या कोड (कभी-कभी मशीन कोड भी कहा जाता है) द्वारा प्रस्तुत की जाती है।"

"लेकिन केवल नंबर का उपयोग करके एक प्रोग्राम लिखना वास्तव में कठिन है इसलिए लोगों नें प्रोग्रामिंग लैंग्वेजेस और कम्पाइलर्स का अविष्कार किया।" प्रोग्रामिंग लैंग्वेज मनुष्य और कम्पाइलर्स दोनों द्वारा समझी जा सकती है। एक कम्पाइलर एक विशेष प्रोग्राम होता है जो किसी प्रोग्रामिंग लैंग्वेज में लिखे गए प्रोग्राम को मशीन कोड्स की श्रृंखला में परिवर्तित कर देता है।"

"एक प्रोग्रामर आमतौर पर किसी प्रोग्रामिंग लैंग्वेज में प्रोग्राम लिखता है और फिर कम्पाइलर चलाता है जो प्रोग्रामर द्वारा लिखी गई प्रोग्राम कोड की फाइलों को मशीन कोड वाली एकल फ़ाइल में बदल देता है – फाइनल (कम्पाइलड) प्रोग्राम।"

  • C++ में प्रोग्राम
  • कम्पाइलर
  • मशीन कोड

"परिणामी प्रोग्राम को कंप्यूटर द्वारा तुरंत चलाया जा सकता है। बुरी खबर यह है कि फाइनल प्रोग्राम का कोड पूरी तरह से प्रोसेसर और ऑपरेटिंग सिस्टम पर निर्भर करता है। इसका अर्थ है कि विंडो के लिए कम्पाइल किया गया प्रोग्राम एंड्राइड स्मार्टफ़ोन पर काम नहीं करेगा।"

"इसलिए, अगर मैं एक प्रोग्राम लिखता हूँ और उसे एंड्राइड के लिए कम्पाइल करता हूँ तो क्या यह विंडोज पर काम नहीं करेगा?"

"बिलकुल सही।"

समझ गया।

"हालांकि, Java एक कहीं अधिक अभिनव दृष्टिकोण का उपयोग करता है।"

  • Java में प्रोग्राम
  • Java कम्पाइलर
  • विशेष प्लेटफार्म‑इंडिपेंडेंट कोड (बाइटकोड)
  • JVM
  • मशीन कोड

"Java कम्पाइलर सभी क्लासेस को एक मशीन-कोड प्रोग्राम में नहीं बदलता है। इसकी बजाये, यह हर क्लास को स्वतंत्र रूप से कम्पाइल करता है, मशीन कोड में नहीं बल्कि एक विशेष इंटरमीडिएट कोड (बाइटकोड) में। जब प्रोग्राम को शुरू किया जाता है तब बाइटकोड मशीन कोड में कम्पाइल होता है।"

"तो बताओ, प्रोग्राम को चलाने पर कौन प्रोग्राम को मशीन कोड में कम्पाइल करता है?"

"इसके लिए एक विशेष प्रोग्राम होता है जिसे Java वर्चुअल मशीन (JVM) कहा जाता है। जब आपको बाइटकोड प्रोग्राम चलाना हो तो पहले इसे शुरू करना चाहिए। प्रोग्राम को चलाने से पहले JVM बाइटकोड को मशीन कोड में कम्पाइल करेगा।"

"दिलचस्प। ऐसा करना क्यों आवश्यक है?"

"यह एक बहुत ही प्रभावशाली दृष्टिकोण है और Java के कुल वर्चस्व के कारणों में से एक है।"

"यह दृष्टिकोण Java में लिखे गए प्रोग्राम्स को वस्तुतः किसी भी डिवाइस पर चलाने की अनुमति देता है: कंप्यूटर, स्मार्टफोन, एटीएम, टोस्टर, या क्रेडिट कार्ड!"

"बहुत बढ़िया!"

"इस दृष्टिकोण के कई फायदे हैं। यही कारण है कि सभी एंड्रॉइड प्रोग्राम Java में भी लिखे गए हैं। मोबाइल फोन उद्योग के त्वरित विकास के लिए धन्यवाद, Java प्रोग्रामिंग के निम्नलिखित क्षेत्रों पर हावी है:

1) एंटरप्राइज: बैंकों, निगमों, निवेश निधियों आदि के लिए बड़े सर्वर-उन्मुख एप्लीकेशन।

2)मोबाइल: मोबाइल डेवलपमेंट (स्मार्टफ़ोन, टैबलेट), एंड्राइड की बदौलत।

3) वेब: PHP सबसे आगे है लेकिन Java ने मार्किट के एक बड़े हिस्से पर कब्जा कर लिया है।

4) बिग डेटा: हजारों सर्वरों वाले क्लस्टरों में डिस्ट्रिब्यूटेड कंप्यूटिंग।

5) स्मार्ट डिवाइस: स्मार्ट घरों, इलेक्ट्रॉनिक डिवाइसों, IoT रेफ्रीजिरेटरों आदि के लिए प्रोग्राम।"

"Java केवल एक लैंग्वेज ही नहीं है बल्कि एक प्रकार का पारिस्थितिकी तंत्र है: आप अपने प्रोग्राम में लाखों तैयार मॉड्यूल का उपयोग कर सकते हैं; हजारों ऑनलाइन समुदायों और संदेश बोर्ड्स हैं जहाँ से आप मदद या सलाह प्राप्त कर सकते हैं।"

"आप जितना अधिक Java प्रोग्राम लिखेंगे उतना ही अधिक आपको 'Java ही क्यों?' से संबंधित उत्तर मिलते जाएंगे।" आज के लिए इतना ही।"

"धन्यवाद, प्रोफेसर। यह वास्तव में दिलचस्प और प्रेरणादायक था।"