क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर
अभिकलन में, क्रॉस- पटल सॉफ़्टवेयर (जिसे मल्टी- पटल सॉफ़्टवेयर, पटल-अज्ञेय सॉफ़्टवेयर या पटल-स्वतंत्र सॉफ़्टवेयर भी कहा जाता है) अभिकलित्र सॉफ़्टवेयर (यंत्रेतर सामग्री) है जिसे कई अभिकलन पटल में काम करने के लिए परिकलन किया गया है।[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]
यह भी देखें
- क्रॉस- पटलप्ले
- हार्डवेयर-अज्ञेयवादी
- सॉफ्टवेयर पोर्टेबिलिटी
- क्रॉस- पटलप्ले का समर्थन करने वाले वीडियो गेम की सूची
- विजेट टूलकिट की सूची
- हार्डवेयर वर्चुअलाइजेशन
- जावा (सॉफ्टवेयर पटल)
- भाषा बंधन
- ट्रांसकंपाइलर
- बाइनरी-कोड संगतता
- ज़ामरीन
- मैसेजिंग पटल की उपयोगकर्ता सुविधाओं की तुलना
- मोबाइल विकास ढांचे, जिनमें से कई क्रॉस-पटल हैं।
संदर्भ
- ↑ "Design Guidelines: Glossary". java.sun.com. Retrieved 2011-10-19.
- ↑ "SDD Technology blog: Definition of cross platform". SDD Technology. Retrieved 2020-10-18.
- ↑ 3.0 3.1 "Platform Definition". The Linux Information Project. Retrieved 2014-03-27.
- ↑ "Cross Platform Mobile App Development". Groovy Web. Retrieved 2020-03-27.
- ↑ "About Mono". mono-project.com. Retrieved 2015-12-17.
- ↑ "Apple announces Mac transition to Apple silicon". Apple Newsroom (in English). Retrieved 2020-12-08.
- ↑ Porting to x86-64 (AMD64, EM64T) – Apache OpenOffice Wiki. Wiki.services.openoffice.org (2012-06-22). Retrieved on 2013-07-17.
- ↑ Corti, Sascha P. (October 2011). "Browser and Feature Detection". MSDN Magazine. Retrieved 28 January 2014.
- ↑ Choudhary, S.R. (2014). "Cross-platform testing and maintenance of web and mobile applications". Companion Proceedings of the 36th International Conference on Software Engineering - ICSE Companion 2014: 642–645. doi:10.1145/2591062.2591097. ISBN 9781450327688. S2CID 1903037.
- ↑ Mehrotra, Pranob (2020-12-01). "Collabora Office suite gets a new layout for Android tablets and Chromebooks". XDA-Developers. Retrieved 2021-01-15.
Collabora Office is a popular open-source alternative to the Microsoft Office suite. It's based on LibreOffice, and it's available on a variety of platforms, including Windows, Linux, iOS, and Android. This year in July, a major update for the office suite brought support for Chrome OS devices.
{{cite news}}
: CS1 maint: url-status (link) - ↑ "Collabora Office on iOS and Android Just got Better!". Adfinis. 2020-12-15. Retrieved 2021-01-15.
...touch optimized interfaces: one for tablets and one for phone screens. ...(iOS, iPadOS, Chromebooks, Android).
{{cite news}}
: CS1 maint: url-status (link) - ↑ Cribba. Quake III Arena, Giant Bombcast, February 15, 2013.
- ↑ The GUI Toolkit, Framework Page
- ↑ "Platform Independent FAQ". Archived from the original on 2008-08-16. Retrieved 2009-04-25.
- ↑ "Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia". www.leadtools.com. Retrieved 2021-03-03.
- ↑ "12 benefits of Xamarin Cross-platform app development". HeadWorks. 15 Mar 2019.
- ↑ WxWidgets Description
- ↑ Warren, Tom (2020-01-14). "Microsoft bids farewell to Windows 7 and the millions of PCs that still run it". The Verge (in English). Retrieved 2020-02-06.
==