Cross-platform {{For|a type of interchange between different lines in a metro system|cross-platform interchange}} {{unsourced|date=July 2008}} '''Cross-platform''' (also known as '''multi-platform''') is a term used in computing to refer to [[computer program]]s, [[operating system]]s, [[computer language]]s, [[programming language]]s, or other [[computer software]] and their implementations which can be made to work on multiple [[computer platform]]s. “Cross-platform” and “multi-platform” both refer to the idea that a given piece of computer software is able to be run on more than one computer platform. There are two major types of cross-platform software; one requires building for each platform that it supports (e.g., is written in a compiled language, such as [[Pascal (programming language)|Pascal]]), and the other one can be directly run on any platform which supports it (e.g., software written in an [[interpreted language]] such as [[Perl]], [[Python (programming language)|Python]], or [[shell script]]) or software written in a language which compiles to [[bytecode]] and the bytecode is redistributed (such as is the case with [[Java (programming language)|Java]] and languages used in the [[.NET Framework]]) such as [[Chrome (programming language)|Chrome]]. For example, a cross-platform [[application software|application]] may run on [[Microsoft Windows]] on the [[x86 architecture]], [[Linux]] on the [[x86 architecture]] and [[Mac OS X]] on either the [[PowerPC]] or [[x86]] based [[Apple Macintosh]] systems. A cross-platform [[application software|application]] may run on as many as all existing platforms, or on as few as two platforms. == Platforms == {{main|Platform (computing)}} A platform is a combination of hardware and software used to run software applications. A platform can be described simply as an operating system or computer architecture, or it could be the combination of both. Probably the most familiar platform is [[Microsoft Windows]] running on the [[x86 architecture]]. Other well-known desktop computer platforms include [[Linux]] and [[Mac OS X]] (both of which are themselves cross-platform). There are, however, many devices such as [[cellular telephones]] that are also effectively computer platforms but less commonly thought about in that way. [[Application software]] can be written to depend on the features of a particular platform—either the hardware, operating system, or virtual machine it runs on. The [[Java Platform|Java platform]] is a [[virtual machine]] platform which runs on many operating systems and hardware types, and is a common platform for software to be written for. === Hardware platforms === A '''hardware platform''' can refer to a computer’s [[computer architecture|architecture]] or [[processor architecture]]. For example, the [[x86]] and [[x86-64]] [[CPU]]s make up one of the most common [[computer architecture]]s in use in home machines today. These machines commonly run [[Microsoft Windows]], though they can run other [[operating system]]s as well, including [[Linux]], [[OpenBSD]], [[NetBSD]], [[Mac OS X]] and [[FreeBSD]]. === Software platforms === Software platforms can either be an [[operating system]] or programming environment, though more commonly it is a combination of both. A notable exception to this is [[Java (programming language)|Java]], which uses an [[operating system]] independent [[virtual machine]] for its [[compiled]] code, known in the world of Java as [[bytecode]]. Examples of software platforms include: * [[MS-DOS]] ([[x86]]), [[DR-DOS]] ([[x86]]), [[FreeDOS]] ([[x86]]) etc. * [[Microsoft Windows]] ([[x86]], [[x64]]) * [[Linux]] (x86, x64, [[PowerPC]], various other architectures) * [[Mac OS X]] (PowerPC, x86) * [[OS/2]], [[eComStation]] * [[AmigaOS]] ([[m68k]]), [[AROS]] (x86, PowerPC, m68k), [[MorphOS]] (PowerPC) * [[Java (programming language)|Java]] ==== Java platform ==== {{main|Java platform}} As previously noted, the [[Java platform]] is an exception to the general rule that an [[operating system]] is a software platform. The Java language provides a [[virtual machine]], or a “virtual CPU” which runs all of the code that is written for the language. This enables the same [[executable]] [[binary file|binary]] to run on all systems which support the Java software, through the [[Java Virtual Machine]]. Java [[executable]]s do not run directly on the [[operating system]]; that is, neither [[Microsoft Windows|Windows]] nor [[Linux]] execute Java programs directly. Because of this, however, Java is limited in that it does not directly support system-specific functionality. [[Java Native Interface|JNI]] can be used to access system specific functions, but then the code is likely no longer portable. Java programs can run on at least the [[Microsoft Windows]], [[Mac OS X]], [[Linux]], and [[Solaris Operating System|Solaris]] operating systems, and so the language is limited to functionality that exists on all these systems. This includes things such as [[computer networking]], [[Internet socket]]s, but not necessarily raw hardware [[input/output]]. == Cross-platform software == In order for software to be considered '''cross-platform''', it must be able to function on more than one [[computer architecture]] or [[operating system]]. This can be a time-consuming task given that different [[operating system]]s have different [[application programming interface]]s or [[application programming interface|API]]s (for example, [[Linux]] uses a different [[application programming interface|API]] for [[application software]] than [[Microsoft Windows|Windows]] does). Just because a particular [[operating system]] may run on different [[computer architecture]]s, that does not mean that the software written for that operating system will automatically work on all [[computer architecture|architecture]]s that the operating system supports. One example as of August, 2006 was [[OpenOffice.org]], which did not natively run on the [[AMD64]] or [[EM64T]] lines of processors implementing the [[x86-64]] [[64-bit]] standards for computers; this has since been changed, and the OpenOffice.org suite of software is “mostly” ported to these 64-bit systems[http://wiki.services.openoffice.org/wiki/Porting_to_x86-64_(AMD64,_EM64T)]. This also means that just because a program is written in a popular programming language such as [[C (programming language)|C]] or [[C++]], it does not mean it will run on all [[operating systems]] that support that [[programming language]]. === Web applications === [[Web application]]s are typically described as cross-platform because, ideally, they are accessible from any of various [[web browser]]s within different operating systems. Such applications generally employ a [[client-server]] system architecture, and vary widely in complexity and functionality. This wide variability significantly complicates the goal of cross-platform capability, which is routinely at odds with the goal of advanced functionality. ==== Basic applications ==== Basic web applications perform all or most processing from a [[Stateless server|stateless]] [[web server]], and pass the result to the client web browser. All user interaction with the application consists of simple exchanges of data requests and server responses. These types of applications were the norm in the early phases of [[World Wide Web]] application development. Such applications follow a simple [[Transaction processing|transaction]] model, identical to that of serving [[static web page]]s. Today, they are still relatively common, especially where cross-platform compatibility and simplicity are deemed more critical than advanced functionality. ==== Advanced applications ==== Prominent examples of advanced web applications include the Web interface to [[Gmail]], [[A9.com]], and the maps.live.com section of [[Live Search]]. Such advanced applications routinely depend on additional features found only in the more recent versions of popular web browsers. These dependencies include [[Ajax (programming)|Ajax]], [[JavaScript]], [[Dynamic HTML|“Dynamic” HTML]], [[SVG]], and other components of [[rich internet application]]s. Older versions of popular browsers tend to lack support for certain features. ==== Design strategies ==== Because of the competing interests of cross-platform compatibility and advanced functionality, numerous alternative web application design strategies have emerged. Such strategies include: =====Graceful degradation===== Graceful degradation attempts to provide the same or similar functionality to all users and platforms, while diminishing that functionality to a ‘least common denominator’ for more limited client browsers. For example, a user attempting to use a limited-feature browser to access Gmail may notice that Gmail switches to “Basic Mode,” with reduced functionality. Some view this strategy as a lesser form of cross-platform capability. =====Separation of functionality===== Separation of functionality attempts to simply omit those subsets of functionality that are not capable from within certain client browsers or operating systems, while still delivering a ‘complete’ application to the user. (see also [[Separation of concerns]]). =====Multiple codebase===== Multiple codebase applications present different versions of an application depending on the specific client in use. This strategy is arguably the most complicated and expensive way to fulfill cross-platform capability, since even different versions of the same client browser (within the same operating system) can differ dramatically between each other. This is further complicated by the support for “plugins” which may or may not be present for any given installation of a particular browser version. =====Third party libraries===== Third party libraries attempt to simplify cross-platform capability by ‘hiding’ the complexities of client differentiation behind a single, unified API. ==== Testing strategies ==== One complicated aspect of cross-platform web application design is the need for [[software testing]]. In addition to the complications mentioned previously, there is the additional restriction that some browsers prohibit installation of different versions of the same browser on the same operating system. Techniques such as [[full virtualization]] are sometimes used as a workaround for this problem. === Traditional applications === Although web applications are becoming increasingly popular, many computer users still use traditional [[application software]] which does not rely on a client/web-server architecture. The distinction between “traditional” and “web” applications is not always unambiguous, however, because applications have many different features, installation methods and architectures; and some of these can overlap and occur in ways that blur the distinction. Nevertheless, this simplifying distinction is a common and useful generalization. ==== Binary software ==== Traditionally in modern computing, application software has been distributed to end-users as '''binary images''', which are stored in [[executable]]s, a specific type of [[binary file]]. Such [[executable]]s only support the [[operating system]] and [[computer architecture]] that they were built for—which means that making a “cross-platform executable” would be something of a massive task, and is generally not done. For software that is distributed as a [[binary file|binary]] [[executable]], such as software written in [[C (programming language)|C]] or [[C++]], the programmer must [[software build|build the software]] for each different [[operating system]] and [[computer architecture]]. For example, [[Mozilla]] [[Mozilla Firefox|Firefox]], an open-source web browser, is available on [[Microsoft Windows]], [[Mac OS X]] (both [[PowerPC]] and [[x86]] through something Apple calls a '''[[Universal binary]]'''), and [[Linux]] on multiple computer architectures. The three platforms (in this case, [[Microsoft Windows|Windows]], [[Mac OS X]], and [[Linux]]) are separate [[executable]] distributions, although they come from the same [[source code]]. In the context of binary software, cross-platform programs are written in the source code and then “translated” to each system that it runs on through compiling it on different platforms. Also, software can be [[porting|ported]] to a new [[computer architecture]] or [[operating system]] so that the program becomes more cross-platform than it already is. For example, a program such as Firefox, which already runs on Windows on the x86 family, can be modified and re-built to run on Linux on the x86 (and potentially other architectures) as well. As an alternative to porting, cross-platform virtualization allows applications compiled for one CPU and operating system to run on a system with a different CPU and/or operating system, without modification to the source code or binaries. As an example, [[Apple Computer|Apple's]] [[Rosetta (software)|Rosetta]] software, which is built into [[Intel]]-based Apple Macintosh computers, runs applications compiled for the previous generation of Macs that used [[PowerPC]] CPUs. Another example is IBM PowerVM Lx86, which allows Linux/x86 applications to run unmodified on the Linux/Power operating system. ==== Scripts and [[interpreted language]]s ==== A script can be considered to be cross-platform if the [[scripting language]] is available on multiple platforms and the script only uses the facilities provided by the language. That is, a script written in [[Python (programming language)|Python]] for a [[Unix-like]] system will likely run with little or no modification on [[Microsoft Windows|Windows]], because Python also runs on [[Microsoft Windows|Windows]]; there is also more than one implementation of Python that will run the same scripts (e.g., [[IronPython]] for [[.NET Framework|.NET]]). The same goes for many of the [[open source]] [[programming language]]s that are available and are [[scripting language]]s. Unlike [[binary file|binary]] [[executable]]s, the same script can be used on all computers that have software to interpret the script. This is because the script is generally stored in [[plain text]] in a [[text file]]. There may be some issues, however, such as the type of [[newline|new line character]] that sits between the lines. Generally, however, little or no work has to be done to make a script written for one system, run on another. Some quite popular cross-platform scripting or [[interpreted language]]s are: * [[bash]]—A [[Unix shell]] commonly run on [[Linux]] and other modern [[Unix-like]] systems, as well as on [[Microsoft Windows|Windows]] via the [[Cygwin]] [[POSIX]] compatibility layer. * [[Python (programming language)|Python]]—A modern [[scripting language]] where the focus is on [[rapid application development]] and ease-of-writing, instead of program run-time efficiency. * [[Perl]]—A scripting language first released in 1987. Used for [[Common Gateway Interface|CGI]] [[WWW]] programming, small [[system administration]] tasks, and more. * [[PHP]]—A [[scripting language]] most popular in use on the [[WWW]] for [[web application]]s. * [[Ruby (programming language)|Ruby]]—A scripting language who's purpose is to be object-oriented and easy to read. Can also be used on the web through [[Ruby on Rails]]. * [[Tcl]] - A dynamic programming language, suitable for a wide range of uses, including web and desktop applications, networking, administration, testing and many more. ==== Video games ==== Cross-platform is a term that can also apply to [[video game]]s. Such games are released on a range of [[video game console]]s and [[handheld game console]]s, which are specialized [[computer]]s dedicated to the task of playing games (and thus, are a platform as any other computer). Examples of these games include: * [[Miner 2049er]], the first major multiplatform game * [[Phantasy Star Online]] * [[Lara Croft Tomb Raider: Legend]] * [[FIFA Series]] * [[Shadow of Legend]] … which are spread across a variety of platforms, such as the [[Nintendo GameCube]], [[PlayStation 2]], [[Xbox]], [[Personal computer|PC]], and [[mobile devices]]. In some cases, depending on the hardware of a particular system it may take longer than expected to create a video game across multiple platforms. So, a video game may only get released on a few platforms and then later released on the remaining platforms. Typically, this is what occurs when a new system is released, because the [[Video game developer|developer]]s of the video game need to become acquainted with the hardware and software associated with the new console. Some games may not become cross-platform because of licensing agreements between the [[Video game developer|developer]]s and the maker of the [[video game console]] which state that the game will only be made for one particular console. As an example, [[Disney]] could create a new game and wish to release it on the latest [[Nintendo]] and [[Sony]] game consoles. If [[Disney]] licenses the game with [[Sony]] first, [[Disney]] may be required to only release the game on [[Sony|Sony’s]] console for a short time, or indefinitely—effectively prohibiting the game from cross-platform at least for a period of time. Several developers have developed ways to play games online while using different platforms. Epic Games, Microsoft and Valve Software all have this technology, that allows Xbox 360 gamers and PS3 gamers to play with PC gamers, allowing gamers to finally decide which platform is the best for a game. The first game released to allow this interactivity between PC and Console games was [[Quake 3]]. Games that feature cross-platform online play include: *[[Champions Online]] *[[Lost Planet: Colonies]] *[[Phantasy Star Online]] *[[Shadowrun (2007 video game)|Shadowrun]] *[[UNO (Xbox Live Arcade)|UNO]] *[[Final Fantasy XI Online]] == Platform independent software == Software that is platform independent does not rely on any special features of any single platform, or, if it does, handles those special features such that it can deal with multiple platforms. All [[algorithm]]s, such as the [[quicksort]] algorithm, are able to be implemented on different platforms. == Cross-platform programming == Cross-platform programming is the practice of actively writing software that will work on more than one platform. === Approaches to cross-platform programming === There are different ways of approaching the problem of writing a cross-platform application program. One such approach is simply to create multiple versions of the same program in different ''source trees''—in other words, the [[Microsoft Windows|Windows]] version of a program might have one set of source code files and the [[Apple Macintosh|Macintosh]] version might have another, while a FOSS *nix system might have another. While this is a straightforward approach to the problem, it has the potential to be considerably more expensive in development cost, development time, or both, especially for the corporate entities. The idea behind this is to create more than two different programs that have the ability to behave similarly to each other. It is also possible that this means of developing a cross-platform application will result in more problems with bug tracking and fixing, because the two different ''source trees'' would have different programmers, and thus different defects in each version. The smaller the programming team, the quicker the bug fixes tend to be. Another approach that is used is to depend on pre-existing software that hides the differences between the platforms—called [[abstraction]] of the platform—such that the program itself is unaware of the platform it is running on. It could be said that such programs are ''platform agnostic''. Programs that run on the [[Java (Sun)|Java]] [[Virtual Machine]] ([[Java Virtual Machine|JVM]]) are built in this fashion. Some applications mix various methods of cross-platform programming to create the final application. An example of this is the [[Firefox]] [[web browser]], which uses [[abstraction]] to build some of the lower-level components, separate source subtrees for implementing platform specific features (like the GUI), and the implementation of more than one [[scripting language]] to help facilitate ease of portability. [[Firefox]] implements [[XUL]], [[Cascading Style Sheets|CSS]] and [[JavaScript]] for extending the browser, in addition to classic [[Netscape]]-style browser plugins. Much of the browser itself is written in XUL, CSS, and JavaScript, as well. === Cross-platform programming toolkits === There are a number of tools which are available to help facilitate the process of cross-platform programming: * [[Simple DirectMedia Layer]]—An [[open source]] cross-platform multimedia library written in C that creates an abstraction over various platforms’ graphics, sound, and input [[Application programming interface|API]]s. It runs on many operating systems including Linux, Windows and Mac OS X and is aimed at games and multimedia applications. * [[Cairo (graphics)|Cairo]]−A [[free software]] library used to provide a vector graphics-based, device-independent API. It is designed to provide primitives for 2-dimensional drawing across a number of different backends. Cairo is written in C and has bindings for many programming languages. * ''ParaGUI''—ParaGUI is a cross-platform high-level application framework and GUI library. It can be compiled on various platforms(Linux, Win32, BeOS, Mac OS, ...). ParaGUI is based on the Simple DirectMedia Layer (SDL). ParaGUI is targeted on crossplatform multimedia applications and embedded devices operating on framebuffer displays. * [[wxWidgets]]—An open source widget toolkit that is also an [[application framework]]. It runs on [[Unix-like]] systems with [[X11]], Microsoft Windows and Mac OS X. It permits applications written to use it to run on all of the systems that it supports, if the application does not use any [[operating system]]-specific programming in addition to it. * [[Qt (toolkit)|Qt]]—An application framework and [[widget toolkit]] for [[Unix-like]] systems with [[X11]], Microsoft Windows, Mac OS X, and other systems—available under both [[open source]] and commercial licenses. * [[GTK+]]—An open source widget toolkit for Unix-like systems with X11 and Microsoft Windows. * [[FLTK]]—Another open source cross platform toolkit, but more light weight because it restricts itself to the GUI. * [[Mozilla application framework|Mozilla]]—An open source platform for building Mac, Windows and Linux applications. * [[Mono (software)|Mono]] (and more specifically, [[Microsoft .NET]])—A cross-platform framework for applications and programming languages. * ''molib''—A robust commercial application toolkit library that abstracts the system calls through C++ objects (such as the file system, database system and thread implementation.). This allows for the creation of applications that compile and run under Microsoft Windows, Mac OS X, GNU/Linux, and other uses (Sun OS, AIX, HP-UX, 32/64 bit, SMP). Use in concert with ''the sandbox'' to create GUI-based applications. * [[fpGUI]] - An open source widget toolkit that is completely implemented in Object Pascal. It currently supports Linux, Windows and a bit of Windows CE. fpGUI does not rely on any large libraries, instead it talks directly to Xlib (Linux) or GDI (Windows). The framework is compiled with the Free Pascal compiler. Mac OS support is also in the works. * [[Tcl/Tk]] - Tcl (Tool Command Language) is a dynamic programming language, suitable for a wide range of uses, including web and desktop applications, networking, administration, testing and many more. Open source and business-friendly, Tcl is a mature yet evolving language that is truly cross platform, easily deployed and highly extensible. Tk is a graphical user interface toolkit that takes developing desktop applications to a higher level than conventional approaches. Tk is the standard GUI not only for Tcl, but for many other dynamic languages, and can produce rich, native applications that run unchanged across Windows, Mac OS X, Linux and more. The combination of Tcl and the Tk GUI toolkit is referred to as Tcl/Tk. * [[XVT]] is a cross-platform toolkit for creating enterprise and desktop applications in C/C++ on Windows, Linux and Unix (Solaris, HPUX, AIX), and Mac. Most recent release is 5.8, in April 2007 === Cross-platform development environments === Cross-platform applications can also be built using proprietary [[Integrated development environment|IDE]]s, or so-called [[Rapid Application Development]] tools. There are a number of development environments which allow developers to build and deploy applications across multiple platforms: * [[Eclipse (software)| Eclipse]]—An Open source [[software framework]] and [[Integrated development environment|IDE]] extendable through plug-ins including the C++ Development Toolkit. Eclipse is available on any operating system with a modern Java virtual machine (including Windows, Linux, and Mac OS X, Sun, HP-UX, and other systems). * [[IntelliJ IDEA]]—A proprietary [[Integrated development environment|IDE]] * [[NetBeans]]—An Open source [[software framework]] and [[Integrated development environment|IDE]] extendable through plug-ins. NetBeans is available on any operating system with a modern Java virtual machine (including Windows, Linux, and Mac OS X, Sun, HP-UX, and other systems). Similar to Eclipse in features and functionality. Promoted by [[Sun Microsystems]] * [[Omnis Studio]]—A proprietary [[Integrated development environment|IDE]] or Rapid Application Development tool for creating enterprise and web applications for Windows, Linux, and Mac OS X. * [[Runtime Revolution]]—a proprietary [[Integrated development environment|IDE]], compiler engine and CGI builder that [[cross compile]]s to [[Microsoft Windows|Windows]], [[Mac OS X]] ([[PowerPC|PPC]], [[Intel]]), [[Linux]], [[Solaris Operating System|Solaris]], [[BSD]], and [[Irix]]. *[[Code::Blocks]]—A free/open source, cross platform IDE. It is developed in C++ using wxWidgets. Using a plugin architecture, its capabilities and features are defined by the provided plugins. *[[Lazarus (software)]]—Lazarus is a cross platform Visual IDE developed for and supported by the open source Free Pascal compiler. It aims to provide a Rapid Application Development Delphi Clone for Pascal and Object Pascal developers. *[[REALbasic]]—REALbasic (RB) is an object-oriented dialect of the BASIC programming language developed and commercially marketed by REAL Software, Inc in Austin, Texas for Mac OS X, Microsoft Windows, and Linux. == Criticisms of cross-platform development == There are certain issues associated with cross-platform development. Some of these include: * Testing cross-platform applications may also be considerably more complicated, since different platforms can exhibit slightly different behaviors or subtle bugs. This problem has led some developers to deride cross-platform development as “Write Once, Debug Everywhere”, a take on Sun’s [[Write once, run anywhere|“Write Once, Run Anywhere”]] marketing slogan. * Developers are often restricted to using the [[lowest common denominator]] subset of features which are available on all platforms. This may hinder the application's performance or prohibit developers from using platforms’ most advanced features. * Different platforms often have different user interface conventions, which cross-platform applications do not always accommodate. For example, applications developed for Mac OS X and [[GNOME]] are supposed to place the most important button on the right-hand side of windows and dialogs, whereas Microsoft Windows and [[KDE]] have the opposite convention. Though many of these differences are subtle, a cross-platform application which does not conform appropriately to these conventions may feel clunky or alien to the user. When working quickly, such opposing conventions may even result in [[data loss]], such as in a [[dialog box]] confirming whether the user wants to save or discard changes to a file. * Scripting languages and virtual machines must be translated into native executable code each time the application is executed, imposing a performance penalty. This performance hit can be alleviated using advanced techniques like [[just-in-time compilation]]; but even using such techniques, some performance overhead may be unavoidable. == See also == * [[Virtualization]] * [[Java Platform]] * [[Programming languages]]: ** Types: *** [[Compiled language]] **** [[REALbasic]] cross-platform native compiler for Windows, Macintosh and Linux **** [[cross-platform compiler]] *** [[Scripting language]] *** [[Interpreted language]] ** [[Perl]], [[PHP]], [[Python computer language|Python]], [[Tcl]], [[JavaScript]], [[XUL]], [[ECMAScript]]—some interpreted/scripting languages commonly used in cross-platform [[application software]] * [[wxWidgets]], [[Qt (toolkit)|Qt]], [[GTK+]], [[Tk]], [[FLTK]]—some common cross-platform [[widget toolkit]]s * Programming libraries: ** [[Allegro library|Allegro]]—a cross-platform multimedia library written in C * [[Computer architecture]] * Examples: ** [[Firefox]]—an [[open source]], cross-platform [[web browser]] ** [[Free Pascal]]—an open-source multi-platform Pascal and Object Pascal compiler ** [[Pixel Image Editor]], Photoshop-like image editor written in Free Pascal ** [[KPTools Skeet]]—an [[open source]], cross-platform [[Firewall]] ** [[OpenOffice.org]]—an [[open source]], cross-platform [[productivity suite]] ** [[Blender (software)|Blender]]—an [[open source]], cross-platform [[3D computer graphics software|3D graphics suite]] ** [[MAME]]—biggest, cross-platform arcade emulator ** [[Linux]], [[NetBSD]], [[OpenBSD]], [[FreeBSD]]—[[open-source]], cross-platform [[operating system]]s ** [[MySQL]], [[PostgreSQL]]—[[open-source]], cross-platform [[database]]s ** [[VLC media player|VLC]]—[[open-source]], cross-platform [[media player (application software)|media player]] [[Category:Computing platforms]] [[ar:متعدد المنصات]] [[ast:Multiplataforma]] [[ca:Multiplataforma]] [[cs:Multiplatformní software]] [[da:Platformsuafhængighed]] [[de:Plattformunabhängigkeit]] [[es:Multiplataforma]] [[eo:Plursistema]] [[eu:Plataforma-anitz]] [[fr:Multiplate-forme]] [[gl:Multiplataforma]] [[ko:크로스 플랫폼]] [[hr:Cross platform]] [[id:Antar-platform]] [[it:Multipiattaforma]] [[hu:Platformfüggetlenség]] [[nl:Multiplatform]] [[ja:クロスプラットフォーム]] [[no:Multiplattform]] [[pl:Wieloplatformowość]] [[pt:Multiplataforma]] [[ro:Cross-platform]] [[ru:Кроссплатформенное программное обеспечение]] [[simple:Cross-platform]] [[sk:Viacplatformový softvér]] [[fi:Alustariippumattomuus]] [[sv:Multiplattform]] [[th:หลายระบบปฏิบัติการ]] [[uk:Багатоплатформність]] [[zh:跨平台]]