क्या यह प्लेटफ़ॉर्म पोर्टेबिलिटी के लिए है? हाँ। आप पहले से ही JVM की अधिकांश स्पष्ट विशेषताओं और इसके फायदों को जानते हैं और अन्य ने पहले से ही शानदार प्रतिक्रियाएं दी हैं।
यहां मैं वर्चुअल मशीनों के लाभ के मानव पक्ष को जोड़ दूंगा। यह मुख्य रूप से विकास और तक पहुंचने के लिए है।
विशिष्ट ऑपरेटिंग सिस्टम के लिए विशिष्ट कंपेलरों के साथ मंच स्वतंत्र भाषा के उदाहरण के रूप में सी पर विचार करें। लिनक्स के साथ-साथ विंडोज़ पर सी में कोड भी हो सकता है। लेकिन, आपको एक ही सिस्टम को Windows सिस्टम पर चलाने के लिए अतिरिक्त लाइब्रेरी हेडर फ़ाइल conio.h की आवश्यकता होगी।
अब, यदि हर सिस्टम (विभिन्न हार्डवेयर और सॉफ़्टवेयर के साथ) पर बड़े पैमाने पर लिखित स्रोत कोड प्रोग्राम और एप्लिकेशन सूट को फिर से सम्मिलित करने की आवश्यकता होती है तो उन्हें प्रत्येक कोडर पर एक ही कोड को फिर से कंपाइल करने की आवश्यकता होगी। यह सिस्टम को संभवतः लक्ष्य के रूप में छोड़ सकता है, यदि डेवलपर्स उस सिस्टम के लिए संकलित करना चूक गए हैं।
यह वास्तव में गेम उद्योग में होता है जहां कुछ गेम अभी संकलित नहीं होते हैं और कुछ सिस्टम के लिए निर्माण करते हैं (जैसे अधिकांश उच्च अंत गेम लिनक्स के लिए नहीं बने होते हैं)। गेम स्टूडियो को प्रत्येक लक्ष्य मशीन के लिए प्रत्येक बार संकलित करने के लिए मजबूर किया जाता है, जैसे वाईआई, पीएस 3, पीएस 4, पीसी, एक्सबॉक्स आदि।
यह समय, प्रयास, संसाधन और स्वच्छता (विशेष रूप से जब आप सुपर बड़े विषम फ़ाइल प्रकारों और स्रोत कोड से निपट रहे हैं, जो संकलन के लिए भारी मात्रा में समय लेते हैं) का अपशिष्ट है।
संक्षेप में; यह प्रत्येक प्रणाली के लिए एक ही स्रोत कोड के मेनियल दोहराव पुनर्मूल्यांकन को कम करना है, ताकि हम प्रोग्रामर हमारे समय के योग्य चीज़ों पर ध्यान केंद्रित कर सकें। [या हम सिर्फ आलसी हैं;)]
परिशिष्ट:
लैरी वॉल, पर्ल प्रोग्रामिंग भाषा के मूल लेखक, वहाँ एक प्रोग्रामर के तीन महान गुण हैं के अनुसार; आलस्य, असंतोष और हबिस। Link
स्रोत
2014-04-05 09:24:33
हम पहले से ही है जैसे आप का वर्णन है और वे के रूप में पोर्टेबल के रूप में जावा हो जाता है नहीं कर रहे हैं (सी, सी ++ उन के बीच में कर रहे हैं) भाषाओं की क्या ज़रूरत है। जब आप जावा के लिए केवल एक बार करते हैं तो आपको प्रत्येक प्लेटफ़ॉर्म के लिए परीक्षण, संकलन और रिलीज़ करने की आवश्यकता होती है। जेवीएम मूल तरीकों पर भरोसा करके फ़ाइलों, सॉकेट इत्यादि के लिए निम्न स्तर के एपीआई से भाषा को अलग करता है। अमूर्तता का यह स्तर JVM पर ऐसी अच्छी पोर्टेबिलिटी बनाता है। –