क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर: Difference between revisions
Line 128: | Line 128: | ||
==== क्रॉस- प्लेटफ़ॉर्मप्ले ==== | ==== क्रॉस- प्लेटफ़ॉर्मप्ले ==== | ||
{{Main|Cross-platform play|List of video games that support cross-platform play}} | {{Main|Cross-platform play|List of video games that support cross-platform play}} | ||
कई डेवलपर्स ने विभिन्न प्लेटफार्मों का उपयोग करते हुए ऑनलाइन गेम खेलने के तरीके लागू किए हैं। Psyonix, Epic Games, | कई डेवलपर्स ने विभिन्न प्लेटफार्मों का उपयोग करते हुए ऑनलाइन गेम खेलने के तरीके लागू किए हैं। Psyonix, Epic Games, माइक्रोसॉफ्ट, और Valve Corporation सभी के पास ऐसी तकनीक है जो Xbox 360 और PlayStation 3 गेमर्स को पीसी गेमर्स के साथ खेलने की अनुमति देती है, जिससे उपभोक्ताओं को किस प्लेटफ़ॉर्म का उपयोग करना है। पीसी और कंसोल गेम के बीच इस स्तर की अन्तरक्रियाशीलता की अनुमति देने वाला पहला गेम क्वैक 3 था।<ref>Cribba. [https://www.giantbomb.com/quake-iii-arena/3030-3874/ Quake III Arena], ''Giant Bombcast'', February 15, 2013.</ref> | ||
क्रॉस- प्लेटफ़ॉर्मऑनलाइन प्ले की सुविधा वाले गेम में रॉकेट लीग, फ़ाइनल फ़ैंटेसी XIV: ए रियलम रीबॉर्न, स्ट्रीट फाइटर वी, किलर इंस्टिंक्ट (2013 वीडियो गेम), पैरागॉन (वीडियो गेम) और फैबल फॉर्च्यून, और माइनक्राफ्ट शामिल हैं। 10, VR संस्करण, Minecraft - Pocket Edition और Xbox One। | क्रॉस- प्लेटफ़ॉर्मऑनलाइन प्ले की सुविधा वाले गेम में रॉकेट लीग, फ़ाइनल फ़ैंटेसी XIV: ए रियलम रीबॉर्न, स्ट्रीट फाइटर वी, किलर इंस्टिंक्ट (2013 वीडियो गेम), पैरागॉन (वीडियो गेम) और फैबल फॉर्च्यून, और माइनक्राफ्ट शामिल हैं। 10, VR संस्करण, Minecraft - Pocket Edition और Xbox One। | ||
Line 135: | Line 135: | ||
=== दृष्टिकोण <span class= एंकर id= क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग के लिए दृष्टिकोण ></span> === | === दृष्टिकोण <span class= एंकर id= क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग के लिए दृष्टिकोण ></span> === | ||
क्रॉस- प्लेटफ़ॉर्मअनुप्रयोग लिखने के विभिन्न तरीके हैं। एक तरीका अलग-अलग स्रोत ट्री में एक ही सॉफ़्टवेयर के कई संस्करण बनाना है- दूसरे शब्दों में, किसी अनुप्रयोग के | क्रॉस- प्लेटफ़ॉर्मअनुप्रयोग लिखने के विभिन्न तरीके हैं। एक तरीका अलग-अलग स्रोत ट्री में एक ही सॉफ़्टवेयर के कई संस्करण बनाना है- दूसरे शब्दों में, किसी अनुप्रयोग के माइक्रोसॉफ्ट विंडोज संस्करण में स्रोत संकेतक फ़ाइलों का एक समुच्चय और एप्प्ल Macintओएसh संस्करण दूसरा हो सकता है, जबकि एक मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर * निक्स प्रणाली में एक तिहाई हो सकता है। हालांकि यह सीधा है, केवल एक प्लेटफ़ॉर्म के लिए विकसित होने की तुलना में बड़ी टीम को भुगतान करने या उत्पादों को अधिक धीरे-धीरे जारी करने में अधिक खर्च हो सकता है। इसके परिणामस्वरूप और अधिक बग्स को ट्रैक किया जा सकता है और उन्हें ठीक किया जा सकता है। | ||
एक अन्य तरीका सॉफ्टवेयर का उपयोग करना है जो प्लेटफार्मों के बीच के अंतर को छुपाता है। यह अमूर्त परत प्लेटफ़ॉर्म से अनुप्रयोग को इंसुलेट करती है। ऐसे अनुप्रयोग प्लेटफ़ॉर्म अज्ञेयवादी हैं। जेवीएम पर चलने वाले अनुप्रयोग इस तरह से बनाए जाते हैं। | एक अन्य तरीका सॉफ्टवेयर का उपयोग करना है जो प्लेटफार्मों के बीच के अंतर को छुपाता है। यह अमूर्त परत प्लेटफ़ॉर्म से अनुप्रयोग को इंसुलेट करती है। ऐसे अनुप्रयोग प्लेटफ़ॉर्म अज्ञेयवादी हैं। जेवीएम पर चलने वाले अनुप्रयोग इस तरह से बनाए जाते हैं। | ||
Line 160: | Line 160: | ||
* GLBasic: एक बेसिक बोली और कंपाइलर जो C++ संकेतक जेनरेट करता है। इसमें कई प्लेटफार्मों के लिए क्रॉस कंपाइलर शामिल हैं और कई प्लेटफ़ॉर्म (विंडोज, मैक, लिनक्स, एंड्रॉइड, आईओएस और कुछ विदेशी हैंडहेल्ड) का समर्थन करते हैं। | * GLBasic: एक बेसिक बोली और कंपाइलर जो C++ संकेतक जेनरेट करता है। इसमें कई प्लेटफार्मों के लिए क्रॉस कंपाइलर शामिल हैं और कई प्लेटफ़ॉर्म (विंडोज, मैक, लिनक्स, एंड्रॉइड, आईओएस और कुछ विदेशी हैंडहेल्ड) का समर्थन करते हैं। | ||
* गोडोट (गेम इंजन): एक एसडीके जो गोडोट इंजन का उपयोग करता है। | * गोडोट (गेम इंजन): एक एसडीके जो गोडोट इंजन का उपयोग करता है। | ||
* GTK+: X11 और | * GTK+: X11 और माइक्रोसॉफ्ट विंडोज के साथ यूनिक्स जैसी प्रणालियों के लिए एक ओपन-सोर्स विजेट टूलकिट। | ||
* Haxe: एक ओपन-सोर्स भाषा। | * Haxe: एक ओपन-सोर्स भाषा। | ||
* जूस: C++ में लिखा गया एक अनुप्रयोग प्राधारिक, संकेतक में बिना किसी बदलाव के, कई प्रणाली ्स ( | * जूस: C++ में लिखा गया एक अनुप्रयोग प्राधारिक, संकेतक में बिना किसी बदलाव के, कई प्रणाली ्स (माइक्रोसॉफ्ट विंडोज, PओएसIX, macओएस) पर नेटिव सॉफ्टवेयर लिखने के लिए इस्तेमाल किया जाता है। | ||
* किवी (प्राधारिक): एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म यूआई प्राधारिक जो पायथन ( कार्यरचना भाषा) में लिखा गया है। यह एंड्रॉइड (संचालन तंत्र), आईओएस, लिनक्स, मैकओएस, माइक्रोसॉफ्ट विंडोज और रास्पबेरी पाई को सपोर्ट करता है। | * किवी (प्राधारिक): एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म यूआई प्राधारिक जो पायथन ( कार्यरचना भाषा) में लिखा गया है। यह एंड्रॉइड (संचालन तंत्र), आईओएस, लिनक्स, मैकओएस, माइक्रोसॉफ्ट विंडोज और रास्पबेरी पाई को सपोर्ट करता है। | ||
* लीडटूल: विंडोज, आईओएस, मैकओएस, एंड्रॉइड, लिनक्स और वेब अनुप्रयोग में मान्यता, दस्तावेज़, चिकित्सा, इमेजिंग और मल्टीमीडिया तकनीकों को एकीकृत करने के लिए क्रॉस- प्लेटफ़ॉर्मएसडीके लाइब्रेरी।<ref>{{Cite web|title=Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia|url=https://www.leadtools.com/sdk/cross-platform|access-date=2021-03-03|website=www.leadtools.com}}</ref> | * लीडटूल: विंडोज, आईओएस, मैकओएस, एंड्रॉइड, लिनक्स और वेब अनुप्रयोग में मान्यता, दस्तावेज़, चिकित्सा, इमेजिंग और मल्टीमीडिया तकनीकों को एकीकृत करने के लिए क्रॉस- प्लेटफ़ॉर्मएसडीके लाइब्रेरी।<ref>{{Cite web|title=Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia|url=https://www.leadtools.com/sdk/cross-platform|access-date=2021-03-03|website=www.leadtools.com}}</ref> | ||
Line 190: | Line 190: | ||
* वेवमेकर: उत्तरदायी वेब और हाइब्रिड मोबाइल (एंड्रॉइड और आईओएस) अनुप्रयोग बनाने के लिए एक कम-संकेतक विकास उपकरण। | * वेवमेकर: उत्तरदायी वेब और हाइब्रिड मोबाइल (एंड्रॉइड और आईओएस) अनुप्रयोग बनाने के लिए एक कम-संकेतक विकास उपकरण। | ||
* विनडेव: विंडोज, लिनक्स, नेट और जावा, और वेब ब्राउज़र के लिए एक एकीकृत विकास पर्यावरण। व्यापार और औद्योगिक अनुप्रयोगों के लिए अनुकूलित। | * विनडेव: विंडोज, लिनक्स, नेट और जावा, और वेब ब्राउज़र के लिए एक एकीकृत विकास पर्यावरण। व्यापार और औद्योगिक अनुप्रयोगों के लिए अनुकूलित। | ||
* wxwidgets: एक ओपन-सोर्स विजेट टूलकिट जो एक एप्लीकेशन प्राधारिक भी है।<ref name="wxwidgets">[http://wxwidgets.org/ WxWidgets Description]</ref> यह X11, | * wxwidgets: एक ओपन-सोर्स विजेट टूलकिट जो एक एप्लीकेशन प्राधारिक भी है।<ref name="wxwidgets">[http://wxwidgets.org/ WxWidgets Description]</ref> यह X11, माइक्रोसॉफ्ट विंडोज और मैकओएसके साथ यूनिक्स जैसे प्रणाली पर चलता है। | ||
* Xojo: एक RAD IDE जो डेस्कटॉप, वेब और iओएस ऐप बनाने के लिए ऑब्जेक्ट-ओरिएंटेड कार्यरचना भाषा का उपयोग करता है। Xojo macओएस, विंडोज, लिनक्स और रास्पबेरी पाई के लिए देशी, संकलित डेस्कटॉप ऐप बनाती है। यह संकलित वेब ऐप बनाता है जिसे स्टैंडअलोन सर्वर के रूप में या CGI के माध्यम से चलाया जा सकता है। और इसने हाल ही में देशी iओएस ऐप बनाने की क्षमता जोड़ी है। | * Xojo: एक RAD IDE जो डेस्कटॉप, वेब और iओएस ऐप बनाने के लिए ऑब्जेक्ट-ओरिएंटेड कार्यरचना भाषा का उपयोग करता है। Xojo macओएस, विंडोज, लिनक्स और रास्पबेरी पाई के लिए देशी, संकलित डेस्कटॉप ऐप बनाती है। यह संकलित वेब ऐप बनाता है जिसे स्टैंडअलोन सर्वर के रूप में या CGI के माध्यम से चलाया जा सकता है। और इसने हाल ही में देशी iओएस ऐप बनाने की क्षमता जोड़ी है। | ||
==चुनौतियाँ == | ==चुनौतियाँ == | ||
क्रॉस- | क्रॉस- प्लेटफ़ॉर्म सॉफ़्टवेयर विकसित करते समय कई चुनौतियाँ हैं। | ||
* क्रॉस- | * क्रॉस- प्लेटफ़ॉर्म अनुप्रयोगों का परीक्षण करना काफी अधिक जटिल हो सकता है, क्योंकि विभिन्न प्लेटफ़ॉर्म थोड़े भिन्न व्यवहार या सूक्ष्म बग प्रदर्शित कर सकते हैं। इस समस्या ने कुछ डेवलपर्स को क्रॉस- प्लेटफ़ॉर्म विकास को "एक बार लिखें, हर जगह डीबग करें", सन सूक्ष्म प्रणाली पर एक टेक "एक बार लिखें, कहीं भी चलाएं" विपणन नारा के रूप में उपहास करने के लिए प्रेरित किया है। | ||
* डेवलपर्स अक्सर सुविधाओं के सबसे कम सामान्य भाजक का उपयोग करने के लिए प्रतिबंधित होते हैं जो सभी प्लेटफार्मों पर उपलब्ध होते हैं। यह अनुप्रयोग के प्रदर्शन में बाधा डाल सकता है या डेवलपर्स को प्रत्येक प्लेटफ़ॉर्म की सबसे उन्नत सुविधाओं का उपयोग करने से रोक सकता है। | * डेवलपर्स अक्सर सुविधाओं के सबसे कम सामान्य भाजक का उपयोग करने के लिए प्रतिबंधित होते हैं जो सभी प्लेटफार्मों पर उपलब्ध होते हैं। यह अनुप्रयोग के प्रदर्शन में बाधा डाल सकता है या डेवलपर्स को प्रत्येक प्लेटफ़ॉर्म की सबसे उन्नत सुविधाओं का उपयोग करने से रोक सकता है। | ||
* अलग-अलग प्लेटफ़ॉर्म में अक्सर अलग-अलग | * अलग-अलग प्लेटफ़ॉर्म में अक्सर अलग-अलग उपभोक्ता अंतरापृष्ठ अधिवेशन होते हैं, जो क्रॉस-प्लेटफ़ॉर्म अनुप्रयोग हमेशा समायोजित नहीं होते हैं। उदाहरण के लिए, मैकओएसऔर जीएनओएमई के लिए विकसित किए गए अनुप्रयोग को विंडो या डायलॉग के दाईं ओर सबसे महत्वपूर्ण बटन रखना चाहिए, जबकि माइक्रोसॉफ्ट विंडोज और केडीई में विपरीत परंपरा है। हालांकि इनमें से कई अंतर सूक्ष्म हैं, एक क्रॉस- प्लेटफ़ॉर्म अनुप्रयोग जो इन सम्मेलनों के अनुरूप नहीं है, उपयोगकर्ता के लिए भद्दा या विदेशी लग सकता है। तेजी से काम करते समय, इस तरह के विरोधी सम्मेलनों के परिणामस्वरूप आँकड़े हानि भी हो सकती है, जैसे एक संवाद बॉक्स में यह पुष्टि करना कि परिवर्तनों को सहेजना या त्यागना है या नहीं। | ||
* लिपिन्यास भाषाओं और वीएम बाइटसंकेतक को हर बार उपयोग किए जाने पर मूल निष्पादन योग्य संकेतक में अनुवादित किया जाना चाहिए, एक प्रदर्शन जुर्माना लगाया जाता है। जस्ट-इन-टाइम संकलन जैसी तकनीकों का उपयोग करके इस दंड को कम किया जा सकता है, लेकिन कुछ | * लिपिन्यास भाषाओं और वीएम बाइटसंकेतक को हर बार उपयोग किए जाने पर मूल निष्पादन योग्य संकेतक में अनुवादित किया जाना चाहिए, एक प्रदर्शन जुर्माना लगाया जाता है। जस्ट-इन-टाइम संकलन जैसी तकनीकों का उपयोग करके इस दंड को कम किया जा सकता है, लेकिन कुछ संगणनात्मक ऊपरी अपरिहार्य हो सकते हैं। | ||
* विभिन्न प्लेटफार्मों को मूल | * विभिन्न प्लेटफार्मों को मूल संपुष्टि प्रारूपों जैसे आरपीएम और एमएसआई के उपयोग की आवश्यकता होती है। मल्टी- प्लेटफ़ॉर्मइंस्टॉलर जैसे कि इनस्टॉल एनीवेयर इस आवश्यकता को पूरा करता है। | ||
* क्रॉस- | * क्रॉस- प्लेटफ़ॉर्म निष्पादन परिवेशों को क्रॉस- प्लेटफ़ॉर्म सुरक्षा खामियों का सामना करना पड़ सकता है, जिससे क्रॉस- प्लेटफ़ॉर्म मैलवेयर के लिए एक उपजाऊ परिवेश बन सकता है।<ref>{{Cite web|url=https://www.theverge.com/2020/1/14/21065122/microsoft-windows-7-end-of-support-lifecycle-millions-pcs|title=Microsoft bids farewell to Windows 7 and the millions of PCs that still run it|last=Warren|first=Tom|date=2020-01-14|website=The Verge|language=en|access-date=2020-02-06}}</ref> | ||
==यह भी देखें== | ==यह भी देखें== | ||
* क्रॉस- | * क्रॉस- प्लेटफ़ॉर्म प्ले | ||
* हार्डवेयर-अज्ञेयवादी | * हार्डवेयर-अज्ञेयवादी | ||
*सॉफ्टवेयर सुवाह्यता | *सॉफ्टवेयर सुवाह्यता | ||
* क्रॉस- | * क्रॉस- प्लेटफ़ॉर्म प्ले का समर्थन करने वाले वीडियो गेम की सूची | ||
* विजेट टूलकिट की सूची | * विजेट टूलकिट की सूची | ||
* हार्डवेयर वर्चुअलाइजेशन | * हार्डवेयर वर्चुअलाइजेशन |
Revision as of 13:19, 4 November 2022
अभिकलन में, क्रॉस- प्लेटफ़ॉर्म सॉफ़्टवेयर (जिसे मल्टी- प्लेटफ़ॉर्म सॉफ़्टवेयर, प्लेटफ़ॉर्म-अज्ञेय सॉफ़्टवेयर या प्लेटफ़ॉर्म-स्वतंत्र सॉफ़्टवेयर भी कहा जाता है) अभिकलित्र सॉफ़्टवेयर (यंत्रेतर सामग्री) है जिसे कई अभिकलन प्लेटफ़ॉर्म में काम करने के लिए परिकलन किया गया है।[1] कुछ क्रॉस- प्लेटफ़ॉर्म सॉफ़्टवेयर के लिए प्रत्येक प्लेटफ़ॉर्म के लिए एक अलग निर्माण की आवश्यकता होती है, लेकिन कुछ को विशेष तैयारी के बिना किसी भी प्लेटफ़ॉर्म पर सीधे चलाया जा सकता है, व्याख्या की गई भाषा में लिखा जा रहा है या सुवाह्य बाइटसंकेतक में संकलित किया जा सकता है जिसके लिए दुभाषिए या कार्यावधि संपुष्टि सामान्य या सभी समर्थित प्लेटफ़ॉर्म के घटक मानक हैं। [2]
उदाहरण के लिए, एक क्रॉस- प्लेटफ़ॉर्म अनुप्रयोग माइक्रोसॉफ्ट विंडोज, लिनक्स और मैकओएस पर चल सकता है। क्रॉस- प्लेटफ़ॉर्म सॉफ़्टवेयर कई प्लेटफ़ॉर्म पर, या कम से कम दो पर चल सकता है। क्रॉस- प्लेटफ़ॉर्म विकास के लिए कुछ ढांचे संकेतकनेम वन, कीवी, क्यूटी, फ़्लटर, नेटिवस्क्रिप्ट, ज़ैमरिन, फोनगैप, आयोनिक और रिएक्ट नेटिव हैं।
प्लेटफ़ॉर्म
प्लेटफ़ॉर्म उस प्रकार के संसाधक (सीपीयू) या अन्य हार्डवेयर (यंत्रसामग्री) को संदर्भित कर सकता है जिस पर एक संचालन तंत्र (ओएस) या अनुप्रयोग चलता है, ओएस का प्रकार, या दोनों का संयोजन है।[3] सामान्य प्लेटफ़ॉर्म का एक उदाहरण एक्स 86 संरचना पर चलने वाला माइक्रोसॉफ्ट विंडोज ओएस है। अन्य प्रसिद्ध डेस्कटॉप प्लेटफ़ॉर्म लिनक्स / यूनिक्स और मैकओएस हैं - ये दोनों स्वयं क्रॉस- प्लेटफ़ॉर्म हैं।[3]हालांकि, स्मार्टफोन जैसे कई उपकरण हैं जो प्लेटफ़ॉर्म भी हैं। अनुप्रयोग को किसी विशेष प्लेटफ़ॉर्म की सुविधाओं पर निर्भर करने के लिए लिखा जा सकता है - या तो हार्डवेयर, ओएस, या कल्पित मशीन (वीएम) जिस पर वह चलता है। उदाहरण के लिए, जावा प्लेटफ़ॉर्म एक सामान्य वीएम प्लेटफ़ॉर्म है जो कई ओएस और हार्डवेयर प्रकारों पर चलता है।[4]
हार्डवेयर (यंत्रसामग्री)
हार्डवेयर प्लेटफ़ॉर्म एक निर्देश समुच्चय संरचना को संदर्भित करता है। उदाहरण के लिए: एक्स 86 संरचना और इसके भिन्नरूप जैसे आई ए -32 और एक्स86-64 है। ये मशीनें अक्सर माइक्रोसॉफ्ट विंडोज का एक संस्करण चलाती हैं,[5]हालांकि वे लिनक्स, ओपनबीएसडी, नेटबीएसडी, मैकओएस और फ्रीबीएसडी सहित अन्य ओएस चला सकती हैं।
32-बिट एआरएम संरचना (और नया 64-बिट संस्करण) स्मार्टफोन और टैबलेट अभिकलित्र पर आम है, जो एंड्रॉइड, आईओएस और अन्य मोबाइल संचालन तंत्र चलाते हैं।
सॉफ़्टवेयर (यंत्रेतर सामग्री)
सॉफ्टवेयर प्लेटफ़ॉर्म या तो एक ओएस या कार्यरचना परिवेश हो सकता है, हालांकि आमतौर पर यह दोनों का संयोजन होता है। एक अपवाद जावा है, जो जावा बाइटसंकेतक को निष्पादित करने के लिए ओएस-स्वतंत्र वीएम का उपयोग करता है। सॉफ्टवेयर प्लेटफ़ॉर्म के उदाहरण हैं:
- ब्लैकबेरी 10
- स्मार्टफोन और टैबलेट अभिकलित्र (एक्स 86, एआरएम) के लिए एंड्रॉइड (संचालन तंत्र)
- आईओएस (एआरएम)
- माइक्रोसॉफ्ट विंडोज (एक्स 86, एआरएम)
- माइक्रोसॉफ्ट का सामान्य भाषा अवसंरचना (सीएलआई), जिसे नेट प्राधारिक के नाम से भी जाना जाता है
- क्रॉस- प्लेटफ़ॉर्म संस्करण मोनो (सॉफ़्टवेयर) (पहले नोवेल द्वारा और अब ज़ामरीन द्वारा)[6])
- जावा ( कार्यरचना भाषा)
- वेब ब्राउज़र - कमोबेश एक-दूसरे के साथ संगत, जावास्क्रिप्ट वेब-ऐप्स चला रहे हैं
- लिनक्स (एक्स 86, पावर पीसी, एआरएम, और अन्य संरचना)
- मैकओएस (एक्स 86, पावरपीसी (10.5 और नीचे पर), और एआरएम[7] (एप्प्ल सिलिकॉन या 11.0 और उससे अधिक पर)
- मेंडिक्स
- सोलारिस (संचालन तंत्र) (स्पार्क, एक्स 86)
- सिम्बियनओएस
- स्पार्क
- प्लेस्टेशन 4 (एक्स 86), प्लेस्टेशन 3 (पावरपीसी) और प्लेस्टेशन वीटा (एआरएम)
- यूनिक्स
- एक्सबॉक्स
- मामूली/ऐतिहासिक
- अमीगाओएस (एम68के), अमीगाओएस 4 (पावरपीसी), ARओएस (एक्स 86, पावरपीसी, एम68के), मॉर्फओएस (पावरपीसी)
- अटारी टीओएस, मिंट
- बीएसडी (कई प्लेटफ़ॉर्म, नेटबीएसडीनेट देखें,[clarification needed] उदाहरण के लिए)
- एक्स 86 पर डॉस-टाइप प्रणाली : एमएस-डीओएस, पीसी डीओएस, डीआर-डीओएस, फ्री डीओएस
- ओएस/2, ईकॉमस्टेशन
जावा
जावा भाषा को आमतौर पर वीएम पर चलने के लिए संकलित किया जाता है जो जावा प्लेटफ़ॉर्म का हिस्सा है। जावा वीएम (जेवीएम) सॉफ्टवेयर में लागू एक सीपीयू है, जो सभी जावा संकेतक चलाता है। यह समान संकेतक को जेवीएम को लागू करने वाले सभी प्रणाली पर चलने में सक्षम बनाता है। जावा सॉफ्टवेयर को हार्डवेयर आधारित जावा संसाधक द्वारा निष्पादित किया जा सकता है। इसका उपयोग ज्यादातर सन्निहित प्रणाली में किया जाता है।
जेवीएम में चल रहे जावा संकेतक की ओएस से संबंधित सेवाओं तक पहुंच है, जैसे डिस्क आई / ओ और जालक्रम अभिगम नियंत्रण, यदि उपयुक्त विशेषाधिकार दिए गए हैं। जेवीएम जावा अनुप्रयोग की ओर से प्रणाली कॉल करता है। यह उपयोगकर्ताओं को एसीएल के आधार पर उचित सुरक्षा स्तर तय करने देता है। उदाहरण के लिए, डिस्क और जालक्रम अभिगम नियंत्रण आमतौर पर डेस्कटॉप अनुप्रयोग के लिए सक्षम होता है, लेकिन ब्राउज़र-आधारित एप्लेट के लिए नहीं। जावा नेटिव अंतरापृष्ठ (जेएनआई) का उपयोग सुवाह्यता के नुकसान के साथ ओएस-विशिष्ट कार्यों तक पहुंचने के लिए भी किया जा सकता है।
वर्तमान में, जावा मानक संस्करण सॉफ्टवेयर माइक्रोसॉफ्ट विंडोज, मैकओएस, कई यूनिक्स जैसे ओएस, और सन्निहित उपकरणों के लिए कई समयोचित संचालन तंत्र पर चल सकता है। मोबाइल अनुप्रयोग के लिए, ब्राउज़र प्लग इन का उपयोग विंडोज और मैक आधारित उपकरणों के लिए किया जाता है, और एंड्रॉइड में जावा के लिए अंतर्निहित समर्थन है। जावा के उपसमुच्चय भी हैं, जैसे कि जावा कार्ड या जावा प्लेटफ़ॉर्म, माइक्रो संस्करण, जिसे संसाधन-विवश उपकरणों के लिए परिकलन किया गया है।
कार्यान्वयन
सॉफ़्टवेयर को क्रॉस- प्लेटफ़ॉर्म माना जाने के लिए, इसे एक से अधिक अभिकलित्र संरचना या ओएस पर कार्य करना चाहिए। ऐसे सॉफ़्टवेयर को विकसित करना एक समय लेने वाला कार्य हो सकता है क्योंकि अलग-अलग ओएस में अलग-अलग अनुप्रयोग कार्यरचना अंतरापृष्ठ (एपीआई) होते हैं। उदाहरण के लिए, लिनक्स विंडोज से भिन्न एपीआई का उपयोग करता है।
हो सकता है कि एक ओएस के लिए लिखा गया सॉफ़्टवेयर उन सभी संरचना पर स्वचालित रूप से काम न करे जो ओएस समर्थित करता है। एक उदाहरण ओपेनआफिस.ओआरजी (openoffice.org) है, जो 2006 में मूल रूप से एएमडी64 या इंटेल 64 संसाधक पर एक्स 86-64 मानकों को लागू करने पर नहीं चलता था, 2012 तक इसे "ज्यादातर" इन प्रणालियों में पोर्ट किया गया था।[8] सिर्फ इसलिए कि सॉफ्टवेयर एक लोकप्रिय कार्यरचना भाषा जैसे सी या सी ++ में लिखा गया है, इसका मतलब यह नहीं है कि यह उन सभी ओएस पर चलेगा जो उस भाषा का समर्थन करते हैं- या यहां तक कि एक ही ओएस के विभिन्न संस्करणों पर भी करते हैं।
वेब अनुप्रयोग
वेब अनुप्रयोगों को आम तौर पर क्रॉस- प्लेटफ़ॉर्म के रूप में वर्णित किया जाता है, क्योंकि आदर्श रूप से, वे किसी भी वेब ब्राउज़र से पहुंच योग्य होते हैं: ब्राउज़र प्लेटफ़ॉर्म है। वेब अनुप्रयोग आमतौर पर उपभोगता-सर्वर मॉडल का उपयोग करते हैं, लेकिन जटिलता और कार्यक्षमता में व्यापक रूप से भिन्न होते हैं। अनुकूलता की आवश्यकता के साथ सुविधाओं की इच्छा को समेटना कठिन हो सकता है।
बेसिक वेब अनुप्रयोग स्टेटलेस सर्वर से सभी या अधिकतर प्रसंस्करण करते हैं, और उपभोगता वेब ब्राउजर को परिणाम देते हैं। अनुप्रयोग के साथ सभी उपयोगकर्ता अन्योन्यक्रिया में आँकड़े अनुरोधों और सर्वर प्रतिक्रियाओं का सरल आदान-प्रदान होता है। वर्ल्ड वाइड वेब अनुप्रयोग विकास के शुरुआती चरणों में इस प्रकार का अनुप्रयोग आदर्श था। इस तरह के अनुप्रयोग एक साधारण लेनदेन मॉडल का पालन करते हैं, जो स्थिर वेब पेजों की सेवा के समान है। आज, वे अभी भी अपेक्षाकृत सामान्य हैं, खासकर जहां क्रॉस- प्लेटफ़ॉर्म संगतता और सादगी को उन्नत कार्यक्षमता की तुलना में अधिक महत्वपूर्ण माना जाता है।
उन्नत वेब अनुप्रयोगों के प्रमुख उदाहरणों में जीमेल का वेब अंतरापृष्ठ, ए9.कॉम, गूगल मैप्स वेबसाइट और माइक्रोसॉफ्ट की लाइव सर्च सर्विस (अब बिंग) शामिल हैं। ऐसे अनुप्रयोग नियमित रूप से केवल लोकप्रिय वेब ब्राउज़र के हाल के संस्करणों में पाई जाने वाली अतिरिक्त सुविधाओं पर निर्भर करते हैं। इन सुविधाओं में अजाक्स, जावास्क्रिप्ट, डायनेमिक एचटीएमएल, एसवीजी, और समृद्ध वेब अनुप्रयोगों के अन्य घटक शामिल हैं। पुराने संस्करणों में अक्सर इनकी कमी होती है।
परिकलन
संगतता और कार्यक्षमता के प्रतिस्पर्धी हितों के कारण, कई परिकलन रणनीतियाँ सामने आई हैं।
कई सॉफ्टवेयर प्रणाली एक स्तरित संरचना का उपयोग करते हैं जहां प्लेटफ़ॉर्म-निर्भर संकेतक ऊपरी और सबसे निचली परतों तक ही सीमित होता है।
गरिमापूर्ण निम्नीकरण
गरिमापूर्ण निम्नीकरण सभी उपयोगकर्ताओं और प्लेटफार्मों को समान या समान कार्यक्षमता प्रदान करने का प्रयास करता है, जबकि अधिक सीमित उपभोगता ब्राउज़रों के लिए उस कार्यक्षमता को कम से कम सामान्य भाजक तक कम करता है। उदाहरण के लिए, एक उपयोगकर्ता जो जीमेल तक पहुँचने के लिए सीमित-सुविधा वाले ब्राउज़र का उपयोग करने का प्रयास कर रहा है, वह देख सकता है कि जीमेल कम कार्यक्षमता के साथ बुनियादी नीति में स्विच हो गया है, लेकिन अभी भी उपयोग में है।
एकाधिक कोडबेस
कुछ सॉफ्टवेयर अलग-अलग (हार्डवेयर और ओएस) प्लेटफ़ॉर्म के लिए अलग-अलग कोडबेस में समान कार्यक्षमता के साथ बनाए रखा जाता है। इसके लिए संकेतक को बनाए रखने के लिए अधिक प्रयास की आवश्यकता होती है, लेकिन यह सार्थक हो सकता है जहां प्लेटफ़ॉर्म-विशिष्ट संकेतक की मात्रा अधिक हो।
ऐकल कोडबेस
यह रणनीति एक कोडबेस होने पर निर्भर करती है जिसे कई प्लेटफ़ॉर्म-विशिष्ट स्वरूपों में संकलित किया जा सकता है। एक तकनीक सशर्त संकलन है। इस तकनीक के साथ, सभी प्लेटफार्मों के लिए सामान्य संकेतक दोहराया नहीं जाता है। संकेतक के ब्लॉक जो केवल कुछ प्लेटफ़ॉर्म के लिए प्रासंगिक होते हैं, उन्हें सशर्त बनाया जाता है, ताकि जरूरत पड़ने पर ही उनकी व्याख्या या संकलन किया जा सके। एक अन्य तकनीक कार्यक्षमता का पृथक्करण है, जो ब्राउज़र या ओएस द्वारा समर्थित कार्यक्षमता को अक्षम करता है, जबकि उपयोगकर्ता को अभी भी एक पूर्ण अनुप्रयोग प्रदान करता है। (यह भी देखें: चिंताओं का पृथक्करण।) इस तकनीक का उपयोग वेब विकास में किया जाता है जहां व्याख्या किए गए संकेतक (जैसा कि लिपिन्यास भाषाओं में) अलग-अलग विभाग को सशर्त रूप से निष्पादित करने के लिए चल रहे प्लेटफ़ॉर्म को परिप्रश्न कर सकते हैं।[9]
तृतीय-पक्ष लाइब्रेरी
तृतीय-पक्ष लाइब्रेरी विक्रेता अभिबंधन की कीमत पर एकल, एकीकृत एपीआई के पीछे उपभोगता भेदभाव की जटिलताओं को छिपाकर क्रॉस- प्लेटफ़ॉर्म क्षमता को सरल बनाने का प्रयास करते हैं।
प्रतिक्रियात्मक वेब परिकलन
प्रतिक्रियात्मक वेब परिकलन (आरडब्ल्यूडी) एक वेब परिकलन दृष्टिकोण है, जिसका उद्देश्य साइटों के दृश्य अभिन्यास को तैयार करना है ताकि मोबाइल से उपकरणों की एक विस्तृत श्रृंखला में एक इष्टतम देखने का अनुभव प्रदान किया जा सके- कम से कम आकार बदलने, अभिनमन करने और वलनी करने के साथ आसान अध्ययन और दिशाज्ञान डेस्कटॉप अभिकलित्र मॉनीटर के लिए फोन। इस तकनीक के साथ बहुत कम या कोई प्लेटफ़ॉर्म-विशिष्ट संकेतक का उपयोग नहीं किया जाता है।
परिक्षण
क्रॉस- प्लेटफ़ॉर्मअनुप्रयोगों को अधिक एकीकरण परीक्षण की आवश्यकता होती है। कुछ वेब ब्राउज़र एक ही मशीन पर विभिन्न संस्करणों की स्थापना को प्रतिबंधित करते हैं। कई प्लेटफार्मों को लक्षित करने के लिए कई दृष्टिकोणों का उपयोग किया जाता है, लेकिन उन सभी का परिणाम सॉफ्टवेयर में होता है जिसके लिए परीक्षण और रखरखाव के लिए पर्याप्त मैन्युअल प्रयास की आवश्यकता होती है।[10] पूर्ण वर्चुअलाइजेशन जैसी तकनीकों को कभी-कभी इस समस्या के समाधान के रूप में उपयोग किया जाता है।
पेज ऑब्जेक्ट मॉडल जैसे टूल क्रॉस- प्लेटफ़ॉर्मपरीक्षणों को स्क्रिप्ट करने की अनुमति देते हैं ताकि एक टेस्ट केस में ऐप के कई संस्करण शामिल हों। यदि विभिन्न संस्करणों में समान उपयोगकर्ता इंटरफ़ेस हैं, तो सभी का परीक्षण एक परीक्षण मामले के साथ किया जा सकता है।
पारंपरिक अनुप्रयोग
वेब अनुप्रयोग तेजी से लोकप्रिय हो रहे हैं लेकिन कई अभिकलित्र उपयोगकर्ता अभी भी पारंपरिक अनुप्रयोग सॉफ़्टवेयर का उपयोग करते हैं जो उपभोगता/वेब-सर्वर संरचना पर निर्भर नहीं करता है। पारंपरिक और वेब अनुप्रयोगों के बीच का अंतर हमेशा स्पष्ट नहीं होता है। वेब और पारंपरिक अनुप्रयोगों के लिए सुविधाएँ, स्थापना विधियाँ और संरचना अंतर को ओवरलैप और धुंधला करते हैं। फिर भी, यह सरलीकरण भेद एक सामान्य और उपयोगी सामान्यीकरण है।
बाइनरी सॉफ्टवेयर
पारंपरिक अनुप्रयोग सॉफ़्टवेयर को बाइनरी फ़ाइलों, विशेष रूप से निष्पादन योग्य फ़ाइलों के रूप में वितरित किया गया है। निष्पादन योग्य केवल उस प्लेटफ़ॉर्मका समर्थन करते हैं जिसके लिए उन्हें बनाया गया था - जिसका अर्थ है कि एक एकल क्रॉस- प्लेटफ़ॉर्मनिष्पादन योग्य संकेतक के साथ बहुत फूला हुआ हो सकता है जो किसी विशेष प्लेटफ़ॉर्मपर कभी निष्पादित नहीं होता है। इसके बजाय, आम तौर पर निष्पादन योग्य का चयन होता है, प्रत्येक एक मंच के लिए बनाया जाता है।
सॉफ़्टवेयर के लिए जो बाइनरी निष्पादन योग्य के रूप में वितरित किया जाता है, जैसे कि सी या सी ++ में लिखा गया है, प्रत्येक प्लेटफ़ॉर्मके लिए एक सॉफ़्टवेयर निर्माण होना चाहिए, एक टूल समुच्चय का उपयोग करके जो अनुवाद करता है-ट्रांसकंपाइल-एक एकलकोडबेस को कई बाइनरी निष्पादन योग्य बनाता है। उदाहरण के लिए, फ़ायरफ़ॉक्स, एक ओपन-सोर्स वेब ब्राउज़र, विंडोज, मैकओएस (पॉवरपीसी और एक्स 86 दोनों के माध्यम से जिसे ऐप्पल इंक एक यूनिवर्सल बाइनरी कहता है), लिनक्स और बीएसडी पर कई अभिकलित्र संरचना पर उपलब्ध है। चार प्लेटफ़ॉर्म (इस मामले में, विंडोज, मैकओएस, लिनक्स और बीएसडी) अलग निष्पादन योग्य वितरण हैं, हालांकि वे बड़े पैमाने पर एक ही स्रोत संकेतक से आते हैं। दुर्लभ मामलों में, कई प्लेटफार्मों के लिए बनाए गए निष्पादन योग्य संकेतक को एक एकल निष्पादन योग्य फ़ाइल में जोड़ा जाता है जिसे वसा बाइनरी कहा जाता है।
विभिन्न प्लेटफ़ॉर्म के लिए कार्यशील निष्पादन योग्य बनाने के लिए विभिन्न टूल समुच्चय का उपयोग पर्याप्त नहीं हो सकता है। इस मामले में, प्रोग्रामर्स को सोर्स संकेतक को नए प्लेटफ़ॉर्म पर पोर्ट करना होगा। उदाहरण के लिए, फ़ायरफ़ॉक्स जैसे अनुप्रयोग, जो पहले से ही एक्स 86 परिवार पर विंडोज़ पर चलता है, को एक्स 86 (और संभावित रूप से अन्य संरचना) पर भी लिनक्स पर चलाने के लिए संशोधित और पुन: बनाया जा सकता है। संकेतक के कई संस्करणों को अलगकोडबेस के रूप में संग्रहीत किया जा सकता है, या एककोडबेस में विलय किया जा सकता है।
पोर्टिंग का एक विकल्प क्रॉस- प्लेटफ़ॉर्मवर्चुअलाइजेशन है, जहां एक प्लेटफ़ॉर्म के लिए संकलित अनुप्रयोग स्रोत संकेतक या बायनेरिज़ के संशोधन के बिना दूसरे पर चल सकते हैं। उदाहरण के तौर पर, ऐप्पल का रो समुच्चया, जो इंटेल-आधारित मैकिंटोश अभिकलित्रों में बनाया गया है, मैक की पिछली पीढ़ी के लिए संकलित अनुप्रयोगों को चलाता है जो पावरपीसी सीपीयू का इस्तेमाल करते थे। एक अन्य उदाहरण IBM PowerVM Lएक्स 86 है, जो लिनक्स/एक्स 86 अनुप्रयोगों को लिनक्स/Power ओएस पर असंशोधित चलाने की अनुमति देता है।
क्रॉस- प्लेटफ़ॉर्मबाइनरी सॉफ़्टवेयर का उदाहरण:
- लिब्रे ऑफिस ऑफिस सुइट माइक्रोसॉफ्ट विंडोज, मैकओएस, कई लिनक्स वितरण, फ्रीबीएसडी, नेटबीएसडी, ओपनबीएसडी, एंड्रॉइड, आईओएस, आईपैडओएस, क्रोम ओएस, वेब-आधारित कोलाबोरा ऑनलाइन और कई अन्य के लिए बनाया गया है।[11][12] इनमें से कई आई ए -32, एक्स 86-64, एआरएम (एआरएमel, एआरएमhf, एआरएम64), MIPS, MIPSel, पावरपीसी, ppc64el, और S390x सहित संसाधक संरचना के साथ कई हार्डवेयर प्लेटफ़ॉर्म पर समर्थित हैं।"Nextcloud Ubuntu Appliance adds Collabora Online to Raspberry Pi image". MuyLinux. 2021-03-26. Retrieved 2021-03-30.
the first viable self-hosted web office solution for the popular Raspberry Pi 4 platform
{{cite news}}
: CS1 maint: url-status (link)</ref>
लिपियों और व्याख्या की गई भाषाएं
स्क्रिप्ट को क्रॉस- प्लेटफ़ॉर्ममाना जा सकता है यदि उसका दुभाषिया कई प्लेटफार्मों पर उपलब्ध है और स्क्रिप्ट केवल भाषा में निर्मित सुविधाओं का उपयोग करती है। उदाहरण के लिए, यूनिक्स जैसी प्रणाली के लिए पायथन में लिखी गई एक स्क्रिप्ट संभवतः विंडोज़ पर बहुत कम या बिना किसी संशोधन के चलेगी, क्योंकि पायथन भी विंडोज़ पर चलता है, वास्तव में कई कार्यान्वयन हैं (उदाहरण के लिए .नेट प्राधारिक के लिए आयरनपीथन)। वही कई ओपन-सोर्स लिपिन्यास भाषाओं के लिए जाता है।
बाइनरी निष्पादन योग्य फ़ाइलों के विपरीत, एक ही स्क्रिप्ट का उपयोग उन सभी अभिकलित्रों पर किया जा सकता है जिनके पास स्क्रिप्ट की व्याख्या करने के लिए सॉफ़्टवेयर है। ऐसा इसलिए है क्योंकि स्क्रिप्ट आम तौर पर एक टेक्स्ट फ़ाइल में सादे पाठ में संग्रहीत होती है। कुछ मामूली मुद्दे हो सकते हैं, जैसे कि एक नई लाइन कैरेक्टर का प्रतिनिधित्व।
कुछ लोकप्रिय क्रॉस- प्लेटफ़ॉर्म लिपिन्यास भाषाएँ हैं:
- बैश - एक यूनिक्स शेल आमतौर पर लिनक्स और अन्य आधुनिक यूनिक्स जैसी प्रणालियों के साथ-साथ विंडोज पर सिग्विन पॉज़िक्स संगतता परत के माध्यम से चलता है।
- पर्ल - पहली बार 1987 में जारी किया गया। सीजीआई कार्यरचना, छोटे प्रणाली प्रशासन कार्यों और बहुत कुछ के लिए उपयोग किया जाता है।
- PHP - ज्यादातर वेब अनुप्रयोगों के लिए उपयोग किया जाता है।
- पायथन - एक भाषा जो कार्यावधि दक्षता के बजाय तेजी से अनुप्रयोग विकास और लेखन में आसानी पर केंद्रित है।
- रूबी - एक वस्तु-उन्मुख भाषा जिसका उद्देश्य पढ़ने में आसान होना है। रूबी ऑन रेल्स के माध्यम से वेब पर भी इस्तेमाल किया जा सकता है।
- टीसीएल - एक गतिशील कार्यरचना भाषा, वेब और डेस्कटॉप अनुप्रयोगों, नेटवर्किंग, प्रशासन, परीक्षण और कई अन्य सहित उपयोगों की एक विस्तृत श्रृंखला के लिए उपयुक्त है।
वीडियो गेम
क्रॉस- प्लेटफ़ॉर्मया मल्टी- प्लेटफ़ॉर्मएक ऐसा शब्द है जो वीडियो गेम कंसोल की एक श्रृंखला पर जारी किए गए वीडियो गेम पर भी लागू हो सकता है। क्रॉस- प्लेटफ़ॉर्मगेम के उदाहरणों में शामिल हैं: माइनर 2049er, टॉम्ब रेडर: लीजेंड, फीफा (वीडियो गेम सीरीज़), एनएचएल सीरीज़ और माइनक्राफ्ट।
प्रत्येक को विभिन्न प्रकार के गेमिंग प्लेटफ़ॉर्म, जैसे कि Wii, PlayStation 3, Xbox 360, पर्सनल अभिकलित्र और मोबाइल उपकरण पर रिलीज़ किया गया है।
कुछ प्लेटफार्मों के लिए दूसरों की तुलना में लिखना कठिन होता है। इसे ऑफ समुच्चय करने के लिए, एक वीडियो गेम पहले कुछ प्लेटफार्मों पर जारी किया जा सकता है, फिर बाद में अन्य पर। आमतौर पर, यह तब होता है जब एक नया गेमिंग प्रणाली जारी किया जाता है, क्योंकि वीडियो गेम डेवलपर्स को इसके हार्डवेयर और सॉफ्टवेयर से खुद को परिचित करने की आवश्यकता होती है।
डेवलपर्स और वीडियो गेम कंसोल निर्माताओं के बीच लाइसेंसिंग समझौतों के कारण कुछ गेम क्रॉस- प्लेटफ़ॉर्मनहीं हो सकते हैं जो विकास को एक विशेष कंसोल तक सीमित करते हैं। उदाहरण के तौर पर, डिज्नी नवीनतम निन्टेंडो और सोनी गेम कंसोल पर रिलीज करने के इरादे से एक गेम बना सकता है। क्या डिज़्नी को पहले सोनी के साथ गेम का लाइसेंस देना चाहिए, इसके लिए गेम को केवल सोनी के कंसोल पर थोड़े समय के लिए कंसोल एक्सक्लूसिविटी के लिए रिलीज़ करने की आवश्यकता हो सकती है।
क्रॉस- प्लेटफ़ॉर्मप्ले
कई डेवलपर्स ने विभिन्न प्लेटफार्मों का उपयोग करते हुए ऑनलाइन गेम खेलने के तरीके लागू किए हैं। Psyonix, Epic Games, माइक्रोसॉफ्ट, और Valve Corporation सभी के पास ऐसी तकनीक है जो Xbox 360 और PlayStation 3 गेमर्स को पीसी गेमर्स के साथ खेलने की अनुमति देती है, जिससे उपभोक्ताओं को किस प्लेटफ़ॉर्म का उपयोग करना है। पीसी और कंसोल गेम के बीच इस स्तर की अन्तरक्रियाशीलता की अनुमति देने वाला पहला गेम क्वैक 3 था।[13] क्रॉस- प्लेटफ़ॉर्मऑनलाइन प्ले की सुविधा वाले गेम में रॉकेट लीग, फ़ाइनल फ़ैंटेसी XIV: ए रियलम रीबॉर्न, स्ट्रीट फाइटर वी, किलर इंस्टिंक्ट (2013 वीडियो गेम), पैरागॉन (वीडियो गेम) और फैबल फॉर्च्यून, और माइनक्राफ्ट शामिल हैं। 10, VR संस्करण, Minecraft - Pocket Edition और Xbox One।
कार्यरचना
क्रॉस- प्लेटफ़ॉर्म कार्यरचना एक से अधिक प्लेटफ़ॉर्मपर काम करने के लिए जानबूझकर सॉफ़्टवेयर लिखने का अभ्यास है।
दृष्टिकोण
क्रॉस- प्लेटफ़ॉर्मअनुप्रयोग लिखने के विभिन्न तरीके हैं। एक तरीका अलग-अलग स्रोत ट्री में एक ही सॉफ़्टवेयर के कई संस्करण बनाना है- दूसरे शब्दों में, किसी अनुप्रयोग के माइक्रोसॉफ्ट विंडोज संस्करण में स्रोत संकेतक फ़ाइलों का एक समुच्चय और एप्प्ल Macintओएसh संस्करण दूसरा हो सकता है, जबकि एक मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर * निक्स प्रणाली में एक तिहाई हो सकता है। हालांकि यह सीधा है, केवल एक प्लेटफ़ॉर्म के लिए विकसित होने की तुलना में बड़ी टीम को भुगतान करने या उत्पादों को अधिक धीरे-धीरे जारी करने में अधिक खर्च हो सकता है। इसके परिणामस्वरूप और अधिक बग्स को ट्रैक किया जा सकता है और उन्हें ठीक किया जा सकता है।
एक अन्य तरीका सॉफ्टवेयर का उपयोग करना है जो प्लेटफार्मों के बीच के अंतर को छुपाता है। यह अमूर्त परत प्लेटफ़ॉर्म से अनुप्रयोग को इंसुलेट करती है। ऐसे अनुप्रयोग प्लेटफ़ॉर्म अज्ञेयवादी हैं। जेवीएम पर चलने वाले अनुप्रयोग इस तरह से बनाए जाते हैं।
कुछ अनुप्रयोग अंतिम अनुप्रयोग बनाने के लिए क्रॉस- प्लेटफ़ॉर्म कार्यरचना के विभिन्न तरीकों को मिलाते हैं। एक उदाहरण फ़ायरफ़ॉक्स वेब ब्राउज़र है, जो कुछ निचले स्तर के घटकों के निर्माण के लिए अमूर्तता का उपयोग करता है, प्लेटफ़ॉर्म-विशिष्ट सुविधाओं (जैसे जीयूआई) को लागू करने के लिए अलग स्रोत उपट्री के साथ, और सॉफ़्टवेयर सुवाह्यता को आसान बनाने के लिए एक से अधिक लिपिन्यास भाषा का कार्यान्वयन . फ़ायरफ़ॉक्स क्लासिक नेटस्केप-शैली ब्राउज़र प्लगइन्स के अलावा, ब्राउज़र को विस्तारित करने के लिए XUL, कैस्केडिंग स्टाइल शीट्स और जावास्क्रिप्ट को लागू करता है। अधिकांश ब्राउज़र स्वयं XUL, CSS और जावास्क्रिप्ट में लिखा गया है।
टूलकिट और परिवेश
कई उपकरण हैं[14][15] क्रॉस- प्लेटफ़ॉर्म कार्यरचना की प्रक्रिया में सहायता के लिए उपलब्ध:
- 8 वीं (भाषा): एक विकास भाषा जो जूस को अपनी जीयूआई परत के रूप में उपयोग करती है। यह वर्तमान में एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स और रास्पबेरी पाई का समर्थन करता है।
- अनंत अभिकलन: एक मोबाइल अनुप्रयोग प्लेटफ़ॉर्म जो सभी भारतीय भाषाओं में काम करता है, जिसमें उनके कीबोर्ड भी शामिल हैं, और सभी ओएस में ऐप वॉलेट और मूल प्रदर्शन का भी समर्थन करता है।
- AppearIQ: एक ढांचा जो उद्यम परिवेश में ऐप विकास और परिनियोजन के वर्कफ़्लो का समर्थन करता है। मूल रूप से विकसित कंटेनर एक एपीआई से एचटीएमएल 5 संकेतक के माध्यम से मोबाइल उपकरणों या टैबलेट की हार्डवेयर सुविधाओं को प्रस्तुत करते हैं और इस प्रकार विभिन्न प्लेटफार्मों पर चलने वाले मोबाइल ऐप के विकास की सुविधा प्रदान करते हैं।
- बोडेन (सॉफ्टवेयर): C++ में लिखा गया UI प्राधारिक।
- काहिरा (ग्राफिक्स): एक मुफ्त सॉफ्टवेयर लाइब्रेरी जिसका उपयोग वेक्टर ग्राफिक्स-आधारित, उपकरण-स्वतंत्र एपीआई प्रदान करने के लिए किया जाता है। यह कई अलग-अलग बैकएंड में 2-आयामी ड्राइंग के लिए प्राइमेटिव प्रदान करने के लिए परिकलन किया गया है। काहिरा सी में लिखा गया है और कई कार्यरचना भाषाओं के लिए बाध्यकारी है।
- Cocओएस2d: 2D और सरल 3D क्रॉस- प्लेटफ़ॉर्मगेम और अनुप्रयोग विकसित करने के लिए एक ओपन-सोर्स टूलकिट और गेम इंजन।
- संकेतकनेम वन: जावा और कोटलिन डेवलपर्स के लिए एक ओपन-सोर्स राइट वन्स रन एनीवेयर (WORA) प्राधारिक।
- डेल्फी ( कार्यरचना भाषा): एक आईडीई जो विकास के लिए पास्कल-आधारित भाषा का उपयोग करता है। यह एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स को सपोर्ट करता है।
- Ecere SDK: एक GUI और 2D/3D ग्राफिक्स टूलकिट और IDE, जो EC ( कार्यरचना भाषा) में लिखा गया है और C और Python जैसी अतिरिक्त भाषाओं के समर्थन के साथ है। यह Emscripten या Binaryen (WebAssembly) के माध्यम से लिनक्स, FreeBSD, विंडोज, Android, मैकओएसऔर वेब को सपोर्ट करता है।
- ग्रहण आईडीई: एक खुला स्रोत विकास परिवेश। जावा में एक विन्यास योग्य वास्तुकला के साथ लागू किया गया जो सॉफ्टवेयर विकास के लिए कई उपकरणों का समर्थन करता है। ऐड-ऑन जावा और सी++ सहित कई भाषाओं के लिए उपलब्ध हैं।
- FLTK: एक ओपन-सोर्स टूलकिट, लेकिन अधिक हल्का क्योंकि यह खुद को GUI तक सीमित रखता है।
- स्पंदन (सॉफ्टवेयर): Google द्वारा विकसित Android और iओएस के लिए एक क्रॉस- प्लेटफ़ॉर्मUI प्राधारिक।
- fpGUI: एक ओपन-सोर्स विजेट टूलकिट जो पूरी तरह से ऑब्जेक्ट पास्कल में लागू किया गया है। यह वर्तमान में लिनक्स, विंडोज और कुछ विंडोज सीई का समर्थन करता है।
- जीनएक्सस: क्रॉस- प्लेटफ़ॉर्मअनुप्रयोग निर्माण और परिनियोजन के लिए एक विंडोज़ रैपिड सॉफ़्टवेयर विकास सॉल्यूशन जो ज्ञान प्रतिनिधित्व और सी शार्प ( कार्यरचना भाषा) का समर्थन करता है | एंड्रॉइड और ब्लैकबेरी स्मार्ट उपकरण सहित सी #, कोबोल, जावा ( कार्यरचना भाषा), ऑब्जेक्टिव-सी के लिए एप्पल इंक. मोबाइल उपकरण, आईबीएम आरपीजी, रूबी ( कार्यरचना भाषा), विजुअल बेसिक और विजुअल फॉक्सप्रो।
- GLBasic: एक बेसिक बोली और कंपाइलर जो C++ संकेतक जेनरेट करता है। इसमें कई प्लेटफार्मों के लिए क्रॉस कंपाइलर शामिल हैं और कई प्लेटफ़ॉर्म (विंडोज, मैक, लिनक्स, एंड्रॉइड, आईओएस और कुछ विदेशी हैंडहेल्ड) का समर्थन करते हैं।
- गोडोट (गेम इंजन): एक एसडीके जो गोडोट इंजन का उपयोग करता है।
- GTK+: X11 और माइक्रोसॉफ्ट विंडोज के साथ यूनिक्स जैसी प्रणालियों के लिए एक ओपन-सोर्स विजेट टूलकिट।
- Haxe: एक ओपन-सोर्स भाषा।
- जूस: C++ में लिखा गया एक अनुप्रयोग प्राधारिक, संकेतक में बिना किसी बदलाव के, कई प्रणाली ्स (माइक्रोसॉफ्ट विंडोज, PओएसIX, macओएस) पर नेटिव सॉफ्टवेयर लिखने के लिए इस्तेमाल किया जाता है।
- किवी (प्राधारिक): एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म यूआई प्राधारिक जो पायथन ( कार्यरचना भाषा) में लिखा गया है। यह एंड्रॉइड (संचालन तंत्र), आईओएस, लिनक्स, मैकओएस, माइक्रोसॉफ्ट विंडोज और रास्पबेरी पाई को सपोर्ट करता है।
- लीडटूल: विंडोज, आईओएस, मैकओएस, एंड्रॉइड, लिनक्स और वेब अनुप्रयोग में मान्यता, दस्तावेज़, चिकित्सा, इमेजिंग और मल्टीमीडिया तकनीकों को एकीकृत करने के लिए क्रॉस- प्लेटफ़ॉर्मएसडीके लाइब्रेरी।[16]
- LiveCode: हाइपरटॉक से प्रेरित एक व्यावसायिक क्रॉस- प्लेटफ़ॉर्मरैपिड अनुप्रयोग विकास भाषा।
- लाजर (आईडीई): फ्रीपास्कल कंपाइलर के लिए एक कार्यरचना परिवेश। यह स्व-स्थायी ग्राफिकल और कंसोल अनुप्रयोगों के निर्माण का समर्थन करता है और लिनक्स, MacओएसX, iओएस, Android, WinCE, विंडोज और WEB पर चलता है।
- मैक्स (सॉफ़्टवेयर)|मैक्स/एमएसपी: एक विज़ुअल कार्यरचना भाषा जो प्लेटफ़ॉर्म-स्वतंत्र संकेतक को प्लेटफ़ॉर्म-विशिष्ट रनटाइम परिवेश के साथ मैकओएसऔर विंडोज A क्रॉस- प्लेटफ़ॉर्मAndroid रनटाइम के लिए अनुप्रयोगों में समाहित करती है। यह अनमॉडिफाइड एंड्रॉइड ऐप्स को आईओएस और मैकओएस पर मूल रूप से चलाने की अनुमति देता है
- मेंडिक्स: एक क्लाउड-आधारित लो-संकेतक अनुप्रयोग विकास प्लेटफ़ॉर्म।
- मोनोक्रॉस: एक ओपन-सोर्स मॉडल-व्यू-कंट्रोलर परिकलन पैटर्न जहां मॉडल और कंट्रोलर क्रॉस- प्लेटफ़ॉर्महैं लेकिन दृश्य प्लेटफ़ॉर्म-विशिष्ट है।[17]
- मोनो (सॉफ्टवेयर): माइक्रोसॉफ्ट .नेट का एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म संस्करण (अनुप्रयोग और कार्यरचना भाषाओं के लिए एक ढांचा)
- Mओएसync: C++ परिवार में मोबाइल प्लेटफ़ॉर्मऐप विकास के लिए एक ओपन-सोर्स SDK।
- मोज़िला अनुप्रयोग प्राधारिक: मैकओएस, विंडोज और लिनक्स अनुप्रयोगों के निर्माण के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म।
- एंड्रॉइड और आईओएस विकास के लिए एक क्रॉस-प्लेटफ़ॉर्म जावास्क्रिप्ट / टाइपस्क्रिप्ट प्राधारिक।
- ओपनजीएल: एक 3डी ग्राफिक्स लाइब्रेरी।
- पिक्सेल गेम मेकर एमवी: विंडोज़ और निन्टेंडो स्विच गेम विकसित करने के लिए विंडोज़ के लिए एक मालिकाना 2डी गेम विकास सॉफ्टवेयर।
- PureBasic: macओएस, विंडोज और लिनक्स अनुप्रयोगों के निर्माण के लिए एक मालिकाना भाषा और IDE।
- ReNative: रिएक्ट नेटिव के साथ मल्टी- प्लेटफ़ॉर्मप्रोजेक्ट बनाने के लिए यूनिवर्सल विकास SDK. नवीनतम iओएस, TVओएस, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webओएस, macओएस/ओएसX, विंडोज, Kaiओएस, Firefox ओएस और Firefox TV प्लेटफ़ॉर्म शामिल हैं।
- क्यूटी (टूलकिट): यूनिक्स जैसी प्रणालियों के लिए एक्स11, माइक्रोसॉफ्ट विंडोज, मैकओएस और अन्य प्रणालियों के लिए एक एप्लीकेशन प्राधारिक और विजेट टूलकिट - मालिकाना और ओपन-सोर्स लाइसेंस दोनों के तहत उपलब्ध है।
- सरल और तेज़ मल्टीमीडिया लाइब्रेरी: एक मल्टीमीडिया C++ अनुप्रयोग कार्यरचना इंटरफ़ेस जो ग्राफिक्स, इनपुट, ऑडियो आदि के लिए निम्न और उच्च स्तर की पहुंच प्रदान करता है।
- सिंपल डायरेक्टमीडिया लेयर: सी में लिखी गई एक ओपन-सोर्स मल्टीमीडिया लाइब्रेरी जो विभिन्न प्लेटफ़ॉर्म के ग्राफिक्स, साउंड और इनपुट अनुप्रयोग कार्यरचना अंतरापृष्ठ पर एक एब्स्ट्रैक्शन बनाती है। यह लिनक्स, विंडोज और मैकओएस सहित ओएस पर चलता है और इसका उद्देश्य गेम और मल्टीमीडिया अनुप्रयोग है।
- स्मार्टफेस: जावास्क्रिप्ट संकेतक एडिटर के साथ WYSIWYG परिकलन एडिटर का उपयोग करके Android और iओएस के लिए मोबाइल अनुप्रयोग बनाने के लिए एक देशी ऐप विकास टूल।
- टीसीएल / टीके
- अल्टीमेट++: एक सी++ रैपिड अनुप्रयोग विकास प्राधारिक जो प्रोग्रामर की उत्पादकता पर केंद्रित है। इसमें लाइब्रेरीों का एक समुच्चय (जीयूआई, एसक्यूएल, आदि..), और एक एकीकृत विकास परिवेश शामिल है। यह विंडोज और यूनिक्स जैसे ओएस-एस को सपोर्ट करता है।
- यूनिटी (गेम इंजन): एक और क्रॉस-प्लेटफ़ॉर्म एसडीके जो यूनिटी इंजन का उपयोग करता है।
- यूनो प्लेटफ़ॉर्म: विंडोज, मैकओएस, आईओएस, एंड्रॉइड, वेबअसेंबली और लिनक्स सी # का उपयोग कर रहे हैं।
- अवास्तविक इंजन: एक क्रॉस- प्लेटफ़ॉर्मएसडीके जो अवास्तविक इंजन का उपयोग करता है।
- वी-प्ले इंजन: वी-प्ले लोकप्रिय क्यूटी ढांचे पर आधारित एक क्रॉस-प्लेटफ़ॉर्म विकास एसडीके है। V-Play ऐप्स और गेम Qt Creator के भीतर बनाए जाते हैं।
- वेवमेकर: उत्तरदायी वेब और हाइब्रिड मोबाइल (एंड्रॉइड और आईओएस) अनुप्रयोग बनाने के लिए एक कम-संकेतक विकास उपकरण।
- विनडेव: विंडोज, लिनक्स, नेट और जावा, और वेब ब्राउज़र के लिए एक एकीकृत विकास पर्यावरण। व्यापार और औद्योगिक अनुप्रयोगों के लिए अनुकूलित।
- wxwidgets: एक ओपन-सोर्स विजेट टूलकिट जो एक एप्लीकेशन प्राधारिक भी है।[18] यह X11, माइक्रोसॉफ्ट विंडोज और मैकओएसके साथ यूनिक्स जैसे प्रणाली पर चलता है।
- Xojo: एक RAD IDE जो डेस्कटॉप, वेब और iओएस ऐप बनाने के लिए ऑब्जेक्ट-ओरिएंटेड कार्यरचना भाषा का उपयोग करता है। Xojo macओएस, विंडोज, लिनक्स और रास्पबेरी पाई के लिए देशी, संकलित डेस्कटॉप ऐप बनाती है। यह संकलित वेब ऐप बनाता है जिसे स्टैंडअलोन सर्वर के रूप में या CGI के माध्यम से चलाया जा सकता है। और इसने हाल ही में देशी iओएस ऐप बनाने की क्षमता जोड़ी है।
चुनौतियाँ
क्रॉस- प्लेटफ़ॉर्म सॉफ़्टवेयर विकसित करते समय कई चुनौतियाँ हैं।
- क्रॉस- प्लेटफ़ॉर्म अनुप्रयोगों का परीक्षण करना काफी अधिक जटिल हो सकता है, क्योंकि विभिन्न प्लेटफ़ॉर्म थोड़े भिन्न व्यवहार या सूक्ष्म बग प्रदर्शित कर सकते हैं। इस समस्या ने कुछ डेवलपर्स को क्रॉस- प्लेटफ़ॉर्म विकास को "एक बार लिखें, हर जगह डीबग करें", सन सूक्ष्म प्रणाली पर एक टेक "एक बार लिखें, कहीं भी चलाएं" विपणन नारा के रूप में उपहास करने के लिए प्रेरित किया है।
- डेवलपर्स अक्सर सुविधाओं के सबसे कम सामान्य भाजक का उपयोग करने के लिए प्रतिबंधित होते हैं जो सभी प्लेटफार्मों पर उपलब्ध होते हैं। यह अनुप्रयोग के प्रदर्शन में बाधा डाल सकता है या डेवलपर्स को प्रत्येक प्लेटफ़ॉर्म की सबसे उन्नत सुविधाओं का उपयोग करने से रोक सकता है।
- अलग-अलग प्लेटफ़ॉर्म में अक्सर अलग-अलग उपभोक्ता अंतरापृष्ठ अधिवेशन होते हैं, जो क्रॉस-प्लेटफ़ॉर्म अनुप्रयोग हमेशा समायोजित नहीं होते हैं। उदाहरण के लिए, मैकओएसऔर जीएनओएमई के लिए विकसित किए गए अनुप्रयोग को विंडो या डायलॉग के दाईं ओर सबसे महत्वपूर्ण बटन रखना चाहिए, जबकि माइक्रोसॉफ्ट विंडोज और केडीई में विपरीत परंपरा है। हालांकि इनमें से कई अंतर सूक्ष्म हैं, एक क्रॉस- प्लेटफ़ॉर्म अनुप्रयोग जो इन सम्मेलनों के अनुरूप नहीं है, उपयोगकर्ता के लिए भद्दा या विदेशी लग सकता है। तेजी से काम करते समय, इस तरह के विरोधी सम्मेलनों के परिणामस्वरूप आँकड़े हानि भी हो सकती है, जैसे एक संवाद बॉक्स में यह पुष्टि करना कि परिवर्तनों को सहेजना या त्यागना है या नहीं।
- लिपिन्यास भाषाओं और वीएम बाइटसंकेतक को हर बार उपयोग किए जाने पर मूल निष्पादन योग्य संकेतक में अनुवादित किया जाना चाहिए, एक प्रदर्शन जुर्माना लगाया जाता है। जस्ट-इन-टाइम संकलन जैसी तकनीकों का उपयोग करके इस दंड को कम किया जा सकता है, लेकिन कुछ संगणनात्मक ऊपरी अपरिहार्य हो सकते हैं।
- विभिन्न प्लेटफार्मों को मूल संपुष्टि प्रारूपों जैसे आरपीएम और एमएसआई के उपयोग की आवश्यकता होती है। मल्टी- प्लेटफ़ॉर्मइंस्टॉलर जैसे कि इनस्टॉल एनीवेयर इस आवश्यकता को पूरा करता है।
- क्रॉस- प्लेटफ़ॉर्म निष्पादन परिवेशों को क्रॉस- प्लेटफ़ॉर्म सुरक्षा खामियों का सामना करना पड़ सकता है, जिससे क्रॉस- प्लेटफ़ॉर्म मैलवेयर के लिए एक उपजाऊ परिवेश बन सकता है।[19]
यह भी देखें
- क्रॉस- प्लेटफ़ॉर्म प्ले
- हार्डवेयर-अज्ञेयवादी
- सॉफ्टवेयर सुवाह्यता
- क्रॉस- प्लेटफ़ॉर्म प्ले का समर्थन करने वाले वीडियो गेम की सूची
- विजेट टूलकिट की सूची
- हार्डवेयर वर्चुअलाइजेशन
- जावा (सॉफ्टवेयर प्लेटफ़ॉर्म)
- भाषा बंधन
- ट्रांसकंपाइलर
- बाइनरी-संकेतक संगतता
- ज़ामरीन
- मैसेजिंग प्लेटफ़ॉर्म की उपयोगकर्ता सुविधाओं की तुलना
- मोबाइल विकास ढांचे, जिनमें से कई क्रॉस-प्लेटफ़ॉर्म हैं।
संदर्भ
- ↑ "Design Guidelines: Glossary". java.sun.com. Retrieved 2011-10-19.
- ↑ "SDD Technology blog: Definition of cross platform". SDD Technology. Retrieved 2020-10-18.
- ↑ 3.0 3.1 "Platform Definition". The Linux Information Project. Retrieved 2014-03-27.
- ↑ "Cross Platform Mobile App Development". Groovy Web. Retrieved 2020-03-27.
- ↑ "About Mono". mono-project.com. Retrieved 2015-12-17.
- ↑ "Apple announces Mac transition to Apple silicon". Apple Newsroom (in English). Retrieved 2020-12-08.
- ↑ Porting to x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki. Wiki.services.openoffice.org (2012-06-22). Retrieved on 2013-07-17.
- ↑ Corti, Sascha P. (October 2011). "Browser and Feature Detection". MSDN Magazine. Retrieved 28 January 2014.
- ↑ Choudhary, S.R. (2014). "Cross-platform testing and maintenance of web and mobile applications". Companion Proceedings of the 36th International Conference on Software Engineering - ICSE Companion 2014: 642–645. doi:10.1145/2591062.2591097. ISBN 9781450327688. S2CID 1903037.
- ↑ Mehrotra, Pranob (2020-12-01). "Collabora Office suite gets a new layout for Android tablets and Chromebooks". XDA-Developers. Retrieved 2021-01-15.
Collabora Office is a popular open-source alternative to the Microsoft Office suite. It's based on LibreOffice, and it's available on a variety of platforms, including Windows, Linux, iOS, and Android. This year in July, a major update for the office suite brought support for Chrome OS devices.
{{cite news}}
: CS1 maint: url-status (link) - ↑ "Collabora Office on iOS and Android Just got Better!". Adfinis. 2020-12-15. Retrieved 2021-01-15.
...touch optimized interfaces: one for tablets and one for phone screens. ...(iOS, iPadOS, Chromebooks, Android).
{{cite news}}
: CS1 maint: url-status (link) - ↑ Cribba. Quake III Arena, Giant Bombcast, February 15, 2013.
- ↑ The GUI Toolkit, Framework Page
- ↑ "Platform Independent FAQ". Archived from the original on 2008-08-16. Retrieved 2009-04-25.
- ↑ "Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia". www.leadtools.com. Retrieved 2021-03-03.
- ↑ "12 benefits of Xamarin Cross-platform app development". HeadWorks. 15 Mar 2019.
- ↑ WxWidgets Description
- ↑ Warren, Tom (2020-01-14). "Microsoft bids farewell to Windows 7 and the millions of PCs that still run it". The Verge (in English). Retrieved 2020-02-06.
==