क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर: Difference between revisions

From Vigyanwiki
(text)
(text)
Line 2: Line 2:
{{Redirect|Cross-platform|the railway station interchange|cross-platform interchange|the video game term|Cross-platform play}}
{{Redirect|Cross-platform|the railway station interchange|cross-platform interchange|the video game term|Cross-platform play}}
{{Redirect|Multi-platform|the mode of storytelling in television|multi-platform television}}
{{Redirect|Multi-platform|the mode of storytelling in television|multi-platform television}}
कंप्यूटिंग में, क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर (जिसे मल्टी-प्लेटफ़ॉर्म सॉफ़्टवेयर, प्लेटफ़ॉर्म-अज्ञेय सॉफ़्टवेयर या प्लेटफ़ॉर्म-स्वतंत्र सॉफ़्टवेयर भी कहा जाता है) कंप्यूटर सॉफ़्टवेयर है जिसे कई कंप्यूटिंग प्लेटफ़ॉर्म में काम करने के लिए डिज़ाइन किया गया है।<ref name="Sun-Web-00">{{cite web|url=http://java.sun.com/products/jlf/ed1/dg/higq.htm|title=Design Guidelines: Glossary|access-date=2011-10-19|publisher=java.sun.com}}</ref> कुछ क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर के लिए प्रत्येक प्लेटफ़ॉर्म के लिए एक अलग बिल्ड की आवश्यकता होती है, लेकिन कुछ को विशेष तैयारी के बिना किसी भी प्लेटफ़ॉर्म पर सीधे चलाया जा सकता है, एक व्याख्या की गई भाषा में लिखा जा रहा है या पोर्टेबल बाइटकोड में संकलित किया जा सकता है जिसके लिए दुभाषिए या रन-टाइम पैकेज सामान्य या मानक हैं। सभी समर्थित प्लेटफॉर्म के घटक।<ref name="pcmag_cross_platform">{{cite web|title=SDD Technology blog: Definition of cross platform|url=https://www.sdd-technology.com/news/definition-of-cross-platform|access-date=2020-10-18|publisher=SDD Technology}}</ref>
अभिकलन में, '''क्रॉस- पटल सॉफ़्टवेयर''' (जिसे मल्टी- पटल सॉफ़्टवेयर, पटल-अज्ञेय सॉफ़्टवेयर या पटल-स्वतंत्र सॉफ़्टवेयर भी कहा जाता है) अभिकलित्र सॉफ़्टवेयर (यंत्रेतर सामग्री) है जिसे कई अभिकलन पटल में काम करने के लिए परिकलन किया गया है।<ref name="Sun-Web-00">{{cite web|url=http://java.sun.com/products/jlf/ed1/dg/higq.htm|title=Design Guidelines: Glossary|access-date=2011-10-19|publisher=java.sun.com}}</ref> कुछ क्रॉस- पटल सॉफ़्टवेयर के लिए प्रत्येक पटल के लिए एक अलग निर्माण की आवश्यकता होती है, लेकिन कुछ को विशेष तैयारी के बिना किसी भी पटल पर सीधे चलाया जा सकता है, व्याख्या की गई भाषा में लिखा जा रहा है या सुवाह्य बाइटकोड में संकलित किया जा सकता है जिसके लिए दुभाषिए या कार्यावधि संपुष्टि सामान्य या सभी समर्थित पटल के घटक मानक हैं। <ref name="pcmag_cross_platform">{{cite web|title=SDD Technology blog: Definition of cross platform|url=https://www.sdd-technology.com/news/definition-of-cross-platform|access-date=2020-10-18|publisher=SDD Technology}}</ref>


उदाहरण के लिए, एक क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन Microsoft Windows, Linux और macOS पर चल सकता है। क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर कई प्लेटफ़ॉर्म पर, या कम से कम दो पर चल सकता है। क्रॉस-प्लेटफ़ॉर्म विकास के लिए कुछ ढांचे कोडनेम वन, कीवी, क्यूटी, फ़्लटर, नेटिवस्क्रिप्ट, ज़ैमरिन, फोनगैप, आयोनिक और रिएक्ट नेटिव हैं।
उदाहरण के लिए, एक क्रॉस- पटल अनुप्रयोग माइक्रोसॉफ्ट विंडोज, लिनक्स और मैकओएस पर चल सकता है। क्रॉस- पटल सॉफ़्टवेयर कई पटल पर, या कम से कम दो पर चल सकता है। क्रॉस- पटल विकास के लिए कुछ ढांचे कोडनेम वन, कीवी, क्यूटी, फ़्लटर, नेटिवस्क्रिप्ट, ज़ैमरिन, फोनगैप, आयोनिक और रिएक्ट नेटिव हैं।


==प्लेटफॉर्म ==
==पटल ==
{{Main|Computing platform}}
{{Main|Computing platform}}
प्लेटफ़ॉर्म उस प्रकार के प्रोसेसर (CPU) या अन्य हार्डवेयर को संदर्भित कर सकता है जिस पर एक ऑपरेटिंग सिस्टम (OS) या एप्लिकेशन चलता है, OS का प्रकार, या दोनों का संयोजन।<ref name="The Linux Information Project">{{cite web|url=http://www.linfo.org/platform.html|title=Platform Definition|access-date=2014-03-27|publisher=The Linux Information Project}}</ref> एक सामान्य प्लेटफॉर्म का एक उदाहरण x86 आर्किटेक्चर पर चलने वाला माइक्रोसॉफ्ट विंडोज ओएस है। अन्य प्रसिद्ध डेस्कटॉप प्लेटफॉर्म लिनक्स/यूनिक्स और मैकोज़ हैं - ये दोनों स्वयं क्रॉस-प्लेटफ़ॉर्म हैं।<ref name="The Linux Information Project" />हालांकि, स्मार्टफोन जैसे कई डिवाइस हैं जो प्लेटफॉर्म भी हैं। एप्लिकेशन को किसी विशेष प्लेटफ़ॉर्म की सुविधाओं पर निर्भर करने के लिए लिखा जा सकता है - या तो हार्डवेयर, ओएस, या वर्चुअल मशीन (वीएम) जिस पर वह चलता है। उदाहरण के लिए, जावा प्लेटफॉर्म एक सामान्य वीएम प्लेटफॉर्म है जो कई ओएस और हार्डवेयर प्रकारों पर चलता है।<ref name="Cross Platform Mobile App Development">{{cite web|url=https://www.groovyweb.co/service/cross-platform-mobile-app-development|title=Cross Platform Mobile App Development|access-date=2020-03-27|publisher=Groovy Web}}</ref>  
पटल उस प्रकार के संसाधक (सीपीयू) या अन्य हार्डवेयर को संदर्भित कर सकता है जिस पर एक ऑपरेटिंग सिस्टम (OS) या अनुप्रयोग चलता है, OS का प्रकार, या दोनों का संयोजन।<ref name="The Linux Information Project">{{cite web|url=http://www.linfo.org/platform.html|title=Platform Definition|access-date=2014-03-27|publisher=The Linux Information Project}}</ref> एक सामान्य पटल का एक उदाहरण x86 आर्किटेक्चर पर चलने वाला माइक्रोसॉफ्ट विंडोज ओएस है। अन्य प्रसिद्ध डेस्कटॉप पटल लिनक्स/यूनिक्स और मैकोज़ हैं - ये दोनों स्वयं क्रॉस- पटलहैं।<ref name="The Linux Information Project" />हालांकि, स्मार्टफोन जैसे कई डिवाइस हैं जो पटल भी हैं। अनुप्रयोग को किसी विशेष पटलकी सुविधाओं पर निर्भर करने के लिए लिखा जा सकता है - या तो हार्डवेयर, ओएस, या वर्चुअल मशीन (वीएम) जिस पर वह चलता है। उदाहरण के लिए, जावा पटल एक सामान्य वीएम पटल है जो कई ओएस और हार्डवेयर प्रकारों पर चलता है।<ref name="Cross Platform Mobile App Development">{{cite web|url=https://www.groovyweb.co/service/cross-platform-mobile-app-development|title=Cross Platform Mobile App Development|access-date=2020-03-27|publisher=Groovy Web}}</ref>  


===हार्डवेयर===
===हार्डवेयर===
एक हार्डवेयर प्लेटफॉर्म एक निर्देश सेट आर्किटेक्चर को संदर्भित कर सकता है। उदाहरण के लिए: x86 आर्किटेक्चर और इसके वेरिएंट जैसे IA-32 और x86-64। ये मशीनें अक्सर माइक्रोसॉफ्ट विंडोज का एक संस्करण चलाती हैं,<ref name="Net Marketshare">[http://www.netmarketshare.com/os-market-share.aspx?qprid=9 On the Net Marketshare website], which has around 89% market share as of March 2011</ref>हालांकि वे लिनक्स, ओपनबीएसडी, नेटबीएसडी, मैकओएस और फ्रीबीएसडी सहित अन्य ओएस चला सकती हैं।
एक हार्डवेयर पटल एक निर्देश सेट आर्किटेक्चर को संदर्भित कर सकता है। उदाहरण के लिए: x86 आर्किटेक्चर और इसके वेरिएंट जैसे IA-32 और x86-64। ये मशीनें अक्सर माइक्रोसॉफ्ट विंडोज का एक संस्करण चलाती हैं,<ref name="Net Marketshare">[http://www.netmarketshare.com/os-market-share.aspx?qprid=9 On the Net Marketshare website], which has around 89% market share as of March 2011</ref>हालांकि वे लिनक्स, ओपनबीएसडी, नेटबीएसडी, मैकओएस और फ्रीबीएसडी सहित अन्य ओएस चला सकती हैं।


32-बिट एआरएम आर्किटेक्चर (और नया 64-बिट संस्करण) स्मार्टफोन और टैबलेट कंप्यूटर पर आम है, जो एंड्रॉइड, आईओएस और अन्य मोबाइल ऑपरेटिंग सिस्टम चलाते हैं।
32-बिट एआरएम आर्किटेक्चर (और नया 64-बिट संस्करण) स्मार्टफोन और टैबलेट अभिकलित्र पर आम है, जो एंड्रॉइड, आईओएस और अन्य मोबाइल ऑपरेटिंग सिस्टम चलाते हैं।


===सॉफ़्टवेयर===
===सॉफ़्टवेयर===
एक सॉफ्टवेयर प्लेटफॉर्म या तो एक ओएस या प्रोग्रामिंग वातावरण हो सकता है, हालांकि आमतौर पर यह दोनों का संयोजन होता है। एक अपवाद जावा है, जो जावा बाइटकोड को निष्पादित करने के लिए ओएस-स्वतंत्र वीएम का उपयोग करता है। सॉफ्टवेयर प्लेटफॉर्म के उदाहरण हैं:
एक सॉफ्टवेयर पटल या तो एक ओएस या प्रोग्रामिंग वातावरण हो सकता है, हालांकि आमतौर पर यह दोनों का संयोजन होता है। एक अपवाद जावा है, जो जावा बाइटकोड को निष्पादित करने के लिए ओएस-स्वतंत्र वीएम का उपयोग करता है। सॉफ्टवेयर पटल के उदाहरण हैं:


*ब्लैकबेरी 10
*ब्लैकबेरी 10
* स्मार्टफोन और टैबलेट कंप्यूटर (x86, एआरएम) के लिए एंड्रॉइड (ऑपरेटिंग सिस्टम)
* स्मार्टफोन और टैबलेट अभिकलित्र (x86, एआरएम) के लिए एंड्रॉइड (ऑपरेटिंग सिस्टम)
* आईओएस (एआरएम)
* आईओएस (एआरएम)
* माइक्रोसॉफ्ट विंडोज (x86, एआरएम)
* माइक्रोसॉफ्ट विंडोज (x86, एआरएम)
** माइक्रोसॉफ्ट का कॉमन लैंग्वेज इंफ्रास्ट्रक्चर (सीएलआई), जिसे .NET फ्रेमवर्क के नाम से भी जाना जाता है
** माइक्रोसॉफ्ट का कॉमन लैंग्वेज इंफ्रास्ट्रक्चर (सीएलआई), जिसे .NET फ्रेमवर्क के नाम से भी जाना जाता है
** क्रॉस-प्लेटफ़ॉर्म संस्करण मोनो (सॉफ़्टवेयर) (पहले नोवेल द्वारा और अब ज़ामरीन द्वारा)<ref name="Mono_by_Xamarin">{{cite web|url=http://www.mono-project.com/docs/about-mono/|title=About Mono|access-date=2015-12-17|publisher=mono-project.com}}</ref>)
** क्रॉस- पटलसंस्करण मोनो (सॉफ़्टवेयर) (पहले नोवेल द्वारा और अब ज़ामरीन द्वारा)<ref name="Mono_by_Xamarin">{{cite web|url=http://www.mono-project.com/docs/about-mono/|title=About Mono|access-date=2015-12-17|publisher=mono-project.com}}</ref>)
* जावा (प्रोग्रामिंग भाषा)
* जावा (प्रोग्रामिंग भाषा)
* वेब ब्राउज़र - कमोबेश एक-दूसरे के साथ संगत, जावास्क्रिप्ट वेब-ऐप्स चला रहे हैं
* वेब ब्राउज़र - कमोबेश एक-दूसरे के साथ संगत, जावास्क्रिप्ट वेब-ऐप्स चला रहे हैं
* Linux (x86, PowerPC, ARM, और अन्य आर्किटेक्चर)
* लिनक्स (x86, PowerPC, ARM, और अन्य आर्किटेक्चर)
* मैकोज़ (x86, पावरपीसी (10.5 और नीचे पर), और एआरएम<ref>{{Cite web|title=Apple announces Mac transition to Apple silicon|url=https://www.apple.com/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/|access-date=2020-12-08|website=Apple Newsroom|language=en-US}}</ref> (Apple सिलिकॉन या 11.0 और उससे अधिक पर))
* मैकोज़ (x86, पावरपीसी (10.5 और नीचे पर), और एआरएम<ref>{{Cite web|title=Apple announces Mac transition to Apple silicon|url=https://www.apple.com/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/|access-date=2020-12-08|website=Apple Newsroom|language=en-US}}</ref> (Apple सिलिकॉन या 11.0 और उससे अधिक पर))
* मेंडिक्स
* मेंडिक्स
Line 39: Line 39:
* AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
* AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
* अटारी टीओएस, मिंट
* अटारी टीओएस, मिंट
* बीएसडी (कई प्लेटफॉर्म; नेटबीएसडीनेट देखें,{{Clarify|reason=|date=July 2018}} उदाहरण के लिए)
* बीएसडी (कई पटल; नेटबीएसडीनेट देखें,{{Clarify|reason=|date=July 2018}} उदाहरण के लिए)
* x86 पर डॉस-टाइप सिस्टम: MS-DOS, PC DOS, DR-DOS, FreeDOS
* x86 पर डॉस-टाइप सिस्टम: MS-DOS, PC DOS, DR-DOS, FreeDOS
* ओएस/2, ईकॉमस्टेशन
* ओएस/2, ईकॉमस्टेशन


==== जावा <स्पैन क्लास= एंकर आईडी= जावा प्लेटफॉर्म></span> ====
==== जावा <स्पैन क्लास= एंकर आईडी= जावा पटल> ====
{{Main|Java (software platform)}}
{{Main|Java (software platform)}}
जावा भाषा को आमतौर पर वीएम पर चलने के लिए संकलित किया जाता है जो जावा प्लेटफॉर्म का हिस्सा है। जावा वीएम (जेवीएम) सॉफ्टवेयर में लागू एक सीपीयू है, जो सभी जावा कोड चलाता है। यह समान कोड को JVM को लागू करने वाले सभी सिस्टम पर चलने में सक्षम बनाता है। जावा सॉफ्टवेयर को हार्डवेयर आधारित जावा प्रोसेसर द्वारा निष्पादित किया जा सकता है। इसका उपयोग ज्यादातर एम्बेडेड सिस्टम में किया जाता है।
जावा भाषा को आमतौर पर वीएम पर चलने के लिए संकलित किया जाता है जो जावा पटल का हिस्सा है। जावा वीएम (जेवीएम) सॉफ्टवेयर में लागू एक सीपीयू है, जो सभी जावा कोड चलाता है। यह समान कोड को JVM को लागू करने वाले सभी सिस्टम पर चलने में सक्षम बनाता है। जावा सॉफ्टवेयर को हार्डवेयर आधारित जावा संसाधक द्वारा निष्पादित किया जा सकता है। इसका उपयोग ज्यादातर एम्बेडेड सिस्टम में किया जाता है।


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


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


== कार्यान्वयन==
== कार्यान्वयन==
सॉफ़्टवेयर को क्रॉस-प्लेटफ़ॉर्म माना जाने के लिए, इसे एक से अधिक कंप्यूटर आर्किटेक्चर या OS पर कार्य करना चाहिए। ऐसे सॉफ़्टवेयर को विकसित करना एक समय लेने वाला कार्य हो सकता है क्योंकि अलग-अलग OS में अलग-अलग एप्लिकेशन प्रोग्रामिंग इंटरफेस (API) होते हैं। उदाहरण के लिए, Linux Windows से भिन्न API का उपयोग करता है।
सॉफ़्टवेयर को क्रॉस- पटलमाना जाने के लिए, इसे एक से अधिक अभिकलित्र आर्किटेक्चर या OS पर कार्य करना चाहिए। ऐसे सॉफ़्टवेयर को विकसित करना एक समय लेने वाला कार्य हो सकता है क्योंकि अलग-अलग OS में अलग-अलग अनुप्रयोग प्रोग्रामिंग इंटरफेस (API) होते हैं। उदाहरण के लिए, लिनक्स Windows से भिन्न API का उपयोग करता है।


हो सकता है कि एक OS के लिए लिखा गया सॉफ़्टवेयर उन सभी आर्किटेक्चर पर स्वचालित रूप से काम न करे जो OS समर्थित करता है। एक उदाहरण OpenOffice.org है, जो 2006 में मूल रूप से AMD64 या Intel 64 प्रोसेसर पर x86-64 मानकों को लागू करने पर नहीं चलता था; 2012 तक इसे "ज्यादातर" इन प्रणालियों में पोर्ट किया गया था।<ref>[http://wiki.services.openoffice.org/wiki/Porting_to_x86-64_(AMD64,_EM64T) Porting to x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki]. Wiki.services.openoffice.org (2012-06-22). Retrieved on 2013-07-17.</ref> सिर्फ इसलिए कि सॉफ्टवेयर एक लोकप्रिय प्रोग्रामिंग भाषा जैसे सी या सी ++ में लिखा गया है, इसका मतलब यह नहीं है कि यह उन सभी ओएस पर चलेगा जो उस भाषा का समर्थन करते हैं- या यहां तक ​​कि एक ही ओएस के विभिन्न संस्करणों पर भी।
हो सकता है कि एक OS के लिए लिखा गया सॉफ़्टवेयर उन सभी आर्किटेक्चर पर स्वचालित रूप से काम न करे जो OS समर्थित करता है। एक उदाहरण OpenOffice.org है, जो 2006 में मूल रूप से AMD64 या Intel 64 संसाधक पर x86-64 मानकों को लागू करने पर नहीं चलता था; 2012 तक इसे "ज्यादातर" इन प्रणालियों में पोर्ट किया गया था।<ref>[http://wiki.services.openoffice.org/wiki/Porting_to_x86-64_(AMD64,_EM64T) Porting to x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki]. Wiki.services.openoffice.org (2012-06-22). Retrieved on 2013-07-17.</ref> सिर्फ इसलिए कि सॉफ्टवेयर एक लोकप्रिय प्रोग्रामिंग भाषा जैसे सी या सी ++ में लिखा गया है, इसका मतलब यह नहीं है कि यह उन सभी ओएस पर चलेगा जो उस भाषा का समर्थन करते हैं- या यहां तक ​​कि एक ही ओएस के विभिन्न संस्करणों पर भी।


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


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


उन्नत वेब अनुप्रयोगों के प्रमुख उदाहरणों में जीमेल का वेब इंटरफेस, ए9.कॉम, गूगल मैप्स वेबसाइट और माइक्रोसॉफ्ट की लाइव सर्च सर्विस (अब बिंग) शामिल हैं। ऐसे एप्लिकेशन नियमित रूप से केवल लोकप्रिय वेब ब्राउज़र के हाल के संस्करणों में पाई जाने वाली अतिरिक्त सुविधाओं पर निर्भर करते हैं। इन सुविधाओं में अजाक्स, जावास्क्रिप्ट, डायनेमिक एचटीएमएल, एसवीजी, और समृद्ध वेब अनुप्रयोगों के अन्य घटक शामिल हैं। पुराने संस्करणों में अक्सर इनकी कमी होती है।
उन्नत वेब अनुप्रयोगों के प्रमुख उदाहरणों में जीमेल का वेब इंटरफेस, ए9.कॉम, गूगल मैप्स वेबसाइट और माइक्रोसॉफ्ट की लाइव सर्च सर्विस (अब बिंग) शामिल हैं। ऐसे अनुप्रयोग नियमित रूप से केवल लोकप्रिय वेब ब्राउज़र के हाल के संस्करणों में पाई जाने वाली अतिरिक्त सुविधाओं पर निर्भर करते हैं। इन सुविधाओं में अजाक्स, जावास्क्रिप्ट, डायनेमिक एचटीएमएल, एसवीजी, और समृद्ध वेब अनुप्रयोगों के अन्य घटक शामिल हैं। पुराने संस्करणों में अक्सर इनकी कमी होती है।


==== डिज़ाइन ====
==== परिकलन ====
संगतता और कार्यक्षमता के प्रतिस्पर्धी हितों के कारण, कई डिज़ाइन रणनीतियाँ सामने आई हैं।
संगतता और कार्यक्षमता के प्रतिस्पर्धी हितों के कारण, कई परिकलन रणनीतियाँ सामने आई हैं।


कई सॉफ्टवेयर सिस्टम एक स्तरित आर्किटेक्चर का उपयोग करते हैं जहां प्लेटफॉर्म-निर्भर कोड ऊपरी और सबसे निचली परतों तक ही सीमित होता है।
कई सॉफ्टवेयर सिस्टम एक स्तरित आर्किटेक्चर का उपयोग करते हैं जहां पटल-निर्भर कोड ऊपरी और सबसे निचली परतों तक ही सीमित होता है।


===== ससम्मान पद अवनति =====
===== ससम्मान पद अवनति =====
Line 72: Line 72:


===== एकाधिक कोडबेस =====
===== एकाधिक कोडबेस =====
कुछ सॉफ्टवेयर अलग-अलग (हार्डवेयर और ओएस) प्लेटफॉर्म के लिए अलग-अलग कोडबेस में समान कार्यक्षमता के साथ बनाए रखा जाता है। इसके लिए कोड को बनाए रखने के लिए अधिक प्रयास की आवश्यकता होती है, लेकिन यह सार्थक हो सकता है जहां प्लेटफ़ॉर्म-विशिष्ट कोड की मात्रा अधिक हो।
कुछ सॉफ्टवेयर अलग-अलग (हार्डवेयर और ओएस) पटल के लिए अलग-अलग कोडबेस में समान कार्यक्षमता के साथ बनाए रखा जाता है। इसके लिए कोड को बनाए रखने के लिए अधिक प्रयास की आवश्यकता होती है, लेकिन यह सार्थक हो सकता है जहां पटल-विशिष्ट कोड की मात्रा अधिक हो।


===== सिंगल कोडबेस =====
===== सिंगल कोडबेस =====
यह रणनीति एक कोडबेस होने पर निर्भर करती है जिसे कई प्लेटफ़ॉर्म-विशिष्ट स्वरूपों में संकलित किया जा सकता है। एक तकनीक सशर्त संकलन है। इस तकनीक के साथ, सभी प्लेटफार्मों के लिए सामान्य कोड दोहराया नहीं जाता है। कोड के ब्लॉक जो केवल कुछ प्लेटफॉर्म के लिए प्रासंगिक होते हैं, उन्हें सशर्त बनाया जाता है, ताकि जरूरत पड़ने पर ही उनकी व्याख्या या संकलन किया जा सके। एक अन्य तकनीक कार्यक्षमता का पृथक्करण है, जो ब्राउज़र या ओएस द्वारा समर्थित कार्यक्षमता को अक्षम करता है, जबकि उपयोगकर्ता को अभी भी एक पूर्ण एप्लिकेशन प्रदान करता है। (यह भी देखें: चिंताओं का पृथक्करण।) इस तकनीक का उपयोग वेब विकास में किया जाता है जहां व्याख्या किए गए कोड (जैसा कि स्क्रिप्टिंग भाषाओं में) अलग-अलग ब्लॉकों को सशर्त रूप से निष्पादित करने के लिए चल रहे प्लेटफॉर्म को क्वेरी कर सकते हैं।<ref>{{cite journal|last=Corti|first=Sascha P.|title=Browser and Feature Detection|journal=MSDN Magazine|date=October 2011|url=http://msdn.microsoft.com/en-us/magazine/hh475813.aspx|access-date=28 January 2014}}</ref>
यह रणनीति एक कोडबेस होने पर निर्भर करती है जिसे कई पटल-विशिष्ट स्वरूपों में संकलित किया जा सकता है। एक तकनीक सशर्त संकलन है। इस तकनीक के साथ, सभी प्लेटफार्मों के लिए सामान्य कोड दोहराया नहीं जाता है। कोड के ब्लॉक जो केवल कुछ पटल के लिए प्रासंगिक होते हैं, उन्हें सशर्त बनाया जाता है, ताकि जरूरत पड़ने पर ही उनकी व्याख्या या संकलन किया जा सके। एक अन्य तकनीक कार्यक्षमता का पृथक्करण है, जो ब्राउज़र या ओएस द्वारा समर्थित कार्यक्षमता को अक्षम करता है, जबकि उपयोगकर्ता को अभी भी एक पूर्ण अनुप्रयोग प्रदान करता है। (यह भी देखें: चिंताओं का पृथक्करण।) इस तकनीक का उपयोग वेब विकास में किया जाता है जहां व्याख्या किए गए कोड (जैसा कि स्क्रिप्टिंग भाषाओं में) अलग-अलग ब्लॉकों को सशर्त रूप से निष्पादित करने के लिए चल रहे पटल को क्वेरी कर सकते हैं।<ref>{{cite journal|last=Corti|first=Sascha P.|title=Browser and Feature Detection|journal=MSDN Magazine|date=October 2011|url=http://msdn.microsoft.com/en-us/magazine/hh475813.aspx|access-date=28 January 2014}}</ref>
===== तृतीय-पक्ष पुस्तकालय =====
===== तृतीय-पक्ष पुस्तकालय =====
तृतीय-पक्ष पुस्तकालय विक्रेता लॉक-इन की कीमत पर एकल, एकीकृत एपीआई के पीछे क्लाइंट भेदभाव की जटिलताओं को छिपाकर क्रॉस-प्लेटफ़ॉर्म क्षमता को सरल बनाने का प्रयास करते हैं।
तृतीय-पक्ष पुस्तकालय विक्रेता लॉक-इन की कीमत पर एकल, एकीकृत एपीआई के पीछे क्लाइंट भेदभाव की जटिलताओं को छिपाकर क्रॉस- पटलक्षमता को सरल बनाने का प्रयास करते हैं।


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


==== परिक्षण====
==== परिक्षण====
क्रॉस-प्लेटफ़ॉर्म अनुप्रयोगों को अधिक एकीकरण परीक्षण की आवश्यकता होती है। कुछ वेब ब्राउज़र एक ही मशीन पर विभिन्न संस्करणों की स्थापना को प्रतिबंधित करते हैं। कई प्लेटफार्मों को लक्षित करने के लिए कई दृष्टिकोणों का उपयोग किया जाता है, लेकिन उन सभी का परिणाम सॉफ्टवेयर में होता है जिसके लिए परीक्षण और रखरखाव के लिए पर्याप्त मैन्युअल प्रयास की आवश्यकता होती है।<ref>{{Cite journal|last=Choudhary|first=S.R.|date=2014|title=Cross-platform testing and maintenance of web and mobile applications.|journal=Companion Proceedings of the 36th International Conference on Software Engineering - ICSE Companion 2014|pages=642–645|doi=10.1145/2591062.2591097|isbn=9781450327688|s2cid=1903037}}</ref> पूर्ण वर्चुअलाइजेशन जैसी तकनीकों को कभी-कभी इस समस्या के समाधान के रूप में उपयोग किया जाता है।
क्रॉस- पटलअनुप्रयोगों को अधिक एकीकरण परीक्षण की आवश्यकता होती है। कुछ वेब ब्राउज़र एक ही मशीन पर विभिन्न संस्करणों की स्थापना को प्रतिबंधित करते हैं। कई प्लेटफार्मों को लक्षित करने के लिए कई दृष्टिकोणों का उपयोग किया जाता है, लेकिन उन सभी का परिणाम सॉफ्टवेयर में होता है जिसके लिए परीक्षण और रखरखाव के लिए पर्याप्त मैन्युअल प्रयास की आवश्यकता होती है।<ref>{{Cite journal|last=Choudhary|first=S.R.|date=2014|title=Cross-platform testing and maintenance of web and mobile applications.|journal=Companion Proceedings of the 36th International Conference on Software Engineering - ICSE Companion 2014|pages=642–645|doi=10.1145/2591062.2591097|isbn=9781450327688|s2cid=1903037}}</ref> पूर्ण वर्चुअलाइजेशन जैसी तकनीकों को कभी-कभी इस समस्या के समाधान के रूप में उपयोग किया जाता है।


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


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


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


सॉफ़्टवेयर के लिए जो बाइनरी निष्पादन योग्य के रूप में वितरित किया जाता है, जैसे कि सी या सी ++ में लिखा गया है, प्रत्येक प्लेटफ़ॉर्म के लिए एक सॉफ़्टवेयर बिल्ड होना चाहिए, एक टूलसेट का उपयोग करके जो अनुवाद करता है-ट्रांसकंपाइल-एक एकल कोडबेस को कई बाइनरी निष्पादन योग्य बनाता है। उदाहरण के लिए, फ़ायरफ़ॉक्स, एक ओपन-सोर्स वेब ब्राउज़र, विंडोज, मैकओएस (पॉवरपीसी और x86 दोनों के माध्यम से जिसे ऐप्पल इंक एक यूनिवर्सल बाइनरी कहता है), लिनक्स और बीएसडी पर कई कंप्यूटर आर्किटेक्चर पर उपलब्ध है। चार प्लेटफॉर्म (इस मामले में, विंडोज, मैकओएस, लिनक्स और बीएसडी) अलग निष्पादन योग्य वितरण हैं, हालांकि वे बड़े पैमाने पर एक ही स्रोत कोड से आते हैं। दुर्लभ मामलों में, कई प्लेटफार्मों के लिए बनाए गए निष्पादन योग्य कोड को एक एकल निष्पादन योग्य फ़ाइल में जोड़ा जाता है जिसे वसा बाइनरी कहा जाता है।
सॉफ़्टवेयर के लिए जो बाइनरी निष्पादन योग्य के रूप में वितरित किया जाता है, जैसे कि सी या सी ++ में लिखा गया है, प्रत्येक पटलके लिए एक सॉफ़्टवेयर निर्माण होना चाहिए, एक टूलसेट का उपयोग करके जो अनुवाद करता है-ट्रांसकंपाइल-एक एकल कोडबेस को कई बाइनरी निष्पादन योग्य बनाता है। उदाहरण के लिए, फ़ायरफ़ॉक्स, एक ओपन-सोर्स वेब ब्राउज़र, विंडोज, मैकओएस (पॉवरपीसी और x86 दोनों के माध्यम से जिसे ऐप्पल इंक एक यूनिवर्सल बाइनरी कहता है), लिनक्स और बीएसडी पर कई अभिकलित्र आर्किटेक्चर पर उपलब्ध है। चार पटल (इस मामले में, विंडोज, मैकओएस, लिनक्स और बीएसडी) अलग निष्पादन योग्य वितरण हैं, हालांकि वे बड़े पैमाने पर एक ही स्रोत कोड से आते हैं। दुर्लभ मामलों में, कई प्लेटफार्मों के लिए बनाए गए निष्पादन योग्य कोड को एक एकल निष्पादन योग्य फ़ाइल में जोड़ा जाता है जिसे वसा बाइनरी कहा जाता है।


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


पोर्टिंग का एक विकल्प क्रॉस-प्लेटफ़ॉर्म वर्चुअलाइजेशन है, जहां एक प्लेटफॉर्म के लिए संकलित एप्लिकेशन स्रोत कोड या बायनेरिज़ के संशोधन के बिना दूसरे पर चल सकते हैं। उदाहरण के तौर पर, ऐप्पल का रोसेटा, जो इंटेल-आधारित मैकिंटोश कंप्यूटरों में बनाया गया है, मैक की पिछली पीढ़ी के लिए संकलित अनुप्रयोगों को चलाता है जो पावरपीसी सीपीयू का इस्तेमाल करते थे। एक अन्य उदाहरण IBM PowerVM Lx86 है, जो Linux/x86 अनुप्रयोगों को Linux/Power OS पर असंशोधित चलाने की अनुमति देता है।
पोर्टिंग का एक विकल्प क्रॉस- पटलवर्चुअलाइजेशन है, जहां एक पटल के लिए संकलित अनुप्रयोग स्रोत कोड या बायनेरिज़ के संशोधन के बिना दूसरे पर चल सकते हैं। उदाहरण के तौर पर, ऐप्पल का रोसेटा, जो इंटेल-आधारित मैकिंटोश अभिकलित्रों में बनाया गया है, मैक की पिछली पीढ़ी के लिए संकलित अनुप्रयोगों को चलाता है जो पावरपीसी सीपीयू का इस्तेमाल करते थे। एक अन्य उदाहरण IBM PowerVM Lx86 है, जो लिनक्स/x86 अनुप्रयोगों को लिनक्स/Power OS पर असंशोधित चलाने की अनुमति देता है।


क्रॉस-प्लेटफ़ॉर्म बाइनरी सॉफ़्टवेयर का उदाहरण:
क्रॉस- पटलबाइनरी सॉफ़्टवेयर का उदाहरण:


* लिब्रे ऑफिस ऑफिस सुइट माइक्रोसॉफ्ट विंडोज, मैकओएस, कई लिनक्स वितरण, फ्रीबीएसडी, नेटबीएसडी, ओपनबीएसडी, एंड्रॉइड, आईओएस, आईपैडओएस, क्रोम ओएस, वेब-आधारित कोलाबोरा ऑनलाइन और कई अन्य के लिए बनाया गया है।<ref>{{Cite news|last=Mehrotra|first=Pranob|date=2020-12-01|title=Collabora Office suite gets a new layout for Android tablets and Chromebooks|work=XDA-Developers|url=https://www.xda-developers.com/collabora-office-suite-gets-layout-android-tablets-chromebooks/|url-status=live|access-date=2021-01-15|quote=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.}}</ref><ref name=":1">{{Cite news|last=|first=|date=2020-12-15|title=Collabora Office on iOS and Android Just got Better!|work=Adfinis|url=https://adfinis.com/en/blog/collabora-office-on-ios-and-android-just-got-better/|url-status=live|access-date=2021-01-15|quote=...touch optimized interfaces: one for tablets and one for phone screens. ...(iOS, iPadOS, Chromebooks, Android).}}</ref> इनमें से कई IA-32, x86-64, ARM (ARMel, ARMhf, ARM64), MIPS, MIPSel, PowerPC, ppc64el, और S390x सहित प्रोसेसर आर्किटेक्चर के साथ कई हार्डवेयर प्लेटफॉर्म पर समर्थित हैं।{{Cite news|date=2021-03-26|title=Nextcloud Ubuntu Appliance adds Collabora Online to Raspberry Pi image|work=MuyLinux|url=https://www.muylinux.com/2021/03/26/nextcloud-ubuntu-appliance-collabora-online-raspberry-pi/|url-status=live|access-date=2021-03-30|quote=the first viable self-hosted web office solution for the popular Raspberry Pi 4 platform}}</ref>
* लिब्रे ऑफिस ऑफिस सुइट माइक्रोसॉफ्ट विंडोज, मैकओएस, कई लिनक्स वितरण, फ्रीबीएसडी, नेटबीएसडी, ओपनबीएसडी, एंड्रॉइड, आईओएस, आईपैडओएस, क्रोम ओएस, वेब-आधारित कोलाबोरा ऑनलाइन और कई अन्य के लिए बनाया गया है।<ref>{{Cite news|last=Mehrotra|first=Pranob|date=2020-12-01|title=Collabora Office suite gets a new layout for Android tablets and Chromebooks|work=XDA-Developers|url=https://www.xda-developers.com/collabora-office-suite-gets-layout-android-tablets-chromebooks/|url-status=live|access-date=2021-01-15|quote=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.}}</ref><ref name=":1">{{Cite news|last=|first=|date=2020-12-15|title=Collabora Office on iOS and Android Just got Better!|work=Adfinis|url=https://adfinis.com/en/blog/collabora-office-on-ios-and-android-just-got-better/|url-status=live|access-date=2021-01-15|quote=...touch optimized interfaces: one for tablets and one for phone screens. ...(iOS, iPadOS, Chromebooks, Android).}}</ref> इनमें से कई IA-32, x86-64, ARM (ARMel, ARMhf, ARM64), MIPS, MIPSel, PowerPC, ppc64el, और S390x सहित संसाधक आर्किटेक्चर के साथ कई हार्डवेयर पटल पर समर्थित हैं।{{Cite news|date=2021-03-26|title=Nextcloud Ubuntu Appliance adds Collabora Online to Raspberry Pi image|work=MuyLinux|url=https://www.muylinux.com/2021/03/26/nextcloud-ubuntu-appliance-collabora-online-raspberry-pi/|url-status=live|access-date=2021-03-30|quote=the first viable self-hosted web office solution for the popular Raspberry Pi 4 platform}}</ref>


==== लिपियों और व्याख्या की गई भाषाएं ====
==== लिपियों और व्याख्या की गई भाषाएं ====
स्क्रिप्ट को क्रॉस-प्लेटफ़ॉर्म माना जा सकता है यदि उसका दुभाषिया कई प्लेटफार्मों पर उपलब्ध है और स्क्रिप्ट केवल भाषा में निर्मित सुविधाओं का उपयोग करती है। उदाहरण के लिए, यूनिक्स जैसी प्रणाली के लिए पायथन में लिखी गई एक स्क्रिप्ट संभवतः विंडोज़ पर बहुत कम या बिना किसी संशोधन के चलेगी, क्योंकि पायथन भी विंडोज़ पर चलता है; वास्तव में कई कार्यान्वयन हैं (उदाहरण के लिए .NET फ्रेमवर्क के लिए आयरनपीथन)। वही कई ओपन-सोर्स स्क्रिप्टिंग भाषाओं के लिए जाता है।
स्क्रिप्ट को क्रॉस- पटलमाना जा सकता है यदि उसका दुभाषिया कई प्लेटफार्मों पर उपलब्ध है और स्क्रिप्ट केवल भाषा में निर्मित सुविधाओं का उपयोग करती है। उदाहरण के लिए, यूनिक्स जैसी प्रणाली के लिए पायथन में लिखी गई एक स्क्रिप्ट संभवतः विंडोज़ पर बहुत कम या बिना किसी संशोधन के चलेगी, क्योंकि पायथन भी विंडोज़ पर चलता है; वास्तव में कई कार्यान्वयन हैं (उदाहरण के लिए .NET फ्रेमवर्क के लिए आयरनपीथन)। वही कई ओपन-सोर्स स्क्रिप्टिंग भाषाओं के लिए जाता है।


बाइनरी निष्पादन योग्य फ़ाइलों के विपरीत, एक ही स्क्रिप्ट का उपयोग उन सभी कंप्यूटरों पर किया जा सकता है जिनके पास स्क्रिप्ट की व्याख्या करने के लिए सॉफ़्टवेयर है। ऐसा इसलिए है क्योंकि स्क्रिप्ट आम तौर पर एक टेक्स्ट फ़ाइल में सादे पाठ में संग्रहीत होती है। कुछ मामूली मुद्दे हो सकते हैं, जैसे कि एक नई लाइन कैरेक्टर का प्रतिनिधित्व।
बाइनरी निष्पादन योग्य फ़ाइलों के विपरीत, एक ही स्क्रिप्ट का उपयोग उन सभी अभिकलित्रों पर किया जा सकता है जिनके पास स्क्रिप्ट की व्याख्या करने के लिए सॉफ़्टवेयर है। ऐसा इसलिए है क्योंकि स्क्रिप्ट आम तौर पर एक टेक्स्ट फ़ाइल में सादे पाठ में संग्रहीत होती है। कुछ मामूली मुद्दे हो सकते हैं, जैसे कि एक नई लाइन कैरेक्टर का प्रतिनिधित्व।


कुछ लोकप्रिय क्रॉस-प्लेटफ़ॉर्म स्क्रिप्टिंग भाषाएँ हैं:
कुछ लोकप्रिय क्रॉस- पटलस्क्रिप्टिंग भाषाएँ हैं:


* बैश - एक यूनिक्स शेल आमतौर पर लिनक्स और अन्य आधुनिक यूनिक्स जैसी प्रणालियों के साथ-साथ विंडोज पर सिग्विन पॉज़िक्स संगतता परत के माध्यम से चलता है।
* बैश - एक यूनिक्स शेल आमतौर पर लिनक्स और अन्य आधुनिक यूनिक्स जैसी प्रणालियों के साथ-साथ विंडोज पर सिग्विन पॉज़िक्स संगतता परत के माध्यम से चलता है।
* पर्ल - पहली बार 1987 में जारी किया गया। सीजीआई प्रोग्रामिंग, छोटे सिस्टम प्रशासन कार्यों और बहुत कुछ के लिए उपयोग किया जाता है।
* पर्ल - पहली बार 1987 में जारी किया गया। सीजीआई प्रोग्रामिंग, छोटे सिस्टम प्रशासन कार्यों और बहुत कुछ के लिए उपयोग किया जाता है।
* PHP - ज्यादातर वेब अनुप्रयोगों के लिए उपयोग किया जाता है।
* PHP - ज्यादातर वेब अनुप्रयोगों के लिए उपयोग किया जाता है।
* पायथन - एक भाषा जो रन-टाइम दक्षता के बजाय तेजी से अनुप्रयोग विकास और लेखन में आसानी पर केंद्रित है।
* पायथन - एक भाषा जो कार्यावधि दक्षता के बजाय तेजी से अनुप्रयोग विकास और लेखन में आसानी पर केंद्रित है।
* रूबी - एक वस्तु-उन्मुख भाषा जिसका उद्देश्य पढ़ने में आसान होना है। रूबी ऑन रेल्स के माध्यम से वेब पर भी इस्तेमाल किया जा सकता है।
* रूबी - एक वस्तु-उन्मुख भाषा जिसका उद्देश्य पढ़ने में आसान होना है। रूबी ऑन रेल्स के माध्यम से वेब पर भी इस्तेमाल किया जा सकता है।
* टीसीएल - एक गतिशील प्रोग्रामिंग भाषा, वेब और डेस्कटॉप अनुप्रयोगों, नेटवर्किंग, प्रशासन, परीक्षण और कई अन्य सहित उपयोगों की एक विस्तृत श्रृंखला के लिए उपयुक्त है।
* टीसीएल - एक गतिशील प्रोग्रामिंग भाषा, वेब और डेस्कटॉप अनुप्रयोगों, नेटवर्किंग, प्रशासन, परीक्षण और कई अन्य सहित उपयोगों की एक विस्तृत श्रृंखला के लिए उपयुक्त है।


=== वीडियो गेम ===
=== वीडियो गेम ===
क्रॉस-प्लेटफ़ॉर्म या मल्टी-प्लेटफ़ॉर्म एक ऐसा शब्द है जो वीडियो गेम कंसोल की एक श्रृंखला पर जारी किए गए वीडियो गेम पर भी लागू हो सकता है। क्रॉस-प्लेटफ़ॉर्म गेम के उदाहरणों में शामिल हैं: माइनर 2049er, टॉम्ब रेडर: लीजेंड, फीफा (वीडियो गेम सीरीज़), एनएचएल सीरीज़ और माइनक्राफ्ट।
क्रॉस- पटलया मल्टी- पटलएक ऐसा शब्द है जो वीडियो गेम कंसोल की एक श्रृंखला पर जारी किए गए वीडियो गेम पर भी लागू हो सकता है। क्रॉस- पटलगेम के उदाहरणों में शामिल हैं: माइनर 2049er, टॉम्ब रेडर: लीजेंड, फीफा (वीडियो गेम सीरीज़), एनएचएल सीरीज़ और माइनक्राफ्ट।


प्रत्येक को विभिन्न प्रकार के गेमिंग प्लेटफॉर्म, जैसे कि Wii, PlayStation 3, Xbox 360, पर्सनल कंप्यूटर और मोबाइल डिवाइस पर रिलीज़ किया गया है।
प्रत्येक को विभिन्न प्रकार के गेमिंग पटल, जैसे कि Wii, PlayStation 3, Xbox 360, पर्सनल अभिकलित्र और मोबाइल डिवाइस पर रिलीज़ किया गया है।


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


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


==== क्रॉस-प्लेटफ़ॉर्म प्ले ====
==== क्रॉस- पटलप्ले ====
{{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, Microsoft, और 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>
कई डेवलपर्स ने विभिन्न प्लेटफार्मों का उपयोग करते हुए ऑनलाइन गेम खेलने के तरीके लागू किए हैं। Psyonix, Epic Games, Microsoft, और 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।


==प्रोग्रामिंग ==
==प्रोग्रामिंग ==
क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग एक से अधिक प्लेटफ़ॉर्म पर काम करने के लिए जानबूझकर सॉफ़्टवेयर लिखने का अभ्यास है।
क्रॉस- पटलप्रोग्रामिंग एक से अधिक पटलपर काम करने के लिए जानबूझकर सॉफ़्टवेयर लिखने का अभ्यास है।


=== दृष्टिकोण <span class= एंकर id= क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग के लिए दृष्टिकोण ></span> ===
=== दृष्टिकोण <span class= एंकर id= क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग के लिए दृष्टिकोण ></span> ===
क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन लिखने के विभिन्न तरीके हैं। एक तरीका अलग-अलग स्रोत ट्री में एक ही सॉफ़्टवेयर के कई संस्करण बनाना है- दूसरे शब्दों में, किसी एप्लिकेशन के Microsoft Windows संस्करण में स्रोत कोड फ़ाइलों का एक सेट और Apple Macintosh संस्करण दूसरा हो सकता है, जबकि एक मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर * निक्स सिस्टम में एक तिहाई हो सकता है। हालांकि यह सीधा है, केवल एक प्लेटफॉर्म के लिए विकसित होने की तुलना में बड़ी टीम को भुगतान करने या उत्पादों को अधिक धीरे-धीरे जारी करने में अधिक खर्च हो सकता है। इसके परिणामस्वरूप और अधिक बग्स को ट्रैक किया जा सकता है और उन्हें ठीक किया जा सकता है।
क्रॉस- पटलअनुप्रयोग लिखने के विभिन्न तरीके हैं। एक तरीका अलग-अलग स्रोत ट्री में एक ही सॉफ़्टवेयर के कई संस्करण बनाना है- दूसरे शब्दों में, किसी अनुप्रयोग के Microsoft Windows संस्करण में स्रोत कोड फ़ाइलों का एक सेट और Apple Macintosh संस्करण दूसरा हो सकता है, जबकि एक मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर * निक्स सिस्टम में एक तिहाई हो सकता है। हालांकि यह सीधा है, केवल एक पटल के लिए विकसित होने की तुलना में बड़ी टीम को भुगतान करने या उत्पादों को अधिक धीरे-धीरे जारी करने में अधिक खर्च हो सकता है। इसके परिणामस्वरूप और अधिक बग्स को ट्रैक किया जा सकता है और उन्हें ठीक किया जा सकता है।


एक अन्य तरीका सॉफ्टवेयर का उपयोग करना है जो प्लेटफार्मों के बीच के अंतर को छुपाता है। यह अमूर्त परत प्लेटफॉर्म से एप्लिकेशन को इंसुलेट करती है। ऐसे एप्लिकेशन प्लेटफॉर्म अज्ञेयवादी हैं। JVM पर चलने वाले एप्लिकेशन इस तरह से बनाए जाते हैं।
एक अन्य तरीका सॉफ्टवेयर का उपयोग करना है जो प्लेटफार्मों के बीच के अंतर को छुपाता है। यह अमूर्त परत पटल से अनुप्रयोग को इंसुलेट करती है। ऐसे अनुप्रयोग पटल अज्ञेयवादी हैं। JVM पर चलने वाले अनुप्रयोग इस तरह से बनाए जाते हैं।


कुछ एप्लिकेशन अंतिम एप्लिकेशन बनाने के लिए क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग के विभिन्न तरीकों को मिलाते हैं। एक उदाहरण फ़ायरफ़ॉक्स वेब ब्राउज़र है, जो कुछ निचले स्तर के घटकों के निर्माण के लिए अमूर्तता का उपयोग करता है, प्लेटफ़ॉर्म-विशिष्ट सुविधाओं (जैसे जीयूआई) को लागू करने के लिए अलग स्रोत उपट्री के साथ, और सॉफ़्टवेयर पोर्टेबिलिटी को आसान बनाने के लिए एक से अधिक स्क्रिप्टिंग भाषा का कार्यान्वयन . फ़ायरफ़ॉक्स क्लासिक नेटस्केप-शैली ब्राउज़र प्लगइन्स के अलावा, ब्राउज़र को विस्तारित करने के लिए XUL, कैस्केडिंग स्टाइल शीट्स और जावास्क्रिप्ट को लागू करता है। अधिकांश ब्राउज़र स्वयं XUL, CSS और जावास्क्रिप्ट में लिखा गया है।
कुछ अनुप्रयोग अंतिम अनुप्रयोग बनाने के लिए क्रॉस- पटलप्रोग्रामिंग के विभिन्न तरीकों को मिलाते हैं। एक उदाहरण फ़ायरफ़ॉक्स वेब ब्राउज़र है, जो कुछ निचले स्तर के घटकों के निर्माण के लिए अमूर्तता का उपयोग करता है, पटल-विशिष्ट सुविधाओं (जैसे जीयूआई) को लागू करने के लिए अलग स्रोत उपट्री के साथ, और सॉफ़्टवेयर पोर्टेबिलिटी को आसान बनाने के लिए एक से अधिक स्क्रिप्टिंग भाषा का कार्यान्वयन . फ़ायरफ़ॉक्स क्लासिक नेटस्केप-शैली ब्राउज़र प्लगइन्स के अलावा, ब्राउज़र को विस्तारित करने के लिए XUL, कैस्केडिंग स्टाइल शीट्स और जावास्क्रिप्ट को लागू करता है। अधिकांश ब्राउज़र स्वयं XUL, CSS और जावास्क्रिप्ट में लिखा गया है।


=== टूलकिट और परिवेश===
=== टूलकिट और परिवेश===
कई उपकरण हैं<ref name="TheGUIToolkit">[https://web.archive.org/web/20091026132520/http://geocities.com/SiliconValley/Vista/7184/guitool.html The GUI Toolkit, Framework Page]</ref><ref name="PlatformIndependentFAQ">{{Cite web |url=http://www.zeta.org.au/~rosko/pigui.htm |title=Platform Independent FAQ |access-date=2009-04-25 |archive-url=https://web.archive.org/web/20080816180726/http://www.zeta.org.au/~rosko/pigui.htm |archive-date=2008-08-16 |url-status=dead }}</ref> क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग की प्रक्रिया में सहायता के लिए उपलब्ध:
कई उपकरण हैं<ref name="TheGUIToolkit">[https://web.archive.org/web/20091026132520/http://geocities.com/SiliconValley/Vista/7184/guitool.html The GUI Toolkit, Framework Page]</ref><ref name="PlatformIndependentFAQ">{{Cite web |url=http://www.zeta.org.au/~rosko/pigui.htm |title=Platform Independent FAQ |access-date=2009-04-25 |archive-url=https://web.archive.org/web/20080816180726/http://www.zeta.org.au/~rosko/pigui.htm |archive-date=2008-08-16 |url-status=dead }}</ref> क्रॉस- पटलप्रोग्रामिंग की प्रक्रिया में सहायता के लिए उपलब्ध:


* 8 वीं (भाषा): एक विकास भाषा जो जूस को अपनी जीयूआई परत के रूप में उपयोग करती है। यह वर्तमान में एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स और रास्पबेरी पाई का समर्थन करता है।
* 8 वीं (भाषा): एक विकास भाषा जो जूस को अपनी जीयूआई परत के रूप में उपयोग करती है। यह वर्तमान में एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स और रास्पबेरी पाई का समर्थन करता है।
* अनंत कंप्यूटिंग: एक मोबाइल एप्लिकेशन प्लेटफॉर्म जो सभी भारतीय भाषाओं में काम करता है, जिसमें उनके कीबोर्ड भी शामिल हैं, और सभी ओएस में ऐप वॉलेट और मूल प्रदर्शन का भी समर्थन करता है।
* अनंत अभिकलन: एक मोबाइल अनुप्रयोग पटल जो सभी भारतीय भाषाओं में काम करता है, जिसमें उनके कीबोर्ड भी शामिल हैं, और सभी ओएस में ऐप वॉलेट और मूल प्रदर्शन का भी समर्थन करता है।
* AppearIQ: एक ढांचा जो उद्यम वातावरण में ऐप विकास और परिनियोजन के वर्कफ़्लो का समर्थन करता है। मूल रूप से विकसित कंटेनर एक एपीआई से एचटीएमएल 5 कोड के माध्यम से मोबाइल उपकरणों या टैबलेट की हार्डवेयर सुविधाओं को प्रस्तुत करते हैं और इस प्रकार विभिन्न प्लेटफार्मों पर चलने वाले मोबाइल ऐप के विकास की सुविधा प्रदान करते हैं।
* AppearIQ: एक ढांचा जो उद्यम वातावरण में ऐप विकास और परिनियोजन के वर्कफ़्लो का समर्थन करता है। मूल रूप से विकसित कंटेनर एक एपीआई से एचटीएमएल 5 कोड के माध्यम से मोबाइल उपकरणों या टैबलेट की हार्डवेयर सुविधाओं को प्रस्तुत करते हैं और इस प्रकार विभिन्न प्लेटफार्मों पर चलने वाले मोबाइल ऐप के विकास की सुविधा प्रदान करते हैं।
* बोडेन (सॉफ्टवेयर): C++ में लिखा गया UI फ्रेमवर्क।
* बोडेन (सॉफ्टवेयर): C++ में लिखा गया UI फ्रेमवर्क।
* काहिरा (ग्राफिक्स): एक मुफ्त सॉफ्टवेयर लाइब्रेरी जिसका उपयोग वेक्टर ग्राफिक्स-आधारित, डिवाइस-स्वतंत्र एपीआई प्रदान करने के लिए किया जाता है। यह कई अलग-अलग बैकएंड में 2-आयामी ड्राइंग के लिए प्राइमेटिव प्रदान करने के लिए डिज़ाइन किया गया है। काहिरा सी में लिखा गया है और कई प्रोग्रामिंग भाषाओं के लिए बाध्यकारी है।
* काहिरा (ग्राफिक्स): एक मुफ्त सॉफ्टवेयर लाइब्रेरी जिसका उपयोग वेक्टर ग्राफिक्स-आधारित, डिवाइस-स्वतंत्र एपीआई प्रदान करने के लिए किया जाता है। यह कई अलग-अलग बैकएंड में 2-आयामी ड्राइंग के लिए प्राइमेटिव प्रदान करने के लिए परिकलन किया गया है। काहिरा सी में लिखा गया है और कई प्रोग्रामिंग भाषाओं के लिए बाध्यकारी है।
* Cocos2d: 2D और सरल 3D क्रॉस-प्लेटफ़ॉर्म गेम और एप्लिकेशन विकसित करने के लिए एक ओपन-सोर्स टूलकिट और गेम इंजन।
* Cocos2d: 2D और सरल 3D क्रॉस- पटलगेम और अनुप्रयोग विकसित करने के लिए एक ओपन-सोर्स टूलकिट और गेम इंजन।
* कोडनेम वन: जावा और कोटलिन डेवलपर्स के लिए एक ओपन-सोर्स राइट वन्स रन एनीवेयर (WORA) फ्रेमवर्क।
* कोडनेम वन: जावा और कोटलिन डेवलपर्स के लिए एक ओपन-सोर्स राइट वन्स रन एनीवेयर (WORA) फ्रेमवर्क।
* डेल्फी (प्रोग्रामिंग भाषा): एक आईडीई जो विकास के लिए पास्कल-आधारित भाषा का उपयोग करता है। यह एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स को सपोर्ट करता है।
* डेल्फी (प्रोग्रामिंग भाषा): एक आईडीई जो विकास के लिए पास्कल-आधारित भाषा का उपयोग करता है। यह एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स को सपोर्ट करता है।
* Ecere SDK: एक GUI और 2D/3D ग्राफिक्स टूलकिट और IDE, जो EC (प्रोग्रामिंग भाषा) में लिखा गया है और C और Python जैसी अतिरिक्त भाषाओं के समर्थन के साथ है। यह Emscripten या Binaryen (WebAssembly) के माध्यम से Linux, FreeBSD, Windows, Android, macOS और वेब को सपोर्ट करता है।
* Ecere SDK: एक GUI और 2D/3D ग्राफिक्स टूलकिट और IDE, जो EC (प्रोग्रामिंग भाषा) में लिखा गया है और C और Python जैसी अतिरिक्त भाषाओं के समर्थन के साथ है। यह Emscripten या Binaryen (WebAssembly) के माध्यम से लिनक्स, FreeBSD, Windows, Android, मैकओएसऔर वेब को सपोर्ट करता है।
* ग्रहण आईडीई: एक खुला स्रोत विकास वातावरण। जावा में एक विन्यास योग्य वास्तुकला के साथ लागू किया गया जो सॉफ्टवेयर विकास के लिए कई उपकरणों का समर्थन करता है। ऐड-ऑन जावा और सी++ सहित कई भाषाओं के लिए उपलब्ध हैं।
* ग्रहण आईडीई: एक खुला स्रोत विकास वातावरण। जावा में एक विन्यास योग्य वास्तुकला के साथ लागू किया गया जो सॉफ्टवेयर विकास के लिए कई उपकरणों का समर्थन करता है। ऐड-ऑन जावा और सी++ सहित कई भाषाओं के लिए उपलब्ध हैं।
* FLTK: एक ओपन-सोर्स टूलकिट, लेकिन अधिक हल्का क्योंकि यह खुद को GUI तक सीमित रखता है।
* FLTK: एक ओपन-सोर्स टूलकिट, लेकिन अधिक हल्का क्योंकि यह खुद को GUI तक सीमित रखता है।
* स्पंदन (सॉफ्टवेयर): Google द्वारा विकसित Android और iOS के लिए एक क्रॉस-प्लेटफ़ॉर्म UI फ्रेमवर्क।
* स्पंदन (सॉफ्टवेयर): Google द्वारा विकसित Android और iOS के लिए एक क्रॉस- पटलUI फ्रेमवर्क।
* fpGUI: एक ओपन-सोर्स विजेट टूलकिट जो पूरी तरह से ऑब्जेक्ट पास्कल में लागू किया गया है। यह वर्तमान में लिनक्स, विंडोज और कुछ विंडोज सीई का समर्थन करता है।
* fpGUI: एक ओपन-सोर्स विजेट टूलकिट जो पूरी तरह से ऑब्जेक्ट पास्कल में लागू किया गया है। यह वर्तमान में लिनक्स, विंडोज और कुछ विंडोज सीई का समर्थन करता है।
* जीनएक्सस: क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन निर्माण और परिनियोजन के लिए एक विंडोज़ रैपिड सॉफ़्टवेयर डेवलपमेंट सॉल्यूशन जो ज्ञान प्रतिनिधित्व और सी शार्प (प्रोग्रामिंग भाषा) का समर्थन करता है | एंड्रॉइड और ब्लैकबेरी स्मार्ट डिवाइस सहित सी #, कोबोल, जावा (प्रोग्रामिंग भाषा), ऑब्जेक्टिव-सी के लिए एप्पल इंक. मोबाइल डिवाइस, आईबीएम आरपीजी, रूबी (प्रोग्रामिंग भाषा), विजुअल बेसिक और विजुअल फॉक्सप्रो।
* जीनएक्सस: क्रॉस- पटलअनुप्रयोग निर्माण और परिनियोजन के लिए एक विंडोज़ रैपिड सॉफ़्टवेयर डेवलपमेंट सॉल्यूशन जो ज्ञान प्रतिनिधित्व और सी शार्प (प्रोग्रामिंग भाषा) का समर्थन करता है | एंड्रॉइड और ब्लैकबेरी स्मार्ट डिवाइस सहित सी #, कोबोल, जावा (प्रोग्रामिंग भाषा), ऑब्जेक्टिव-सी के लिए एप्पल इंक. मोबाइल डिवाइस, आईबीएम आरपीजी, रूबी (प्रोग्रामिंग भाषा), विजुअल बेसिक और विजुअल फॉक्सप्रो।
* GLBasic: एक बेसिक बोली और कंपाइलर जो C++ कोड जेनरेट करता है। इसमें कई प्लेटफार्मों के लिए क्रॉस कंपाइलर शामिल हैं और कई प्लेटफॉर्म (विंडोज, मैक, लिनक्स, एंड्रॉइड, आईओएस और कुछ विदेशी हैंडहेल्ड) का समर्थन करते हैं।
* GLBasic: एक बेसिक बोली और कंपाइलर जो C++ कोड जेनरेट करता है। इसमें कई प्लेटफार्मों के लिए क्रॉस कंपाइलर शामिल हैं और कई पटल (विंडोज, मैक, लिनक्स, एंड्रॉइड, आईओएस और कुछ विदेशी हैंडहेल्ड) का समर्थन करते हैं।
* गोडोट (गेम इंजन): एक एसडीके जो गोडोट इंजन का उपयोग करता है।
* गोडोट (गेम इंजन): एक एसडीके जो गोडोट इंजन का उपयोग करता है।
* GTK+: X11 और Microsoft Windows के साथ यूनिक्स जैसी प्रणालियों के लिए एक ओपन-सोर्स विजेट टूलकिट।
* GTK+: X11 और Microsoft Windows के साथ यूनिक्स जैसी प्रणालियों के लिए एक ओपन-सोर्स विजेट टूलकिट।
* Haxe: एक ओपन-सोर्स भाषा।
* Haxe: एक ओपन-सोर्स भाषा।
* जूस: C++ में लिखा गया एक एप्लिकेशन फ्रेमवर्क, कोड में बिना किसी बदलाव के, कई सिस्टम्स (Microsoft Windows, POSIX, macOS) पर नेटिव सॉफ्टवेयर लिखने के लिए इस्तेमाल किया जाता है।
* जूस: C++ में लिखा गया एक अनुप्रयोग फ्रेमवर्क, कोड में बिना किसी बदलाव के, कई सिस्टम्स (Microsoft Windows, POSIX, macOS) पर नेटिव सॉफ्टवेयर लिखने के लिए इस्तेमाल किया जाता है।
* किवी (फ्रेमवर्क): एक ओपन-सोर्स क्रॉस-प्लेटफॉर्म यूआई फ्रेमवर्क जो पायथन (प्रोग्रामिंग भाषा) में लिखा गया है। यह एंड्रॉइड (ऑपरेटिंग सिस्टम), आईओएस, लिनक्स, मैकओएस, माइक्रोसॉफ्ट विंडोज और रास्पबेरी पाई को सपोर्ट करता है।
* किवी (फ्रेमवर्क): एक ओपन-सोर्स क्रॉस-पटल यूआई फ्रेमवर्क जो पायथन (प्रोग्रामिंग भाषा) में लिखा गया है। यह एंड्रॉइड (ऑपरेटिंग सिस्टम), आईओएस, लिनक्स, मैकओएस, माइक्रोसॉफ्ट विंडोज और रास्पबेरी पाई को सपोर्ट करता है।
* लीडटूल: विंडोज, आईओएस, मैकओएस, एंड्रॉइड, लिनक्स और वेब एप्लिकेशन में मान्यता, दस्तावेज़, चिकित्सा, इमेजिंग और मल्टीमीडिया तकनीकों को एकीकृत करने के लिए क्रॉस-प्लेटफ़ॉर्म एसडीके लाइब्रेरी।<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>
* LiveCode: हाइपरटॉक से प्रेरित एक व्यावसायिक क्रॉस-प्लेटफ़ॉर्म रैपिड एप्लिकेशन डेवलपमेंट भाषा।
* LiveCode: हाइपरटॉक से प्रेरित एक व्यावसायिक क्रॉस- पटलरैपिड अनुप्रयोग डेवलपमेंट भाषा।
* लाजर (आईडीई): फ्रीपास्कल कंपाइलर के लिए एक प्रोग्रामिंग वातावरण। यह स्व-स्थायी ग्राफिकल और कंसोल अनुप्रयोगों के निर्माण का समर्थन करता है और Linux, MacOSX, iOS, Android, WinCE, Windows और WEB पर चलता है।
* लाजर (आईडीई): फ्रीपास्कल कंपाइलर के लिए एक प्रोग्रामिंग वातावरण। यह स्व-स्थायी ग्राफिकल और कंसोल अनुप्रयोगों के निर्माण का समर्थन करता है और लिनक्स, MacOSX, iOS, Android, WinCE, Windows और WEB पर चलता है।
* मैक्स (सॉफ़्टवेयर)|मैक्स/एमएसपी: एक विज़ुअल प्रोग्रामिंग भाषा जो प्लेटफ़ॉर्म-स्वतंत्र कोड को प्लेटफ़ॉर्म-विशिष्ट रनटाइम वातावरण के साथ macOS और Windows A क्रॉस-प्लेटफ़ॉर्म Android रनटाइम के लिए अनुप्रयोगों में समाहित करती है। यह अनमॉडिफाइड एंड्रॉइड ऐप्स को आईओएस और मैकओएस पर मूल रूप से चलाने की अनुमति देता है
* मैक्स (सॉफ़्टवेयर)|मैक्स/एमएसपी: एक विज़ुअल प्रोग्रामिंग भाषा जो पटल-स्वतंत्र कोड को पटल-विशिष्ट रनटाइम वातावरण के साथ मैकओएसऔर Windows A क्रॉस- पटलAndroid रनटाइम के लिए अनुप्रयोगों में समाहित करती है। यह अनमॉडिफाइड एंड्रॉइड ऐप्स को आईओएस और मैकओएस पर मूल रूप से चलाने की अनुमति देता है
* मेंडिक्स: एक क्लाउड-आधारित लो-कोड एप्लिकेशन डेवलपमेंट प्लेटफॉर्म।
* मेंडिक्स: एक क्लाउड-आधारित लो-कोड अनुप्रयोग डेवलपमेंट पटल।
* मोनोक्रॉस: एक ओपन-सोर्स मॉडल-व्यू-कंट्रोलर डिज़ाइन पैटर्न जहां मॉडल और कंट्रोलर क्रॉस-प्लेटफ़ॉर्म हैं लेकिन दृश्य प्लेटफ़ॉर्म-विशिष्ट है।<ref>{{Cite web|url=https://headworks.io/blog/12-benefits-of-Xamarin-Cross-platform-app-development|title=12 benefits of Xamarin Cross-platform app development|date=15 Mar 2019|website=HeadWorks}}</ref>
* मोनोक्रॉस: एक ओपन-सोर्स मॉडल-व्यू-कंट्रोलर परिकलन पैटर्न जहां मॉडल और कंट्रोलर क्रॉस- पटलहैं लेकिन दृश्य पटल-विशिष्ट है।<ref>{{Cite web|url=https://headworks.io/blog/12-benefits-of-Xamarin-Cross-platform-app-development|title=12 benefits of Xamarin Cross-platform app development|date=15 Mar 2019|website=HeadWorks}}</ref>
* मोनो (सॉफ्टवेयर): माइक्रोसॉफ्ट .NET का एक ओपन-सोर्स क्रॉस-प्लेटफॉर्म संस्करण (एप्लिकेशन और प्रोग्रामिंग भाषाओं के लिए एक ढांचा)
* मोनो (सॉफ्टवेयर): माइक्रोसॉफ्ट .NET का एक ओपन-सोर्स क्रॉस-पटल संस्करण (अनुप्रयोग और प्रोग्रामिंग भाषाओं के लिए एक ढांचा)
* MoSync: C++ परिवार में मोबाइल प्लेटफ़ॉर्म ऐप विकास के लिए एक ओपन-सोर्स SDK।
* MoSync: C++ परिवार में मोबाइल पटलऐप विकास के लिए एक ओपन-सोर्स SDK।
* मोज़िला एप्लिकेशन फ्रेमवर्क: मैकओएस, विंडोज और लिनक्स अनुप्रयोगों के निर्माण के लिए एक ओपन-सोर्स प्लेटफॉर्म।
* मोज़िला अनुप्रयोग फ्रेमवर्क: मैकओएस, विंडोज और लिनक्स अनुप्रयोगों के निर्माण के लिए एक ओपन-सोर्स पटल।
* एंड्रॉइड और आईओएस विकास के लिए एक क्रॉस-प्लेटफॉर्म जावास्क्रिप्ट / टाइपस्क्रिप्ट फ्रेमवर्क।
* एंड्रॉइड और आईओएस विकास के लिए एक क्रॉस-पटल जावास्क्रिप्ट / टाइपस्क्रिप्ट फ्रेमवर्क।
* ओपनजीएल: एक 3डी ग्राफिक्स लाइब्रेरी।
* ओपनजीएल: एक 3डी ग्राफिक्स लाइब्रेरी।
* पिक्सेल गेम मेकर एमवी: विंडोज़ और निन्टेंडो स्विच गेम विकसित करने के लिए विंडोज़ के लिए एक मालिकाना 2डी गेम डेवलपमेंट सॉफ्टवेयर।
* पिक्सेल गेम मेकर एमवी: विंडोज़ और निन्टेंडो स्विच गेम विकसित करने के लिए विंडोज़ के लिए एक मालिकाना 2डी गेम डेवलपमेंट सॉफ्टवेयर।
* PureBasic: macOS, Windows और Linux अनुप्रयोगों के निर्माण के लिए एक मालिकाना भाषा और IDE।
* PureBasic: macOS, Windows और लिनक्स अनुप्रयोगों के निर्माण के लिए एक मालिकाना भाषा और IDE।
* [https://renative.org ReNative]: रिएक्ट नेटिव के साथ मल्टी-प्लेटफ़ॉर्म प्रोजेक्ट बनाने के लिए यूनिवर्सल डेवलपमेंट SDK. नवीनतम iOS, TVOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS/OSX, Windows, KaiOS, Firefox OS और Firefox TV प्लेटफॉर्म शामिल हैं।
* [https://renative.org ReNative]: रिएक्ट नेटिव के साथ मल्टी- पटलप्रोजेक्ट बनाने के लिए यूनिवर्सल डेवलपमेंट SDK. नवीनतम iOS, TVOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS/OSX, Windows, KaiOS, Firefox OS और Firefox TV पटल शामिल हैं।
* क्यूटी (टूलकिट): यूनिक्स जैसी प्रणालियों के लिए एक्स11, माइक्रोसॉफ्ट विंडोज, मैकओएस और अन्य प्रणालियों के लिए एक एप्लीकेशन फ्रेमवर्क और विजेट टूलकिट - मालिकाना और ओपन-सोर्स लाइसेंस दोनों के तहत उपलब्ध है।
* क्यूटी (टूलकिट): यूनिक्स जैसी प्रणालियों के लिए एक्स11, माइक्रोसॉफ्ट विंडोज, मैकओएस और अन्य प्रणालियों के लिए एक एप्लीकेशन फ्रेमवर्क और विजेट टूलकिट - मालिकाना और ओपन-सोर्स लाइसेंस दोनों के तहत उपलब्ध है।
* सरल और तेज़ मल्टीमीडिया लाइब्रेरी: एक मल्टीमीडिया C++ एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस जो ग्राफिक्स, इनपुट, ऑडियो आदि के लिए निम्न और उच्च स्तर की पहुंच प्रदान करता है।
* सरल और तेज़ मल्टीमीडिया लाइब्रेरी: एक मल्टीमीडिया C++ अनुप्रयोग प्रोग्रामिंग इंटरफ़ेस जो ग्राफिक्स, इनपुट, ऑडियो आदि के लिए निम्न और उच्च स्तर की पहुंच प्रदान करता है।
* सिंपल डायरेक्टमीडिया लेयर: सी में लिखी गई एक ओपन-सोर्स मल्टीमीडिया लाइब्रेरी जो विभिन्न प्लेटफॉर्म के ग्राफिक्स, साउंड और इनपुट एप्लिकेशन प्रोग्रामिंग इंटरफेस पर एक एब्स्ट्रैक्शन बनाती है। यह लिनक्स, विंडोज और मैकओएस सहित ओएस पर चलता है और इसका उद्देश्य गेम और मल्टीमीडिया एप्लिकेशन है।
* सिंपल डायरेक्टमीडिया लेयर: सी में लिखी गई एक ओपन-सोर्स मल्टीमीडिया लाइब्रेरी जो विभिन्न पटल के ग्राफिक्स, साउंड और इनपुट अनुप्रयोग प्रोग्रामिंग इंटरफेस पर एक एब्स्ट्रैक्शन बनाती है। यह लिनक्स, विंडोज और मैकओएस सहित ओएस पर चलता है और इसका उद्देश्य गेम और मल्टीमीडिया अनुप्रयोग है।
* स्मार्टफेस: जावास्क्रिप्ट कोड एडिटर के साथ WYSIWYG डिज़ाइन एडिटर का उपयोग करके Android और iOS के लिए मोबाइल एप्लिकेशन बनाने के लिए एक देशी ऐप डेवलपमेंट टूल।
* स्मार्टफेस: जावास्क्रिप्ट कोड एडिटर के साथ WYSIWYG परिकलन एडिटर का उपयोग करके Android और iOS के लिए मोबाइल अनुप्रयोग बनाने के लिए एक देशी ऐप डेवलपमेंट टूल।
* टीसीएल / टीके
* टीसीएल / टीके
* अल्टीमेट++: एक सी++ रैपिड एप्लिकेशन डेवलपमेंट फ्रेमवर्क जो प्रोग्रामर की उत्पादकता पर केंद्रित है। इसमें पुस्तकालयों का एक सेट (जीयूआई, एसक्यूएल, आदि..), और एक एकीकृत विकास वातावरण शामिल है। यह विंडोज और यूनिक्स जैसे ओएस-एस को सपोर्ट करता है।
* अल्टीमेट++: एक सी++ रैपिड अनुप्रयोग डेवलपमेंट फ्रेमवर्क जो प्रोग्रामर की उत्पादकता पर केंद्रित है। इसमें पुस्तकालयों का एक सेट (जीयूआई, एसक्यूएल, आदि..), और एक एकीकृत विकास वातावरण शामिल है। यह विंडोज और यूनिक्स जैसे ओएस-एस को सपोर्ट करता है।
* यूनिटी (गेम इंजन): एक और क्रॉस-प्लेटफॉर्म एसडीके जो यूनिटी इंजन का उपयोग करता है।
* यूनिटी (गेम इंजन): एक और क्रॉस-पटल एसडीके जो यूनिटी इंजन का उपयोग करता है।
* यूनो प्लेटफॉर्म: विंडोज, मैकओएस, आईओएस, एंड्रॉइड, वेबअसेंबली और लिनक्स सी # का उपयोग कर रहे हैं।
* यूनो पटल: विंडोज, मैकओएस, आईओएस, एंड्रॉइड, वेबअसेंबली और लिनक्स सी # का उपयोग कर रहे हैं।
* अवास्तविक इंजन: एक क्रॉस-प्लेटफ़ॉर्म एसडीके जो अवास्तविक इंजन का उपयोग करता है।
* अवास्तविक इंजन: एक क्रॉस- पटलएसडीके जो अवास्तविक इंजन का उपयोग करता है।
* वी-प्ले इंजन: वी-प्ले लोकप्रिय क्यूटी ढांचे पर आधारित एक क्रॉस-प्लेटफॉर्म विकास एसडीके है। V-Play ऐप्स और गेम Qt ​​Creator के भीतर बनाए जाते हैं।
* वी-प्ले इंजन: वी-प्ले लोकप्रिय क्यूटी ढांचे पर आधारित एक क्रॉस-पटल विकास एसडीके है। V-Play ऐप्स और गेम Qt ​​Creator के भीतर बनाए जाते हैं।
* वेवमेकर: उत्तरदायी वेब और हाइब्रिड मोबाइल (एंड्रॉइड और आईओएस) एप्लिकेशन बनाने के लिए एक कम-कोड विकास उपकरण।
* वेवमेकर: उत्तरदायी वेब और हाइब्रिड मोबाइल (एंड्रॉइड और आईओएस) अनुप्रयोग बनाने के लिए एक कम-कोड विकास उपकरण।
* विनडेव: विंडोज, लिनक्स, नेट और जावा, और वेब ब्राउज़र के लिए एक एकीकृत विकास पर्यावरण। व्यापार और औद्योगिक अनुप्रयोगों के लिए अनुकूलित।
* विनडेव: विंडोज, लिनक्स, नेट और जावा, और वेब ब्राउज़र के लिए एक एकीकृत विकास पर्यावरण। व्यापार और औद्योगिक अनुप्रयोगों के लिए अनुकूलित।
* wxwidgets: एक ओपन-सोर्स विजेट टूलकिट जो एक एप्लीकेशन फ्रेमवर्क भी है।<ref name="wxwidgets">[http://wxwidgets.org/ WxWidgets Description]</ref> यह X11, Microsoft Windows और macOS के साथ यूनिक्स जैसे सिस्टम पर चलता है।
* wxwidgets: एक ओपन-सोर्स विजेट टूलकिट जो एक एप्लीकेशन फ्रेमवर्क भी है।<ref name="wxwidgets">[http://wxwidgets.org/ WxWidgets Description]</ref> यह X11, Microsoft Windows और मैकओएसके साथ यूनिक्स जैसे सिस्टम पर चलता है।
* Xojo: एक RAD IDE जो डेस्कटॉप, वेब और iOS ऐप बनाने के लिए ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा का उपयोग करता है। Xojo macOS, Windows, Linux और रास्पबेरी पाई के लिए देशी, संकलित डेस्कटॉप ऐप बनाती है। यह संकलित वेब ऐप बनाता है जिसे स्टैंडअलोन सर्वर के रूप में या CGI के माध्यम से चलाया जा सकता है। और इसने हाल ही में देशी iOS ऐप बनाने की क्षमता जोड़ी है।
* Xojo: एक RAD IDE जो डेस्कटॉप, वेब और iOS ऐप बनाने के लिए ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा का उपयोग करता है। Xojo macOS, Windows, लिनक्स और रास्पबेरी पाई के लिए देशी, संकलित डेस्कटॉप ऐप बनाती है। यह संकलित वेब ऐप बनाता है जिसे स्टैंडअलोन सर्वर के रूप में या CGI के माध्यम से चलाया जा सकता है। और इसने हाल ही में देशी iOS ऐप बनाने की क्षमता जोड़ी है।


==चुनौतियाँ ==
==चुनौतियाँ ==
क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर विकसित करते समय कई चुनौतियाँ हैं।
क्रॉस- पटलसॉफ़्टवेयर विकसित करते समय कई चुनौतियाँ हैं।


* क्रॉस-प्लेटफ़ॉर्म अनुप्रयोगों का परीक्षण करना काफी अधिक जटिल हो सकता है, क्योंकि विभिन्न प्लेटफ़ॉर्म थोड़े भिन्न व्यवहार या सूक्ष्म बग प्रदर्शित कर सकते हैं। इस समस्या ने कुछ डेवलपर्स को क्रॉस-प्लेटफ़ॉर्म विकास को "एक बार लिखें, हर जगह डीबग करें", सन माइक्रोसिस्टम्स पर एक टेक "एक बार लिखें, कहीं भी चलाएं" मार्केटिंग नारा के रूप में उपहास करने के लिए प्रेरित किया है।
* क्रॉस- पटलअनुप्रयोगों का परीक्षण करना काफी अधिक जटिल हो सकता है, क्योंकि विभिन्न पटलथोड़े भिन्न व्यवहार या सूक्ष्म बग प्रदर्शित कर सकते हैं। इस समस्या ने कुछ डेवलपर्स को क्रॉस- पटलविकास को "एक बार लिखें, हर जगह डीबग करें", सन माइक्रोसिस्टम्स पर एक टेक "एक बार लिखें, कहीं भी चलाएं" मार्केटिंग नारा के रूप में उपहास करने के लिए प्रेरित किया है।
* डेवलपर्स अक्सर सुविधाओं के सबसे कम सामान्य भाजक का उपयोग करने के लिए प्रतिबंधित होते हैं जो सभी प्लेटफार्मों पर उपलब्ध होते हैं। यह एप्लिकेशन के प्रदर्शन में बाधा डाल सकता है या डेवलपर्स को प्रत्येक प्लेटफॉर्म की सबसे उन्नत सुविधाओं का उपयोग करने से रोक सकता है।
* डेवलपर्स अक्सर सुविधाओं के सबसे कम सामान्य भाजक का उपयोग करने के लिए प्रतिबंधित होते हैं जो सभी प्लेटफार्मों पर उपलब्ध होते हैं। यह अनुप्रयोग के प्रदर्शन में बाधा डाल सकता है या डेवलपर्स को प्रत्येक पटल की सबसे उन्नत सुविधाओं का उपयोग करने से रोक सकता है।
* अलग-अलग प्लेटफॉर्म में अक्सर अलग-अलग यूजर इंटरफेस कन्वेंशन होते हैं, जो क्रॉस-प्लेटफॉर्म एप्लिकेशन हमेशा समायोजित नहीं होते हैं। उदाहरण के लिए, macOS और GNOME के ​​लिए विकसित किए गए एप्लिकेशन को विंडो या डायलॉग के दाईं ओर सबसे महत्वपूर्ण बटन रखना चाहिए, जबकि Microsoft Windows और KDE में विपरीत परंपरा है। हालांकि इनमें से कई अंतर सूक्ष्म हैं, एक क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन जो इन सम्मेलनों के अनुरूप नहीं है, उपयोगकर्ता के लिए भद्दा या विदेशी लग सकता है। तेजी से काम करते समय, इस तरह के विरोधी सम्मेलनों के परिणामस्वरूप डेटा हानि भी हो सकती है, जैसे एक संवाद बॉक्स में यह पुष्टि करना कि परिवर्तनों को सहेजना या त्यागना है या नहीं।
* अलग-अलग पटल में अक्सर अलग-अलग यूजर इंटरफेस कन्वेंशन होते हैं, जो क्रॉस-पटल अनुप्रयोग हमेशा समायोजित नहीं होते हैं। उदाहरण के लिए, मैकओएसऔर GNOME के ​​लिए विकसित किए गए अनुप्रयोग को विंडो या डायलॉग के दाईं ओर सबसे महत्वपूर्ण बटन रखना चाहिए, जबकि Microsoft Windows और KDE में विपरीत परंपरा है। हालांकि इनमें से कई अंतर सूक्ष्म हैं, एक क्रॉस- पटलअनुप्रयोग जो इन सम्मेलनों के अनुरूप नहीं है, उपयोगकर्ता के लिए भद्दा या विदेशी लग सकता है। तेजी से काम करते समय, इस तरह के विरोधी सम्मेलनों के परिणामस्वरूप डेटा हानि भी हो सकती है, जैसे एक संवाद बॉक्स में यह पुष्टि करना कि परिवर्तनों को सहेजना या त्यागना है या नहीं।
* स्क्रिप्टिंग भाषाओं और वीएम बाइटकोड को हर बार उपयोग किए जाने पर मूल निष्पादन योग्य कोड में अनुवादित किया जाना चाहिए, एक प्रदर्शन जुर्माना लगाया जाता है। जस्ट-इन-टाइम संकलन जैसी तकनीकों का उपयोग करके इस दंड को कम किया जा सकता है; लेकिन कुछ कम्प्यूटेशनल ओवरहेड अपरिहार्य हो सकते हैं।
* स्क्रिप्टिंग भाषाओं और वीएम बाइटकोड को हर बार उपयोग किए जाने पर मूल निष्पादन योग्य कोड में अनुवादित किया जाना चाहिए, एक प्रदर्शन जुर्माना लगाया जाता है। जस्ट-इन-टाइम संकलन जैसी तकनीकों का उपयोग करके इस दंड को कम किया जा सकता है; लेकिन कुछ कम्प्यूटेशनल ओवरहेड अपरिहार्य हो सकते हैं।
* विभिन्न प्लेटफार्मों को मूल पैकेज प्रारूपों जैसे आरपीएम और एमएसआई के उपयोग की आवश्यकता होती है। मल्टी-प्लेटफ़ॉर्म इंस्टॉलर जैसे कि InstallAnywhere इस आवश्यकता को पूरा करता है।
* विभिन्न प्लेटफार्मों को मूल संपुष्टि प्रारूपों जैसे आरपीएम और एमएसआई के उपयोग की आवश्यकता होती है। मल्टी- पटलइंस्टॉलर जैसे कि InstallAnywhere इस आवश्यकता को पूरा करता है।
* क्रॉस-प्लेटफ़ॉर्म निष्पादन परिवेशों को क्रॉस-प्लेटफ़ॉर्म सुरक्षा खामियों का सामना करना पड़ सकता है, जिससे क्रॉस-प्लेटफ़ॉर्म मैलवेयर के लिए एक उपजाऊ वातावरण बन सकता है।<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>
* क्रॉस- पटलनिष्पादन परिवेशों को क्रॉस- पटलसुरक्षा खामियों का सामना करना पड़ सकता है, जिससे क्रॉस- पटलमैलवेयर के लिए एक उपजाऊ वातावरण बन सकता है।<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 10:24, 4 November 2022

अभिकलन में, क्रॉस- पटल सॉफ़्टवेयर (जिसे मल्टी- पटल सॉफ़्टवेयर, पटल-अज्ञेय सॉफ़्टवेयर या पटल-स्वतंत्र सॉफ़्टवेयर भी कहा जाता है) अभिकलित्र सॉफ़्टवेयर (यंत्रेतर सामग्री) है जिसे कई अभिकलन पटल में काम करने के लिए परिकलन किया गया है।[1] कुछ क्रॉस- पटल सॉफ़्टवेयर के लिए प्रत्येक पटल के लिए एक अलग निर्माण की आवश्यकता होती है, लेकिन कुछ को विशेष तैयारी के बिना किसी भी पटल पर सीधे चलाया जा सकता है, व्याख्या की गई भाषा में लिखा जा रहा है या सुवाह्य बाइटकोड में संकलित किया जा सकता है जिसके लिए दुभाषिए या कार्यावधि संपुष्टि सामान्य या सभी समर्थित पटल के घटक मानक हैं। [2]

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

पटल

पटल उस प्रकार के संसाधक (सीपीयू) या अन्य हार्डवेयर को संदर्भित कर सकता है जिस पर एक ऑपरेटिंग सिस्टम (OS) या अनुप्रयोग चलता है, OS का प्रकार, या दोनों का संयोजन।[3] एक सामान्य पटल का एक उदाहरण x86 आर्किटेक्चर पर चलने वाला माइक्रोसॉफ्ट विंडोज ओएस है। अन्य प्रसिद्ध डेस्कटॉप पटल लिनक्स/यूनिक्स और मैकोज़ हैं - ये दोनों स्वयं क्रॉस- पटलहैं।[3]हालांकि, स्मार्टफोन जैसे कई डिवाइस हैं जो पटल भी हैं। अनुप्रयोग को किसी विशेष पटलकी सुविधाओं पर निर्भर करने के लिए लिखा जा सकता है - या तो हार्डवेयर, ओएस, या वर्चुअल मशीन (वीएम) जिस पर वह चलता है। उदाहरण के लिए, जावा पटल एक सामान्य वीएम पटल है जो कई ओएस और हार्डवेयर प्रकारों पर चलता है।[4]

हार्डवेयर

एक हार्डवेयर पटल एक निर्देश सेट आर्किटेक्चर को संदर्भित कर सकता है। उदाहरण के लिए: x86 आर्किटेक्चर और इसके वेरिएंट जैसे IA-32 और x86-64। ये मशीनें अक्सर माइक्रोसॉफ्ट विंडोज का एक संस्करण चलाती हैं,[5]हालांकि वे लिनक्स, ओपनबीएसडी, नेटबीएसडी, मैकओएस और फ्रीबीएसडी सहित अन्य ओएस चला सकती हैं।

32-बिट एआरएम आर्किटेक्चर (और नया 64-बिट संस्करण) स्मार्टफोन और टैबलेट अभिकलित्र पर आम है, जो एंड्रॉइड, आईओएस और अन्य मोबाइल ऑपरेटिंग सिस्टम चलाते हैं।

सॉफ़्टवेयर

एक सॉफ्टवेयर पटल या तो एक ओएस या प्रोग्रामिंग वातावरण हो सकता है, हालांकि आमतौर पर यह दोनों का संयोजन होता है। एक अपवाद जावा है, जो जावा बाइटकोड को निष्पादित करने के लिए ओएस-स्वतंत्र वीएम का उपयोग करता है। सॉफ्टवेयर पटल के उदाहरण हैं:

  • ब्लैकबेरी 10
  • स्मार्टफोन और टैबलेट अभिकलित्र (x86, एआरएम) के लिए एंड्रॉइड (ऑपरेटिंग सिस्टम)
  • आईओएस (एआरएम)
  • माइक्रोसॉफ्ट विंडोज (x86, एआरएम)
    • माइक्रोसॉफ्ट का कॉमन लैंग्वेज इंफ्रास्ट्रक्चर (सीएलआई), जिसे .NET फ्रेमवर्क के नाम से भी जाना जाता है
    • क्रॉस- पटलसंस्करण मोनो (सॉफ़्टवेयर) (पहले नोवेल द्वारा और अब ज़ामरीन द्वारा)[6])
  • जावा (प्रोग्रामिंग भाषा)
  • वेब ब्राउज़र - कमोबेश एक-दूसरे के साथ संगत, जावास्क्रिप्ट वेब-ऐप्स चला रहे हैं
  • लिनक्स (x86, PowerPC, ARM, और अन्य आर्किटेक्चर)
  • मैकोज़ (x86, पावरपीसी (10.5 और नीचे पर), और एआरएम[7] (Apple सिलिकॉन या 11.0 और उससे अधिक पर))
  • मेंडिक्स
  • सोलारिस (ऑपरेटिंग सिस्टम) (SPARC, x86)
  • सिम्बियनओएस
  • स्पार्क
  • प्लेस्टेशन 4 (x86), प्लेस्टेशन 3 (पावरपीसी) और प्लेस्टेशन वीटा (एआरएम)
  • यूनिक्स
  • एक्सबॉक्स
मामूली/ऐतिहासिक
  • AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
  • अटारी टीओएस, मिंट
  • बीएसडी (कई पटल; नेटबीएसडीनेट देखें,[clarification needed] उदाहरण के लिए)
  • x86 पर डॉस-टाइप सिस्टम: MS-DOS, PC DOS, DR-DOS, FreeDOS
  • ओएस/2, ईकॉमस्टेशन

जावा <स्पैन क्लास= एंकर आईडी= जावा पटल>

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

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

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

कार्यान्वयन

सॉफ़्टवेयर को क्रॉस- पटलमाना जाने के लिए, इसे एक से अधिक अभिकलित्र आर्किटेक्चर या OS पर कार्य करना चाहिए। ऐसे सॉफ़्टवेयर को विकसित करना एक समय लेने वाला कार्य हो सकता है क्योंकि अलग-अलग OS में अलग-अलग अनुप्रयोग प्रोग्रामिंग इंटरफेस (API) होते हैं। उदाहरण के लिए, लिनक्स Windows से भिन्न API का उपयोग करता है।

हो सकता है कि एक OS के लिए लिखा गया सॉफ़्टवेयर उन सभी आर्किटेक्चर पर स्वचालित रूप से काम न करे जो OS समर्थित करता है। एक उदाहरण OpenOffice.org है, जो 2006 में मूल रूप से AMD64 या Intel 64 संसाधक पर x86-64 मानकों को लागू करने पर नहीं चलता था; 2012 तक इसे "ज्यादातर" इन प्रणालियों में पोर्ट किया गया था।[8] सिर्फ इसलिए कि सॉफ्टवेयर एक लोकप्रिय प्रोग्रामिंग भाषा जैसे सी या सी ++ में लिखा गया है, इसका मतलब यह नहीं है कि यह उन सभी ओएस पर चलेगा जो उस भाषा का समर्थन करते हैं- या यहां तक ​​कि एक ही ओएस के विभिन्न संस्करणों पर भी।

वेब अनुप्रयोग

वेब अनुप्रयोगों को आम तौर पर क्रॉस- पटलके रूप में वर्णित किया जाता है, क्योंकि आदर्श रूप से, वे किसी भी वेब ब्राउज़र से पहुंच योग्य होते हैं: ब्राउज़र पटलहै। वेब अनुप्रयोग आमतौर पर क्लाइंट-सर्वर मॉडल का उपयोग करते हैं, लेकिन जटिलता और कार्यक्षमता में व्यापक रूप से भिन्न होते हैं। अनुकूलता की आवश्यकता के साथ सुविधाओं की इच्छा को समेटना कठिन हो सकता है।

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

उन्नत वेब अनुप्रयोगों के प्रमुख उदाहरणों में जीमेल का वेब इंटरफेस, ए9.कॉम, गूगल मैप्स वेबसाइट और माइक्रोसॉफ्ट की लाइव सर्च सर्विस (अब बिंग) शामिल हैं। ऐसे अनुप्रयोग नियमित रूप से केवल लोकप्रिय वेब ब्राउज़र के हाल के संस्करणों में पाई जाने वाली अतिरिक्त सुविधाओं पर निर्भर करते हैं। इन सुविधाओं में अजाक्स, जावास्क्रिप्ट, डायनेमिक एचटीएमएल, एसवीजी, और समृद्ध वेब अनुप्रयोगों के अन्य घटक शामिल हैं। पुराने संस्करणों में अक्सर इनकी कमी होती है।

परिकलन

संगतता और कार्यक्षमता के प्रतिस्पर्धी हितों के कारण, कई परिकलन रणनीतियाँ सामने आई हैं।

कई सॉफ्टवेयर सिस्टम एक स्तरित आर्किटेक्चर का उपयोग करते हैं जहां पटल-निर्भर कोड ऊपरी और सबसे निचली परतों तक ही सीमित होता है।

ससम्मान पद अवनति

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

एकाधिक कोडबेस

कुछ सॉफ्टवेयर अलग-अलग (हार्डवेयर और ओएस) पटल के लिए अलग-अलग कोडबेस में समान कार्यक्षमता के साथ बनाए रखा जाता है। इसके लिए कोड को बनाए रखने के लिए अधिक प्रयास की आवश्यकता होती है, लेकिन यह सार्थक हो सकता है जहां पटल-विशिष्ट कोड की मात्रा अधिक हो।

सिंगल कोडबेस

यह रणनीति एक कोडबेस होने पर निर्भर करती है जिसे कई पटल-विशिष्ट स्वरूपों में संकलित किया जा सकता है। एक तकनीक सशर्त संकलन है। इस तकनीक के साथ, सभी प्लेटफार्मों के लिए सामान्य कोड दोहराया नहीं जाता है। कोड के ब्लॉक जो केवल कुछ पटल के लिए प्रासंगिक होते हैं, उन्हें सशर्त बनाया जाता है, ताकि जरूरत पड़ने पर ही उनकी व्याख्या या संकलन किया जा सके। एक अन्य तकनीक कार्यक्षमता का पृथक्करण है, जो ब्राउज़र या ओएस द्वारा समर्थित कार्यक्षमता को अक्षम करता है, जबकि उपयोगकर्ता को अभी भी एक पूर्ण अनुप्रयोग प्रदान करता है। (यह भी देखें: चिंताओं का पृथक्करण।) इस तकनीक का उपयोग वेब विकास में किया जाता है जहां व्याख्या किए गए कोड (जैसा कि स्क्रिप्टिंग भाषाओं में) अलग-अलग ब्लॉकों को सशर्त रूप से निष्पादित करने के लिए चल रहे पटल को क्वेरी कर सकते हैं।[9]

तृतीय-पक्ष पुस्तकालय

तृतीय-पक्ष पुस्तकालय विक्रेता लॉक-इन की कीमत पर एकल, एकीकृत एपीआई के पीछे क्लाइंट भेदभाव की जटिलताओं को छिपाकर क्रॉस- पटलक्षमता को सरल बनाने का प्रयास करते हैं।

प्रतिक्रियात्मक वेब परिकलन

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

परिक्षण

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

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

पारंपरिक अनुप्रयोग

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

बाइनरी सॉफ्टवेयर

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

सॉफ़्टवेयर के लिए जो बाइनरी निष्पादन योग्य के रूप में वितरित किया जाता है, जैसे कि सी या सी ++ में लिखा गया है, प्रत्येक पटलके लिए एक सॉफ़्टवेयर निर्माण होना चाहिए, एक टूलसेट का उपयोग करके जो अनुवाद करता है-ट्रांसकंपाइल-एक एकल कोडबेस को कई बाइनरी निष्पादन योग्य बनाता है। उदाहरण के लिए, फ़ायरफ़ॉक्स, एक ओपन-सोर्स वेब ब्राउज़र, विंडोज, मैकओएस (पॉवरपीसी और x86 दोनों के माध्यम से जिसे ऐप्पल इंक एक यूनिवर्सल बाइनरी कहता है), लिनक्स और बीएसडी पर कई अभिकलित्र आर्किटेक्चर पर उपलब्ध है। चार पटल (इस मामले में, विंडोज, मैकओएस, लिनक्स और बीएसडी) अलग निष्पादन योग्य वितरण हैं, हालांकि वे बड़े पैमाने पर एक ही स्रोत कोड से आते हैं। दुर्लभ मामलों में, कई प्लेटफार्मों के लिए बनाए गए निष्पादन योग्य कोड को एक एकल निष्पादन योग्य फ़ाइल में जोड़ा जाता है जिसे वसा बाइनरी कहा जाता है।

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

पोर्टिंग का एक विकल्प क्रॉस- पटलवर्चुअलाइजेशन है, जहां एक पटल के लिए संकलित अनुप्रयोग स्रोत कोड या बायनेरिज़ के संशोधन के बिना दूसरे पर चल सकते हैं। उदाहरण के तौर पर, ऐप्पल का रोसेटा, जो इंटेल-आधारित मैकिंटोश अभिकलित्रों में बनाया गया है, मैक की पिछली पीढ़ी के लिए संकलित अनुप्रयोगों को चलाता है जो पावरपीसी सीपीयू का इस्तेमाल करते थे। एक अन्य उदाहरण IBM PowerVM Lx86 है, जो लिनक्स/x86 अनुप्रयोगों को लिनक्स/Power OS पर असंशोधित चलाने की अनुमति देता है।

क्रॉस- पटलबाइनरी सॉफ़्टवेयर का उदाहरण:

  • लिब्रे ऑफिस ऑफिस सुइट माइक्रोसॉफ्ट विंडोज, मैकओएस, कई लिनक्स वितरण, फ्रीबीएसडी, नेटबीएसडी, ओपनबीएसडी, एंड्रॉइड, आईओएस, आईपैडओएस, क्रोम ओएस, वेब-आधारित कोलाबोरा ऑनलाइन और कई अन्य के लिए बनाया गया है।[11][12] इनमें से कई IA-32, x86-64, ARM (ARMel, ARMhf, ARM64), MIPS, MIPSel, PowerPC, 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>

लिपियों और व्याख्या की गई भाषाएं

स्क्रिप्ट को क्रॉस- पटलमाना जा सकता है यदि उसका दुभाषिया कई प्लेटफार्मों पर उपलब्ध है और स्क्रिप्ट केवल भाषा में निर्मित सुविधाओं का उपयोग करती है। उदाहरण के लिए, यूनिक्स जैसी प्रणाली के लिए पायथन में लिखी गई एक स्क्रिप्ट संभवतः विंडोज़ पर बहुत कम या बिना किसी संशोधन के चलेगी, क्योंकि पायथन भी विंडोज़ पर चलता है; वास्तव में कई कार्यान्वयन हैं (उदाहरण के लिए .NET फ्रेमवर्क के लिए आयरनपीथन)। वही कई ओपन-सोर्स स्क्रिप्टिंग भाषाओं के लिए जाता है।

बाइनरी निष्पादन योग्य फ़ाइलों के विपरीत, एक ही स्क्रिप्ट का उपयोग उन सभी अभिकलित्रों पर किया जा सकता है जिनके पास स्क्रिप्ट की व्याख्या करने के लिए सॉफ़्टवेयर है। ऐसा इसलिए है क्योंकि स्क्रिप्ट आम तौर पर एक टेक्स्ट फ़ाइल में सादे पाठ में संग्रहीत होती है। कुछ मामूली मुद्दे हो सकते हैं, जैसे कि एक नई लाइन कैरेक्टर का प्रतिनिधित्व।

कुछ लोकप्रिय क्रॉस- पटलस्क्रिप्टिंग भाषाएँ हैं:

  • बैश - एक यूनिक्स शेल आमतौर पर लिनक्स और अन्य आधुनिक यूनिक्स जैसी प्रणालियों के साथ-साथ विंडोज पर सिग्विन पॉज़िक्स संगतता परत के माध्यम से चलता है।
  • पर्ल - पहली बार 1987 में जारी किया गया। सीजीआई प्रोग्रामिंग, छोटे सिस्टम प्रशासन कार्यों और बहुत कुछ के लिए उपयोग किया जाता है।
  • PHP - ज्यादातर वेब अनुप्रयोगों के लिए उपयोग किया जाता है।
  • पायथन - एक भाषा जो कार्यावधि दक्षता के बजाय तेजी से अनुप्रयोग विकास और लेखन में आसानी पर केंद्रित है।
  • रूबी - एक वस्तु-उन्मुख भाषा जिसका उद्देश्य पढ़ने में आसान होना है। रूबी ऑन रेल्स के माध्यम से वेब पर भी इस्तेमाल किया जा सकता है।
  • टीसीएल - एक गतिशील प्रोग्रामिंग भाषा, वेब और डेस्कटॉप अनुप्रयोगों, नेटवर्किंग, प्रशासन, परीक्षण और कई अन्य सहित उपयोगों की एक विस्तृत श्रृंखला के लिए उपयुक्त है।

वीडियो गेम

क्रॉस- पटलया मल्टी- पटलएक ऐसा शब्द है जो वीडियो गेम कंसोल की एक श्रृंखला पर जारी किए गए वीडियो गेम पर भी लागू हो सकता है। क्रॉस- पटलगेम के उदाहरणों में शामिल हैं: माइनर 2049er, टॉम्ब रेडर: लीजेंड, फीफा (वीडियो गेम सीरीज़), एनएचएल सीरीज़ और माइनक्राफ्ट।

प्रत्येक को विभिन्न प्रकार के गेमिंग पटल, जैसे कि Wii, PlayStation 3, Xbox 360, पर्सनल अभिकलित्र और मोबाइल डिवाइस पर रिलीज़ किया गया है।

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

डेवलपर्स और वीडियो गेम कंसोल निर्माताओं के बीच लाइसेंसिंग समझौतों के कारण कुछ गेम क्रॉस- पटलनहीं हो सकते हैं जो विकास को एक विशेष कंसोल तक सीमित करते हैं। उदाहरण के तौर पर, डिज्नी नवीनतम निन्टेंडो और सोनी गेम कंसोल पर रिलीज करने के इरादे से एक गेम बना सकता है। क्या डिज़्नी को पहले सोनी के साथ गेम का लाइसेंस देना चाहिए, इसके लिए गेम को केवल सोनी के कंसोल पर थोड़े समय के लिए कंसोल एक्सक्लूसिविटी के लिए रिलीज़ करने की आवश्यकता हो सकती है।

क्रॉस- पटलप्ले

कई डेवलपर्स ने विभिन्न प्लेटफार्मों का उपयोग करते हुए ऑनलाइन गेम खेलने के तरीके लागू किए हैं। Psyonix, Epic Games, Microsoft, और Valve Corporation सभी के पास ऐसी तकनीक है जो Xbox 360 और PlayStation 3 गेमर्स को पीसी गेमर्स के साथ खेलने की अनुमति देती है, जिससे उपभोक्ताओं को किस पटल का उपयोग करना है। पीसी और कंसोल गेम के बीच इस स्तर की अन्तरक्रियाशीलता की अनुमति देने वाला पहला गेम क्वैक 3 था।[13] क्रॉस- पटलऑनलाइन प्ले की सुविधा वाले गेम में रॉकेट लीग, फ़ाइनल फ़ैंटेसी XIV: ए रियलम रीबॉर्न, स्ट्रीट फाइटर वी, किलर इंस्टिंक्ट (2013 वीडियो गेम), पैरागॉन (वीडियो गेम) और फैबल फॉर्च्यून, और माइनक्राफ्ट शामिल हैं। 10, VR संस्करण, Minecraft - Pocket Edition और Xbox One।

प्रोग्रामिंग

क्रॉस- पटलप्रोग्रामिंग एक से अधिक पटलपर काम करने के लिए जानबूझकर सॉफ़्टवेयर लिखने का अभ्यास है।

दृष्टिकोण

क्रॉस- पटलअनुप्रयोग लिखने के विभिन्न तरीके हैं। एक तरीका अलग-अलग स्रोत ट्री में एक ही सॉफ़्टवेयर के कई संस्करण बनाना है- दूसरे शब्दों में, किसी अनुप्रयोग के Microsoft Windows संस्करण में स्रोत कोड फ़ाइलों का एक सेट और Apple Macintosh संस्करण दूसरा हो सकता है, जबकि एक मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर * निक्स सिस्टम में एक तिहाई हो सकता है। हालांकि यह सीधा है, केवल एक पटल के लिए विकसित होने की तुलना में बड़ी टीम को भुगतान करने या उत्पादों को अधिक धीरे-धीरे जारी करने में अधिक खर्च हो सकता है। इसके परिणामस्वरूप और अधिक बग्स को ट्रैक किया जा सकता है और उन्हें ठीक किया जा सकता है।

एक अन्य तरीका सॉफ्टवेयर का उपयोग करना है जो प्लेटफार्मों के बीच के अंतर को छुपाता है। यह अमूर्त परत पटल से अनुप्रयोग को इंसुलेट करती है। ऐसे अनुप्रयोग पटल अज्ञेयवादी हैं। JVM पर चलने वाले अनुप्रयोग इस तरह से बनाए जाते हैं।

कुछ अनुप्रयोग अंतिम अनुप्रयोग बनाने के लिए क्रॉस- पटलप्रोग्रामिंग के विभिन्न तरीकों को मिलाते हैं। एक उदाहरण फ़ायरफ़ॉक्स वेब ब्राउज़र है, जो कुछ निचले स्तर के घटकों के निर्माण के लिए अमूर्तता का उपयोग करता है, पटल-विशिष्ट सुविधाओं (जैसे जीयूआई) को लागू करने के लिए अलग स्रोत उपट्री के साथ, और सॉफ़्टवेयर पोर्टेबिलिटी को आसान बनाने के लिए एक से अधिक स्क्रिप्टिंग भाषा का कार्यान्वयन . फ़ायरफ़ॉक्स क्लासिक नेटस्केप-शैली ब्राउज़र प्लगइन्स के अलावा, ब्राउज़र को विस्तारित करने के लिए XUL, कैस्केडिंग स्टाइल शीट्स और जावास्क्रिप्ट को लागू करता है। अधिकांश ब्राउज़र स्वयं XUL, CSS और जावास्क्रिप्ट में लिखा गया है।

टूलकिट और परिवेश

कई उपकरण हैं[14][15] क्रॉस- पटलप्रोग्रामिंग की प्रक्रिया में सहायता के लिए उपलब्ध:

  • 8 वीं (भाषा): एक विकास भाषा जो जूस को अपनी जीयूआई परत के रूप में उपयोग करती है। यह वर्तमान में एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स और रास्पबेरी पाई का समर्थन करता है।
  • अनंत अभिकलन: एक मोबाइल अनुप्रयोग पटल जो सभी भारतीय भाषाओं में काम करता है, जिसमें उनके कीबोर्ड भी शामिल हैं, और सभी ओएस में ऐप वॉलेट और मूल प्रदर्शन का भी समर्थन करता है।
  • AppearIQ: एक ढांचा जो उद्यम वातावरण में ऐप विकास और परिनियोजन के वर्कफ़्लो का समर्थन करता है। मूल रूप से विकसित कंटेनर एक एपीआई से एचटीएमएल 5 कोड के माध्यम से मोबाइल उपकरणों या टैबलेट की हार्डवेयर सुविधाओं को प्रस्तुत करते हैं और इस प्रकार विभिन्न प्लेटफार्मों पर चलने वाले मोबाइल ऐप के विकास की सुविधा प्रदान करते हैं।
  • बोडेन (सॉफ्टवेयर): C++ में लिखा गया UI फ्रेमवर्क।
  • काहिरा (ग्राफिक्स): एक मुफ्त सॉफ्टवेयर लाइब्रेरी जिसका उपयोग वेक्टर ग्राफिक्स-आधारित, डिवाइस-स्वतंत्र एपीआई प्रदान करने के लिए किया जाता है। यह कई अलग-अलग बैकएंड में 2-आयामी ड्राइंग के लिए प्राइमेटिव प्रदान करने के लिए परिकलन किया गया है। काहिरा सी में लिखा गया है और कई प्रोग्रामिंग भाषाओं के लिए बाध्यकारी है।
  • Cocos2d: 2D और सरल 3D क्रॉस- पटलगेम और अनुप्रयोग विकसित करने के लिए एक ओपन-सोर्स टूलकिट और गेम इंजन।
  • कोडनेम वन: जावा और कोटलिन डेवलपर्स के लिए एक ओपन-सोर्स राइट वन्स रन एनीवेयर (WORA) फ्रेमवर्क।
  • डेल्फी (प्रोग्रामिंग भाषा): एक आईडीई जो विकास के लिए पास्कल-आधारित भाषा का उपयोग करता है। यह एंड्रॉइड, आईओएस, विंडोज, मैकओएस, लिनक्स को सपोर्ट करता है।
  • Ecere SDK: एक GUI और 2D/3D ग्राफिक्स टूलकिट और IDE, जो EC (प्रोग्रामिंग भाषा) में लिखा गया है और C और Python जैसी अतिरिक्त भाषाओं के समर्थन के साथ है। यह Emscripten या Binaryen (WebAssembly) के माध्यम से लिनक्स, FreeBSD, Windows, Android, मैकओएसऔर वेब को सपोर्ट करता है।
  • ग्रहण आईडीई: एक खुला स्रोत विकास वातावरण। जावा में एक विन्यास योग्य वास्तुकला के साथ लागू किया गया जो सॉफ्टवेयर विकास के लिए कई उपकरणों का समर्थन करता है। ऐड-ऑन जावा और सी++ सहित कई भाषाओं के लिए उपलब्ध हैं।
  • FLTK: एक ओपन-सोर्स टूलकिट, लेकिन अधिक हल्का क्योंकि यह खुद को GUI तक सीमित रखता है।
  • स्पंदन (सॉफ्टवेयर): Google द्वारा विकसित Android और iOS के लिए एक क्रॉस- पटलUI फ्रेमवर्क।
  • fpGUI: एक ओपन-सोर्स विजेट टूलकिट जो पूरी तरह से ऑब्जेक्ट पास्कल में लागू किया गया है। यह वर्तमान में लिनक्स, विंडोज और कुछ विंडोज सीई का समर्थन करता है।
  • जीनएक्सस: क्रॉस- पटलअनुप्रयोग निर्माण और परिनियोजन के लिए एक विंडोज़ रैपिड सॉफ़्टवेयर डेवलपमेंट सॉल्यूशन जो ज्ञान प्रतिनिधित्व और सी शार्प (प्रोग्रामिंग भाषा) का समर्थन करता है | एंड्रॉइड और ब्लैकबेरी स्मार्ट डिवाइस सहित सी #, कोबोल, जावा (प्रोग्रामिंग भाषा), ऑब्जेक्टिव-सी के लिए एप्पल इंक. मोबाइल डिवाइस, आईबीएम आरपीजी, रूबी (प्रोग्रामिंग भाषा), विजुअल बेसिक और विजुअल फॉक्सप्रो।
  • GLBasic: एक बेसिक बोली और कंपाइलर जो C++ कोड जेनरेट करता है। इसमें कई प्लेटफार्मों के लिए क्रॉस कंपाइलर शामिल हैं और कई पटल (विंडोज, मैक, लिनक्स, एंड्रॉइड, आईओएस और कुछ विदेशी हैंडहेल्ड) का समर्थन करते हैं।
  • गोडोट (गेम इंजन): एक एसडीके जो गोडोट इंजन का उपयोग करता है।
  • GTK+: X11 और Microsoft Windows के साथ यूनिक्स जैसी प्रणालियों के लिए एक ओपन-सोर्स विजेट टूलकिट।
  • Haxe: एक ओपन-सोर्स भाषा।
  • जूस: C++ में लिखा गया एक अनुप्रयोग फ्रेमवर्क, कोड में बिना किसी बदलाव के, कई सिस्टम्स (Microsoft Windows, POSIX, macOS) पर नेटिव सॉफ्टवेयर लिखने के लिए इस्तेमाल किया जाता है।
  • किवी (फ्रेमवर्क): एक ओपन-सोर्स क्रॉस-पटल यूआई फ्रेमवर्क जो पायथन (प्रोग्रामिंग भाषा) में लिखा गया है। यह एंड्रॉइड (ऑपरेटिंग सिस्टम), आईओएस, लिनक्स, मैकओएस, माइक्रोसॉफ्ट विंडोज और रास्पबेरी पाई को सपोर्ट करता है।
  • लीडटूल: विंडोज, आईओएस, मैकओएस, एंड्रॉइड, लिनक्स और वेब अनुप्रयोग में मान्यता, दस्तावेज़, चिकित्सा, इमेजिंग और मल्टीमीडिया तकनीकों को एकीकृत करने के लिए क्रॉस- पटलएसडीके लाइब्रेरी।[16]
  • LiveCode: हाइपरटॉक से प्रेरित एक व्यावसायिक क्रॉस- पटलरैपिड अनुप्रयोग डेवलपमेंट भाषा।
  • लाजर (आईडीई): फ्रीपास्कल कंपाइलर के लिए एक प्रोग्रामिंग वातावरण। यह स्व-स्थायी ग्राफिकल और कंसोल अनुप्रयोगों के निर्माण का समर्थन करता है और लिनक्स, MacOSX, iOS, Android, WinCE, Windows और WEB पर चलता है।
  • मैक्स (सॉफ़्टवेयर)|मैक्स/एमएसपी: एक विज़ुअल प्रोग्रामिंग भाषा जो पटल-स्वतंत्र कोड को पटल-विशिष्ट रनटाइम वातावरण के साथ मैकओएसऔर Windows A क्रॉस- पटलAndroid रनटाइम के लिए अनुप्रयोगों में समाहित करती है। यह अनमॉडिफाइड एंड्रॉइड ऐप्स को आईओएस और मैकओएस पर मूल रूप से चलाने की अनुमति देता है
  • मेंडिक्स: एक क्लाउड-आधारित लो-कोड अनुप्रयोग डेवलपमेंट पटल।
  • मोनोक्रॉस: एक ओपन-सोर्स मॉडल-व्यू-कंट्रोलर परिकलन पैटर्न जहां मॉडल और कंट्रोलर क्रॉस- पटलहैं लेकिन दृश्य पटल-विशिष्ट है।[17]
  • मोनो (सॉफ्टवेयर): माइक्रोसॉफ्ट .NET का एक ओपन-सोर्स क्रॉस-पटल संस्करण (अनुप्रयोग और प्रोग्रामिंग भाषाओं के लिए एक ढांचा)
  • MoSync: C++ परिवार में मोबाइल पटलऐप विकास के लिए एक ओपन-सोर्स SDK।
  • मोज़िला अनुप्रयोग फ्रेमवर्क: मैकओएस, विंडोज और लिनक्स अनुप्रयोगों के निर्माण के लिए एक ओपन-सोर्स पटल।
  • एंड्रॉइड और आईओएस विकास के लिए एक क्रॉस-पटल जावास्क्रिप्ट / टाइपस्क्रिप्ट फ्रेमवर्क।
  • ओपनजीएल: एक 3डी ग्राफिक्स लाइब्रेरी।
  • पिक्सेल गेम मेकर एमवी: विंडोज़ और निन्टेंडो स्विच गेम विकसित करने के लिए विंडोज़ के लिए एक मालिकाना 2डी गेम डेवलपमेंट सॉफ्टवेयर।
  • PureBasic: macOS, Windows और लिनक्स अनुप्रयोगों के निर्माण के लिए एक मालिकाना भाषा और IDE।
  • ReNative: रिएक्ट नेटिव के साथ मल्टी- पटलप्रोजेक्ट बनाने के लिए यूनिवर्सल डेवलपमेंट SDK. नवीनतम iOS, TVOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS/OSX, Windows, KaiOS, Firefox OS और Firefox TV पटल शामिल हैं।
  • क्यूटी (टूलकिट): यूनिक्स जैसी प्रणालियों के लिए एक्स11, माइक्रोसॉफ्ट विंडोज, मैकओएस और अन्य प्रणालियों के लिए एक एप्लीकेशन फ्रेमवर्क और विजेट टूलकिट - मालिकाना और ओपन-सोर्स लाइसेंस दोनों के तहत उपलब्ध है।
  • सरल और तेज़ मल्टीमीडिया लाइब्रेरी: एक मल्टीमीडिया C++ अनुप्रयोग प्रोग्रामिंग इंटरफ़ेस जो ग्राफिक्स, इनपुट, ऑडियो आदि के लिए निम्न और उच्च स्तर की पहुंच प्रदान करता है।
  • सिंपल डायरेक्टमीडिया लेयर: सी में लिखी गई एक ओपन-सोर्स मल्टीमीडिया लाइब्रेरी जो विभिन्न पटल के ग्राफिक्स, साउंड और इनपुट अनुप्रयोग प्रोग्रामिंग इंटरफेस पर एक एब्स्ट्रैक्शन बनाती है। यह लिनक्स, विंडोज और मैकओएस सहित ओएस पर चलता है और इसका उद्देश्य गेम और मल्टीमीडिया अनुप्रयोग है।
  • स्मार्टफेस: जावास्क्रिप्ट कोड एडिटर के साथ WYSIWYG परिकलन एडिटर का उपयोग करके Android और iOS के लिए मोबाइल अनुप्रयोग बनाने के लिए एक देशी ऐप डेवलपमेंट टूल।
  • टीसीएल / टीके
  • अल्टीमेट++: एक सी++ रैपिड अनुप्रयोग डेवलपमेंट फ्रेमवर्क जो प्रोग्रामर की उत्पादकता पर केंद्रित है। इसमें पुस्तकालयों का एक सेट (जीयूआई, एसक्यूएल, आदि..), और एक एकीकृत विकास वातावरण शामिल है। यह विंडोज और यूनिक्स जैसे ओएस-एस को सपोर्ट करता है।
  • यूनिटी (गेम इंजन): एक और क्रॉस-पटल एसडीके जो यूनिटी इंजन का उपयोग करता है।
  • यूनो पटल: विंडोज, मैकओएस, आईओएस, एंड्रॉइड, वेबअसेंबली और लिनक्स सी # का उपयोग कर रहे हैं।
  • अवास्तविक इंजन: एक क्रॉस- पटलएसडीके जो अवास्तविक इंजन का उपयोग करता है।
  • वी-प्ले इंजन: वी-प्ले लोकप्रिय क्यूटी ढांचे पर आधारित एक क्रॉस-पटल विकास एसडीके है। V-Play ऐप्स और गेम Qt ​​Creator के भीतर बनाए जाते हैं।
  • वेवमेकर: उत्तरदायी वेब और हाइब्रिड मोबाइल (एंड्रॉइड और आईओएस) अनुप्रयोग बनाने के लिए एक कम-कोड विकास उपकरण।
  • विनडेव: विंडोज, लिनक्स, नेट और जावा, और वेब ब्राउज़र के लिए एक एकीकृत विकास पर्यावरण। व्यापार और औद्योगिक अनुप्रयोगों के लिए अनुकूलित।
  • wxwidgets: एक ओपन-सोर्स विजेट टूलकिट जो एक एप्लीकेशन फ्रेमवर्क भी है।[18] यह X11, Microsoft Windows और मैकओएसके साथ यूनिक्स जैसे सिस्टम पर चलता है।
  • Xojo: एक RAD IDE जो डेस्कटॉप, वेब और iOS ऐप बनाने के लिए ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा का उपयोग करता है। Xojo macOS, Windows, लिनक्स और रास्पबेरी पाई के लिए देशी, संकलित डेस्कटॉप ऐप बनाती है। यह संकलित वेब ऐप बनाता है जिसे स्टैंडअलोन सर्वर के रूप में या CGI के माध्यम से चलाया जा सकता है। और इसने हाल ही में देशी iOS ऐप बनाने की क्षमता जोड़ी है।

चुनौतियाँ

क्रॉस- पटलसॉफ़्टवेयर विकसित करते समय कई चुनौतियाँ हैं।

  • क्रॉस- पटलअनुप्रयोगों का परीक्षण करना काफी अधिक जटिल हो सकता है, क्योंकि विभिन्न पटलथोड़े भिन्न व्यवहार या सूक्ष्म बग प्रदर्शित कर सकते हैं। इस समस्या ने कुछ डेवलपर्स को क्रॉस- पटलविकास को "एक बार लिखें, हर जगह डीबग करें", सन माइक्रोसिस्टम्स पर एक टेक "एक बार लिखें, कहीं भी चलाएं" मार्केटिंग नारा के रूप में उपहास करने के लिए प्रेरित किया है।
  • डेवलपर्स अक्सर सुविधाओं के सबसे कम सामान्य भाजक का उपयोग करने के लिए प्रतिबंधित होते हैं जो सभी प्लेटफार्मों पर उपलब्ध होते हैं। यह अनुप्रयोग के प्रदर्शन में बाधा डाल सकता है या डेवलपर्स को प्रत्येक पटल की सबसे उन्नत सुविधाओं का उपयोग करने से रोक सकता है।
  • अलग-अलग पटल में अक्सर अलग-अलग यूजर इंटरफेस कन्वेंशन होते हैं, जो क्रॉस-पटल अनुप्रयोग हमेशा समायोजित नहीं होते हैं। उदाहरण के लिए, मैकओएसऔर GNOME के ​​लिए विकसित किए गए अनुप्रयोग को विंडो या डायलॉग के दाईं ओर सबसे महत्वपूर्ण बटन रखना चाहिए, जबकि Microsoft Windows और KDE में विपरीत परंपरा है। हालांकि इनमें से कई अंतर सूक्ष्म हैं, एक क्रॉस- पटलअनुप्रयोग जो इन सम्मेलनों के अनुरूप नहीं है, उपयोगकर्ता के लिए भद्दा या विदेशी लग सकता है। तेजी से काम करते समय, इस तरह के विरोधी सम्मेलनों के परिणामस्वरूप डेटा हानि भी हो सकती है, जैसे एक संवाद बॉक्स में यह पुष्टि करना कि परिवर्तनों को सहेजना या त्यागना है या नहीं।
  • स्क्रिप्टिंग भाषाओं और वीएम बाइटकोड को हर बार उपयोग किए जाने पर मूल निष्पादन योग्य कोड में अनुवादित किया जाना चाहिए, एक प्रदर्शन जुर्माना लगाया जाता है। जस्ट-इन-टाइम संकलन जैसी तकनीकों का उपयोग करके इस दंड को कम किया जा सकता है; लेकिन कुछ कम्प्यूटेशनल ओवरहेड अपरिहार्य हो सकते हैं।
  • विभिन्न प्लेटफार्मों को मूल संपुष्टि प्रारूपों जैसे आरपीएम और एमएसआई के उपयोग की आवश्यकता होती है। मल्टी- पटलइंस्टॉलर जैसे कि InstallAnywhere इस आवश्यकता को पूरा करता है।
  • क्रॉस- पटलनिष्पादन परिवेशों को क्रॉस- पटलसुरक्षा खामियों का सामना करना पड़ सकता है, जिससे क्रॉस- पटलमैलवेयर के लिए एक उपजाऊ वातावरण बन सकता है।[19]

यह भी देखें

  • क्रॉस- पटलप्ले
  • हार्डवेयर-अज्ञेयवादी
  • सॉफ्टवेयर पोर्टेबिलिटी
  • क्रॉस- पटलप्ले का समर्थन करने वाले वीडियो गेम की सूची
  • विजेट टूलकिट की सूची
  • हार्डवेयर वर्चुअलाइजेशन
  • जावा (सॉफ्टवेयर पटल)
  • भाषा बंधन
  • ट्रांसकंपाइलर
  • बाइनरी-कोड संगतता
  • ज़ामरीन
  • मैसेजिंग पटल की उपयोगकर्ता सुविधाओं की तुलना
  • मोबाइल विकास ढांचे, जिनमें से कई क्रॉस-पटल हैं।

संदर्भ

  1. "Design Guidelines: Glossary". java.sun.com. Retrieved 2011-10-19.
  2. "SDD Technology blog: Definition of cross platform". SDD Technology. Retrieved 2020-10-18.
  3. 3.0 3.1 "Platform Definition". The Linux Information Project. Retrieved 2014-03-27.
  4. "Cross Platform Mobile App Development". Groovy Web. Retrieved 2020-03-27.
  5. On the Net Marketshare website, which has around 89% market share as of March 2011
  6. "About Mono". mono-project.com. Retrieved 2015-12-17.
  7. "Apple announces Mac transition to Apple silicon". Apple Newsroom (in English). Retrieved 2020-12-08.
  8. Porting to x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki. Wiki.services.openoffice.org (2012-06-22). Retrieved on 2013-07-17.
  9. Corti, Sascha P. (October 2011). "Browser and Feature Detection". MSDN Magazine. Retrieved 28 January 2014.
  10. 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.
  11. 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)
  12. "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)
  13. Cribba. Quake III Arena, Giant Bombcast, February 15, 2013.
  14. The GUI Toolkit, Framework Page
  15. "Platform Independent FAQ". Archived from the original on 2008-08-16. Retrieved 2009-04-25.
  16. "Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia". www.leadtools.com. Retrieved 2021-03-03.
  17. "12 benefits of Xamarin Cross-platform app development". HeadWorks. 15 Mar 2019.
  18. WxWidgets Description
  19. 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.


==