आप जावा से रूबी में कैसे जाते हैं?
इस गाइड में, आप दोनों भाषाओं के बीच प्रमुख अंतर सीखेंगे ताकि आपको छलांग लगाने में मदद मिल सके।
यह जावा/सी# से रूबी में जाने के इच्छुक कई लोगों के लिए बहुत अच्छा है।
लेकिन...
यदि आप केवल अंतरों के बारे में उत्सुक हैं, तो यह आपके लिए भी है।
चलिए करते हैं!
स्टैटिक टाइपिंग बनाम डायनामिक टाइपिंग
टाइपिंग शैली दोनों प्रोग्रामिंग भाषाओं के कोड को देखते समय सबसे बड़ा और सबसे उल्लेखनीय अंतर है।
यहां स्थिति है:
- जावा स्टैटिक टाइपिंग का उपयोग करता है
- रूबी डायनामिक टाइपिंग का उपयोग करता है
इसका वास्तव में क्या मतलब है?
टाइपिंग इस बात को संदर्भित करता है कि वेरिएबल्स और मेथड आर्ग्युमेंट्स कैसे काम करते हैं।
एक मजबूती से (या स्टैटिकली) टाइप की गई भाषा को यह घोषित करना होता है कि हर वेरिएबल किस प्रकार (क्लास) के ऑब्जेक्ट्स को स्वीकार कर सकता है।
यह इस तरह दिखता है:
int n = 1;
जहां int प्रकार है, इस मामले में, Integer।
यह उपयोगी क्यों है?
क्योंकि यदि आप इस वेरिएबल को किसी अन्य प्रकार के ऑब्जेक्ट को असाइन करने का प्रयास करते हैं, तो कंपाइलर एक त्रुटि उठाएगा और आपका प्रोग्राम चलना भी शुरू नहीं करेगा।
इसका मतलब है कि आप हमेशा जानेंगे कि आप किस प्रकार के ऑब्जेक्ट के साथ काम कर रहे हैं।
कम लचीले होने के नुकसान के साथ।
इसके विपरीत...
डायनामिक टाइपिंग लचीलेपन के बारे में है, वेरिएबल्स किसी विशेष प्रकार से बंधे नहीं होते हैं, इसलिए प्रकार बदल सकता है।
यहां एक उदाहरण है:
n = 1 n = "abc"
नुकसान यह है कि यदि आपका कोड ढीला है तो आप अधिक त्रुटियों में पड़ सकते हैं और कोड पढ़ते समय आपको उतना नहीं मिलता।
यह प्रमुख अंतरों में से एक है!
अगले खंड में और अधिक।
सिंटैक्स: सरल चीजें और बॉयलरप्लेट
जावा बॉयलरप्लेट का राजा है।
बॉयलरप्लेट वह सभी "सेटअप" कोड है जिसे आपको अपने कोड को सिंटैक्टिकली वैध बनाने के लिए जोड़ना पड़ता है।
परिणामस्वरूप...
जावा सरल चीजों को जटिल बना देता है!
जावा में Hello World:
class Hello { static public void main() { System.out.println("Hello World"); } } फिर आपको इसे क्लास फ़ाइल में कंपाइल करना होगा और इसे चलाना होगा।
दो चरण!
(आईडीई इसमें मदद करते हैं।)
एक और अंतर यह है कि जावा में एक्सप्रेशन सेमीकोलन से समाप्त होते हैं, जो रूबी में आवश्यक नहीं है। आप रूबी में अधिकांश समय पैरेंथेसिस भी छोड़ सकते हैं।
रूबी में Hello World:
puts "Hello World"
हाँ।
बस इतना ही।
ऐसा लगता है कि रूबी क्लीनर कोड में परिणाम देता है। सहमत?
इसके अलावा...
आप इस कोड को टर्मिनल से एक ही कमांड के साथ चला सकते हैं!
कोई कंपाइलेशन चरण आवश्यक नहीं।
कोड के साथ खेलना: बिल्ट-इन REPL
रूबी irb के साथ आता है, जो कोड के एक टुकड़े को टेस्ट करना वास्तव में त्वरित बनाता है।
आपको फ़ाइल सेव करने की भी आवश्यकता नहीं है।
या एडिटर खोलने की!
जावा में यह बिल्ट-इन नहीं है, कम से कम जावा 9 तक नहीं।
फ़ाइल नाम और फ़ाइल संगठन
जावा एक विशिष्ट फ़ाइल नामकरण संरचना और संगठन को बाध्य करता है।
उदाहरण के लिए:
यदि आपके पास Hello नामक एक (पब्लिक) क्लास है, तो फ़ाइल नाम Hello.java होना चाहिए।
रूबी में ऐसा नहीं है।
इसके अलावा, रूबी में प्राइवेट क्लास की अवधारणा नहीं है।
एक्सेप्शन हैंडलिंग
जावा में दो प्रकार के एक्सेप्शन होते हैं:
- चेक्ड एक्सेप्शन
- अनचेक्ड एक्सेप्शन
अंतर?
आपको चेक्ड एक्सेप्शन को हैंडल करना ही होगा!
या आपका प्रोग्राम चलेगा भी नहीं।
अब:
रूबी में केवल एक प्रकार का एक्सेप्शन होता है।
आप इसे चाहें तो हैंडल कर सकते हैं, इंटरप्रेटर इसके बारे में शिकायत नहीं करेगा, लेकिन यह आपके प्रोग्राम को क्रैश कर सकता है।
कंपाइलर और भाषा लाइसेंसिंग
अंत में, लाइसेंसिंग के बारे में बात करते हैं।
यह आमतौर पर प्रोग्रामिंग भाषाओं के साथ कोई समस्या नहीं है।
क्यों?
क्योंकि वे ओपन सोर्स हैं, एक व्यक्ति के साथ हेड मेंटेनर और डिजाइनर के रूप में।
जावा यहां अलग है।
यह एक बड़ी कॉर्पोरेशन (Oracle) से संबंधित है और इसका इसके लाइसेंसिंग पर प्रभाव पड़ता है।
वास्तव में:
जावा रनटाइम के दो संस्करण हैं, "Oracle JDK", जो (यदि मैं सही ढंग से समझता हूं) संस्करण 9 से शुरू होकर एक कमर्शियल उत्पाद है।
फिर आपके पास "Open JDK" है, जो भी Oracle का है।
लेकिन इसका ओपन-सोर्स लाइसेंस है।
लाइब्रेरी और कोड वितरण
एक और प्रमुख अंतर, मेरे पसंदीदा में से एक (मैट्ज़ का पसंदीदा भी) रूबी के बारे में RubyGems है।
यह लाइब्रेरीज़ (HTTP क्लाइंट्स जैसी) वितरित करना बहुत आसान बनाता है।
क्योंकि:
- एक केंद्रीय रिपॉजिटरी है
- यह भाषा में एकीकृत है
- कई ओपन-सोर्स जेम्स उपलब्ध हैं और ढूंढना आसान है
जहां तक मुझे पता है, जावा के पास इसके करीब कुछ भी नहीं है, इसलिए यह रूबी के लिए एक प्रमुख जीत है।
सारांश
आपने जावा और रूबी के बीच प्रमुख अंतर के बारे में सीखा। जिसमें स्टैटिक टाइपिंग, बॉयलरप्लेट, और फ़ाइल नामकरण जैसी चीजें शामिल हैं।
अब आप रूबी को समझने के लिए बेहतर तैयार हैं ताकि आप अपने लिए सही निर्णय ले सकें।
पढ़ने के लिए धन्यवाद! 🙂