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

जावा को जेम्स गोस्लिंग और सन माइक्रोसिस्टम्स के शोधकर्ताओं की एक टीम द्वारा चार वर्षों में विकसित किया गया था, 1991 में शुरू हुआ और 1995 में रिलीज़ हुआ। उन्होंने एक ऑब्जेक्ट-ओरिएंटेड भाषा विकसित की जो कई ऑपरेटिंग सिस्टम पर चल सकती थी। यह तब से उपकरणों की एक विस्तृत श्रृंखला पर उपयोग किया गया है, फोन से लेकर नासा रोवर्स तक, और 2016 तक जावा एप्लेट्स के माध्यम से एक मल्टीमीडिया वेब तकनीक (जैसे फ्लैश थी और जावास्क्रिप्ट अभी भी है) थी, जब जावा ने आधिकारिक तौर पर समर्थन खींच लिया था।

जावास्क्रिप्ट को 1995 में भी जारी किया गया था, लेकिन वेब पेजों को लोड करने के बाद वेब पेजों को इंटरैक्टिव बनाने के तरीके के रूप में नेटस्केप में ब्रेंडन ईच द्वारा 10 दिनों में बनाया गया था। इसे शुरू में मई 1995 में मोचा कहा जाता था, लेकिन सितंबर में लाइवस्क्रिप्ट के रूप में नेटस्केप नेविगेटर के साथ भेज दिया गया था और दिसंबर 1995 तक इसे जावास्क्रिप्ट में बदल दिया गया था। यह देखते हुए कि भाषा को जावा के समान एक हल्के स्क्रिप्टिंग समकक्ष के रूप में बनाया गया था, नाम वास्तव में बनाता है समझ - और यह एक बहुत अच्छा मार्केटिंग नाटक भी था। तब से, यह HTML और CSS के साथ-साथ आधुनिक इंटरनेट के तीन प्रमुख घटकों में से एक बन गया है।
तकनीकी अंतर
जावा और जावास्क्रिप्ट दोनों ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज हैं, जिसका अर्थ है कि प्रोग्रामर सूचनाओं के टुकड़े बनाकर और उन्हें सूचना के अन्य हिस्सों से जोड़कर काम कर सकते हैं। उदाहरण के लिए, एक "बिल्ली" वस्तु में बिल्ली के नाम, रंग और उम्र के बारे में जानकारी शामिल हो सकती है, साथ ही उन चीजों की एक सूची भी शामिल हो सकती है जो बिल्ली कर सकती है, जैसे म्याऊ, खाना और सोना। उस वस्तु की जानकारी तब प्रोग्रामर के लिए उपलब्ध होती है, जो बिल्ली के बारे में जानकारी का प्रिंट आउट ले सकता है या उससे कुछ करवा सकता है।
यही सबसे बड़ी समानता है। हालांकि, मतभेद वहीं से ढेर हो जाते हैं।
<एच3>1. जावा संकलित है, जावास्क्रिप्ट की व्याख्या की गई है
जावा में "एक बार लिखें, कहीं भी चलाएं" प्रणाली है। यह इस तरह काम करता है:
- जावा में कोड लिखें।
- कोड को कंप्यूटर-पठनीय बायटेकोड में संकलित करें।
- जावा वर्चुअल मशीन पर कोड चलाएं, जो एक वर्चुअल कंप्यूटर है जो डिवाइस पर जावा बाइटकोड चलाता है।
इसका मतलब यह है कि जब भी आप प्रोग्राम को बदलना चाहते हैं, तो आपको जावा कोड में बदलाव करना होगा और पूरे प्रोग्राम को फिर से बायटेकोड में ट्रांसलेट करना होगा।

हालाँकि, जावास्क्रिप्ट को वेब ब्राउज़र द्वारा वैसे ही पढ़ा जा सकता है जैसे यह लिखा गया है। ब्राउज़र बस प्रत्येक पंक्ति की जाँच करता है और उसे चलाता है। यह इसे और अधिक लचीला और बदलने में आसान बनाता है, हालांकि यह प्रदर्शन पर संकलित कोड से पीछे है, क्योंकि यह सीधे मशीन-पठनीय भाषा में नहीं चल रहा है।
<एच3>2. स्टेटिक टाइपिंग (जावा) बनाम डायनेमिक टाइपिंग (जावास्क्रिप्ट)प्रोग्रामिंग भाषाओं का एक बड़ा हिस्सा वेरिएबल्स में वैल्यू स्टोर कर रहा है। जावा स्थिर रूप से टाइप किया गया है, जिसका अर्थ है कि आपको यह कहना होगा कि प्रत्येक चर में किस प्रकार का मूल्य है, और फिर यह तय हो गया है। उदाहरण के लिए:
int a_number = 42; char a_letter = ‘z’;
"int" को एक नंबर होना चाहिए और "char" को एक अक्षर होना चाहिए।

हालाँकि, जावास्क्रिप्ट गतिशील रूप से टाइप किया गया है, इसलिए कोई भी चर किसी भी डेटा प्रकार को धारण कर सकता है, और वे बिना किसी समस्या के बदल सकते हैं। नीचे दिया गया कोड ठीक चलता है:
let number = 42; let a_letter = “z”;

जावा में गति और डिबगिंग का लाभ है:चर प्रकारों की घोषणा करने से समस्याएँ तेज़ी से बढ़ती हैं और कोड को और तेज़ी से चलने देता है। हालांकि, अधिकांश डेवलपर्स के साथ काम करने के लिए जावास्क्रिप्ट तेज है।
<एच3>3. समवर्ती
जावा एक ही समय में कई अलग-अलग थ्रेड चला सकता है, जिसका अर्थ है कि यह एक साथ कई काम कर सकता है।

जावास्क्रिप्ट इसके बजाय एक इवेंट लूप का उपयोग करता है, अनिवार्य रूप से चीजों के ढेर के माध्यम से काम करता है जब तक कि यह अंत तक नहीं पहुंच जाता। फिर से, जावा का यहाँ प्रदर्शन लाभ है।
<एच3>4. जावा में कक्षाएं हैं, जावास्क्रिप्ट में प्रोटोटाइप हैं
याद रखें, जावा और जावास्क्रिप्ट सूचनाओं को संग्रहीत करने के लिए वस्तुओं का उपयोग करते हैं। वे दोनों "विरासत" का भी उपयोग करते हैं, जो वस्तुओं को उनके गुणों को कहीं और से प्राप्त करने की अनुमति देता है। जावा में, उन्हें कक्षाओं से गुण मिलते हैं, जो अनिवार्य रूप से ब्लूप्रिंट होते हैं, जिसमें निर्देश होते हैं कि ऑब्जेक्ट कैसे बनाया जाए। जावास्क्रिप्ट में, नई वस्तुएँ प्रोटोटाइप या वस्तुओं का उपयोग करके बनाई जाती हैं जिन्हें एक नई वस्तु बनाने के लिए कॉपी किया जा सकता है।
मूल रूप से, इसका मतलब है कि जावास्क्रिप्ट में कोई भी वस्तु एक प्रोटोटाइप बन सकती है, जबकि जावा के लिए आपको एक ऐसा वर्ग बनाने की आवश्यकता होती है जो वस्तुओं को बना सके। पहले के उदाहरण का उल्लेख करने के लिए, जावा बिल्ली बनाने के तरीके के बारे में निर्देश प्रदान करता है, जबकि जावास्क्रिप्ट सिर्फ इसे क्लोन करता है।
मुझे किसकी आवश्यकता है?

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