प्रोग्रामिंग में 'पोर्टिंग' शब्द के उपयोग के बारे में प्रश्न


11

मैं वर्तमान में C ++ कोड को संशोधित करने की प्रक्रिया में हूं जो UNIX प्रणाली के लिए लिखा गया था ताकि यह Visual Studio से संकलित होकर काम करे। मुझे कुछ अंतर्निहित कार्यों के नामों को बदलना पड़ा और मुझे जिस तरह से गतिशील सरणियों को परिभाषित किया गया था उसे बदलना पड़ा।

मेरा सवाल यह है कि क्या मैं कह सकता हूं कि मैं इस कोड को UNIX से विंडोज / विजुअल स्टूडियो में 'पोर्ट कर रहा हूं' या 'पोर्टिंग' केवल एक प्रोग्रामिंग लैंग्वेज से दूसरी में बदलते समय (C ++ से जावा में पोर्टिंग) में इस्तेमाल किया जाता है?


1
कई साल पहले, मुझे 32 बिट ओएस / 2 पर चलने के लिए 16 बिट ओएस / 2 सॉफ्टवेयर बदलना पड़ा था। परियोजना के दौरान, सभी ने इस गतिविधि को "32 बिट में पोर्टिंग" के रूप में संदर्भित किया। तो इसका मतलब यह भी नहीं है कि एक अलग OS या एक अलग हार्डवेयर में जाने का मतलब सिर्फ एक अलग वातावरण है।
रोबोट

जवाबों:


15

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

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

जब लोग कहते हैं कि जावा प्रोग्राम अधिक "पोर्टेबल" हैं, तो उनका मतलब है कि उन्हें विभिन्न मशीनों और ऑपरेटिंग सिस्टम के साथ संगत करने के लिए कम अतिरिक्त काम लगता है।


7
मैंने जो देखा है, जब लोग कहते हैं कि जावा प्रोग्राम अधिक पोर्टेबल हैं, तो इसका मतलब है कि उनके पास जावा प्रोग्राम को पोर्ट करने में अनुभव की कमी है, और बस सन / ओरेकल की बिक्री पिचों पर निर्भर हैं। मेरे अनुभव में, जावा को पोर्ट करना वास्तव में औसत से थोड़ा कठिन है (मोटे तौर पर क्योंकि लोगों को यह विश्वास करने के लिए प्रोत्साहित किया गया है कि पोर्टेबिलिटी स्वचालित / गारंटी है और इसलिए ध्यान या काम के योग्य नहीं है)।
जेरी कॉफिन

2
@JerryCoffin: मुझे उस मोर्चे पर बहुत अनुभव नहीं था। जिन जावा प्रोग्रामों के साथ मैंने काम किया है वे सभी वेब एप्लिकेशन थे जो लिनक्स, विंडोज और मैक बॉक्स पर समान रूप से अच्छी तरह से काम करते थे। लेकिन मैंने उन फर्मों से कहानियां सुनी हैं जिनके प्रबंधन ने डेवलपर्स के विरोध के बावजूद उन पर एक जावा रूपांतरण को धक्का दिया कि वे पोर्टेबिलिटी हासिल नहीं करेंगे।
स्ट्रिपिंगवर्यर

4
@ जेरी - यह सुनिश्चित नहीं है कि आपका अनुभव कहाँ पर है, लेकिन मेरे द्वारा पोर्ट किए गए हर जावा प्रोग्राम में पोर्ट के लिए बहुत मामूली है (इसमें GUI और सर्वर-साइड ऐप शामिल हैं जो Mac / Win / Linux / Solaris से अधिक हैं)। सन और ओरेकल इस हद तक सही हैं कि जावा एप्स किसी भी चीज की तुलना में पोर्ट करना ज्यादा आसान है - ज्यादातर के लिए एक recompile की भी आवश्यकता नहीं है (जो कि अच्छी तरह से लिखे गए पोर्टेबल C / C ++ के लिए भी आवश्यक होगी जो कि पोर्टेबिलिटी पर शायद 2 सबसे अच्छा है)। सबसे आम मुद्दे जो मैं देख रहा हूं जब डेवलपर्स के पास निर्देशिका विभाजक के रूप में "/" जैसे हार्डकोडेड प्लेटफॉर्म-विशिष्ट चीजें हैं, लेकिन इन्हें ठीक करना बहुत आसान है ....
1

