मेरा मन है कि मैं अपनी दूसरी भाषा (मैं एक पर्ल डेवलपर हूं) के रूप में जावा सीख रहा हूं। लेकिन सिर्फ ऑनलाइन ट्यूटोरियल पढ़ने से, मुझे वास्तव में दोनों के बीच कोई समानता नहीं मिल सकती है। जावा सीखते समय मुझे क्या समझने में आसानी होगी?
मेरा मन है कि मैं अपनी दूसरी भाषा (मैं एक पर्ल डेवलपर हूं) के रूप में जावा सीख रहा हूं। लेकिन सिर्फ ऑनलाइन ट्यूटोरियल पढ़ने से, मुझे वास्तव में दोनों के बीच कोई समानता नहीं मिल सकती है। जावा सीखते समय मुझे क्या समझने में आसानी होगी?
जवाबों:
पर्ल एक उच्च-स्तरीय, सामान्य-उद्देश्य, बहु-प्रतिमान, व्याख्यात्मक, गतिशील प्रोग्रामिंग भाषा है। जावा एक उच्च-स्तरीय, सामान्य-उद्देश्य, ज्यादातर एकल-प्रतिमान, सांख्यिकीय रूप से टाइप की गई प्रोग्रामिंग भाषा है।
तो, दोनों उच्च-स्तरीय हैं :
एक उच्च-स्तरीय प्रोग्रामिंग भाषा एक प्रोग्रामिंग भाषा है जिसमें कंप्यूटर के विवरण से मजबूत अमूर्तता है।
और सामान्य उद्देश्य :
कंप्यूटर सॉफ्टवेयर में एक सामान्य प्रयोजन प्रोग्रामिंग भाषा (GPL) एक प्रोग्रामिंग भाषा है, जिसका उपयोग विभिन्न प्रकार के एप्लिकेशन डोमेन में सॉफ्टवेयर लिखने के लिए किया जाता है।
सार में इसका मतलब है कि आप पर्ल के साथ सब कुछ कर सकते हैं, आप जावा के साथ भी कर सकते हैं। और @KyleHodgson के रूप में , उनके दोनों सिंटैक्स C और C ++ से प्राप्त होते हैं और for
लूप और if
स्टेटमेंट जैसे सरल सामान के लिए सिंटैक्स अनिवार्य रूप से एक ही है - और @DipanMehta नोटों के रूप में , दोनों को एकत्रित किया जाता है । और निश्चित रूप से दोनों बेहद लोकप्रिय हैं और जीवंत समुदाय हैं।
लेकिन यही वह जगह है जहां समानताएं बंद हो जाती हैं। पर्ल बहु-प्रतिमान है, प्रोग्रामिंग प्रतिमानों की एक विस्तृत श्रृंखला का समर्थन करता है:
पर्ल एक एकल प्रतिमान को प्रोत्साहित नहीं करते हैं, वे अनिवार्य रूप से समान हैं और आप जो भी आप सोचते हैं कि आप जो भी निर्माण कर रहे हैं उसे चुनने के लिए स्वतंत्र हैं, बेशक आप एक भी प्रतिमान तक सीमित किए बिना, आप मिश्रण और मेल कर सकते हैं। दूसरी ओर, जावा ज्यादातर वर्ग आधारित वस्तु उन्मुख भाषा है। जेनेरिक प्रोग्रामिंग के लिए समर्थन है, लेकिन एक शुरुआत के रूप में आपको जावा के बारे में एक वर्ग आधारित वस्तु उन्मुख भाषा के रूप में सख्ती से सोचना चाहिए।
इसलिए पर्ल आपके कोड 1 को बनाने के लिए एक से अधिक तरीकों की अनुमति देता है , जबकि जावा सिर्फ एक। यह कोई बुरी बात नहीं है (या अच्छी बात), यह सिर्फ अलग है। यदि आपने कोई वस्तु उन्मुख पर्ल कोड नहीं लिखा है, तो जावा पहले से थोड़ा अलग लग सकता है। निराश न हों, ऑब्जेक्ट ओरिएंटेशन एक ऐसी चीज है जिसे आपको अंततः सीखना होगा, यदि आप सॉफ्टवेयर डेवलपमेंट में करियर बनाने पर विचार कर रहे हैं, और जावा सीखना ऑब्जेक्ट ओरिएंटेशन की बुनियादी अवधारणाओं को सीखने का एक अच्छा तरीका है - एक सही तरीका नहीं है, लेकिन निश्चित रूप से एक अच्छा तरीका है।
और जैसा कि आप जानते हैं, पर्ल की व्याख्या की गई है, जबकि जावा है ... अच्छी तरह से ... पूरी तरह से एक अलग जानवर । जावा में आप अपने कोड को पर्ल में लिखते हैं, और फिर आप इसे संकलित करते हैं । परिणाम एक निष्पादन योग्य नहीं है, लेकिन जावा बाइटकोड । इस बिचौलिया प्रारूप को जावा वर्चुअल मशीन में निष्पादित (अंत में!) किया जाता है, जो पर्ल इंटरप्रेटर के कुछ समरूप है। एक जावा प्रोग्राम को चलाने के लिए एक जेवीएम को पहले से स्थापित किया जाना चाहिए, इस बात पर कि आपको पर्ल स्क्रिप्ट 2 को निष्पादित करने के लिए पर्ल इंटरप्रेटर को कैसे स्थापित करना है ।
एक पर्ल बैकग्राउंड से आता है, याद रखने वाली सबसे महत्वपूर्ण बात है बायटेककोड स्टेप का संकलन: जब भी आप जावा सोर्स फाइल में बदलाव करते हैं, तो आपको इसे फिर से संकलित करने की आवश्यकता होती है। यह पहली बार में पागल लग सकता है, लेकिन संकलन का एक बहुत अच्छा परिणाम है: इस स्तर पर विभिन्न त्रुटियों के लिए आपके कोड की जांच की जाती है, और कंपाइलर प्रक्रिया को समाप्त करने से इनकार करता है यदि कोई हो, और कभी-कभी आपको त्रुटियों को इंगित करने में मदद मिलेगी उपयोगी संदेश (हमेशा संदेश होते हैं, लेकिन केवल कभी-कभी वे सहायक होते हैं)।
जो हमें अंतिम प्रमुख अंतर पर लाता है:
पर्ल गतिशील 3 है :
डायनेमिक प्रोग्रामिंग लैंग्वेज एक शब्द है जिसका उपयोग कंप्यूटर विज्ञान में व्यापक रूप से उच्च-स्तरीय प्रोग्रामिंग भाषाओं के एक वर्ग का वर्णन करने के लिए किया जाता है, जो रनटाइम के दौरान कई सामान्य व्यवहारों को निष्पादित करता है जो अन्य भाषाओं को संकलन के दौरान हो सकता है, यदि हो। इन व्यवहारों में कार्यक्रम का विस्तार, नई कोड जोड़कर, वस्तुओं और परिभाषाओं को जोड़कर, या प्रोग्राम निष्पादन के दौरान सभी प्रकार के सिस्टम को संशोधित करके शामिल किया जा सकता है।
और गतिशील रूप से टाइप 4 :
एक प्रोग्रामिंग भाषा को गतिशील रूप से टाइप करने के लिए कहा जाता है जब कंपाइल-टाइम के विपरीत इसके प्रकार की अधिकांश जाँच रन-टाइम पर की जाती है।
और जावा सांख्यिकीय रूप से टाइप किया गया है :
एक प्रोग्रामिंग भाषा को कहा जाता है कि स्टैटिक टाइपिंग का उपयोग तब किया जाता है जब रन-टाइम के विपरीत संकलन-समय के दौरान टाइप चेकिंग की जाती है।
जो, इसे यथासंभव सरल रूप से रखने के लिए, इसका मतलब है कि जावा में आपको उपयोग करने से पहले अपने चर और विधियों के प्रकार को घोषित करना होगा। अन्य अंतर हैं, लेकिन मैं खुद से उन्हें खोजने का मज़ा खराब नहीं करना चाहूंगा :)
और, अंत में, एक बहुत ही महत्वपूर्ण अंतर है: जावा एकेडेमीया 5 और कॉर्पोरेट दुनिया की प्रिय भाषा है , जबकि आप शायद ही कभी एक अकादमिक सेटिंग में पर्ल से मिलेंगे (जहां मैं पहली बार उनसे मिला था), और इसका कैरियर का दृष्टिकोण सिकुड़ रहा है। (अभी भी काफी कुछ नौकरियों, लेकिन कहीं नहीं जावा, .नेट भाषाओं या PHP के रूप में कई के पास)। मैं कारणों पर टिप्पणी नहीं करूंगा, मैं सिर्फ (दुखद) तथ्यों को बता रहा हूं। चूंकि आप अभी भी बहुत छोटे हैं, इसलिए जावा सीखकर आप कंप्यूटर साइंस की डिग्री के लिए थोड़ा और तैयार होंगे, अगर आपने उस रास्ते पर चलना चुना।
निश्चित रूप से पर्ल पर हार मत मानो, लेकिन जावा का पता लगाएं। तथ्य यह है कि वे समान से अधिक भिन्न हैं इसका मतलब यह भी है कि आप काफी अलग दृष्टिकोण और प्रोग्रामिंग मानसिकता सीखेंगे, यह एक कठिन रास्ता है लेकिन एक है जो अंततः आपको एक बेहतर प्रोग्रामर बना देगा।
2 पेरल समुदाय तोता के माध्यम से एक पर्ल वर्चुअल मशीन की सक्रियता की खोज कर रहा है ।
3 डायनामिक का मतलब हमेशा डायनामिक टाइप नहीं होता है।
4 पर्ल गतिशील रूप से उपयोगकर्ता परिभाषित प्रकारों के लिए टाइप किया गया है, वैधानिक रूप से सरणियों, हैश, स्केलर्स और सबरूटीन्स के संबंध में टाइप किया गया है, और दृढ़ता से टाइप किया गया है use strict
, इसलिए अनिवार्य रूप से यह एक परिवर्तनशील प्रकार की भाषा है, लेकिन कुछ समझदारी रखने के लिए इसे गतिशील रूप से कहते हैं। आपके द्वारा लिखा गया।
5 दुरुपयोग की बात के रूप में, जोएल स्पोल्स्की द पेरिल्स ऑफ जावास्कूल में लिखते हैं ।
खैर, वे दोनों एक सी का उपयोग करते हैं जैसे सिंटैक्स - अर्धविराम, घुंघराले ब्रेस और जैसे। व्यक्तिगत रूप से, जब मैंने कई साल पहले पर्ल से जावा पर स्विच करने की कोशिश की थी - सबसे बड़ी बात जिसने मुझे उलझाया था वह कथित रूप से उन्मुख प्रोग्रामिंग था। मैंने पर्ल में कुछ वस्तुओं का विकास किया था, लेकिन इसने मेरे सिर को चोट पहुँचा दी, क्योंकि किंगडम ऑफ नाउन्स में जीवन की कल्पना करने की कोशिश की।
एक वैकल्पिक उत्तर में एक स्टैब ले रहा है क्योंकि वर्तमान में चयनित एक दोनों के बीच मतभेदों पर ध्यान केंद्रित करता है (वास्तव में पर्ल और जावा के बीच बहुत अधिक समानताएं नहीं हैं)।
यदि आपका पर्ल कोड बहुत कठोर और ऑर्थोगोनल है (अच्छी तरह से परीक्षण किया गया, अच्छी तरह से प्रलेखित, मूस या सख्त ऑब्जेक्ट-ओरिएंटेशन का उपयोग करता है), तो वे अवधारणाएं जावा में बहुत अच्छी तरह से चलेंगी, क्योंकि जावा अत्यंत ऑर्थोगोनल है और अभिव्यंजक नहीं है।