@ जेरी I ने 5 वर्षों के लिए J2ME खेलों की प्रोग्रामिंग की। जब मैं समाप्त कर रहा था, तो हम एक गेम के 80 संस्करण कर रहे थे - हर प्लेटफॉर्म में अलग-अलग प्रदर्शन, बग आदि होते हैं। समाधान? उन्होंने प्लेटफार्मों के लिए मानक नहीं बनाए, उन्होंने J2ME अनुप्रयोगों के लिए standartized परीक्षण बनाए। फिर कभी नहीं।
सुल्तान

2

एक ऑपरेटिंग सिस्टम के बीच सॉफ्टवेयर को पोर्ट कर सकता है। प्रोसेसर आर्किटेक्चर के बीच एक सॉफ्टवेयर को पोर्ट कर सकता है। प्रमुख प्लेटफ़ॉर्म परिवर्तन (Apple के PPC -> x86 स्विच, या Windows XP -> विंडोज विस्टा / 7/8) के साथ काम करते समय मुझे उन कुछ गतिविधियों को करने की आवश्यकता होती है जिन्हें मैं "पोर्टिंग" के साथ जोड़ता हूँ। मैं प्रोग्रामिंग भाषाओं को "पोर्टिंग" नहीं मानूंगा। पूरी तरह से फिर से लिखना पसंद है।

मैंने लिनक्स से विंडोज और इसके विपरीत सॉफ्टवेयर को पोर्ट किया है। मैंने SPARC से x86 तक सॉफ़्टवेयर को पोर्ट किया है (मैं सिर्फ एंडियन मुद्दों से निपटना पसंद करता हूं) और 32-बिट से 64-बिट तक। इन दिनों मैं जावा में प्रोग्रामिंग कर रहा हूं ... मुझे यकीन नहीं है कि "पोर्टिंग" शब्द का जावलैंड में बहुत अर्थ है, शायद प्रमुख जेएमएम संस्करणों के बीच ...।


0

पोर्टिंग खेल के विकास में अधिक से अधिक लोकप्रिय हो रही है, क्योंकि प्रकाशक जितना संभव हो उतने प्लेटफॉर्म को कवर करना चाहते हैं (पीसी, एक्सबॉक्स, प्लेस्टेशन, आदि)। जैसा कि उल्लेख किया गया है, पोर्टिंग का अर्थ मूल कार्यक्रम को परिवर्तित करना है ताकि यह पूरी तरह से अलग प्रणाली में काम करे। आमतौर पर गेम बनाने वाले कंसोल गेम को पीसी में बदल देते हैं।


अधिक से अधिक डेवलपर्स क्रॉस-प्लेटफॉर्म डेवलपमेंट टूल्स जैसे यूनिटी पर भरोसा कर रहे हैं ताकि उन्हें पोर्ट न करना पड़े। एक कोडबेस को विकसित करना जो शुरू में कई प्लेटफार्मों पर चलता है "पोर्टिंग" के रूप में एक ही बात नहीं है, जिसका अर्थ है कि कुछ को एक मंच पर डिज़ाइन किया गया था और फिर दूसरे पर चलाने के लिए संशोधित किया गया था।
रोबोट

यह दिलचस्प लगता है! यह प्रदर्शन और मापनीयता को कैसे प्रभावित करता है? एक चिंता सबसे अधिक संभावना यह होगी कि अधिकांश उच्च अंत पीसी की तुलना में कंसोल अभी भी काफी धीमा है - एकता कैसे तेजी से सिस्टम पर अधिकतम गुणवत्ता से समझौता किए बिना इस तक पहुंचती है?
जूहा अनटाइनन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.