__NOTOC__ A cross-platform (or platform independent) software application or hardware device works on multiple system platforms (e.g. Linux/Unix, Microsoft Windows, and Mac OS X). This may mean supporting all common platforms, or simply more than one.
Software and firmware are dependent on the functionality that each platform provides, as well as the programming language that each platform supports. In the early days of software development, cross-platform development was hindered by the fact that the functionality and language availability varied greatly across platforms. Today, many programming languages (such as C) are universally supported by the most common system platforms. Moreover, developers can expect nearly all platforms to support a wide range of functionality, from disk and file access to graphical user interfaces (GUIs) and network services.
Developers must access these features using the platform's application programming interfaces (APIs). Though some APIs (such as OpenGL or Berkeley sockets) are available on multiple platforms, many features are accessed using platform-specific frameworks (such as the Microsoft Foundation Classes). Cross-platform frameworks such as Java attempt to hide these platform-specific APIs by wrapping them in platform-neutral programming interfaces, allowing developers to create truly cross-platform software by building on top of these frameworks. However, not all of these frameworks are equally suited for building cross-platform software, since some frameworks may offer only partial support for certain features on some platforms.
Likewise, web applications may rely on content that not all browsers can render, such as Macromedia Flash presentations. These applications can be made cross-platform by including alternative content, such as images or MPEG-2 movies, that can be rendered as a placeholder.
Cross-platform web accessibility requires as much an understanding of users as of technical standards if a page is to be accessible on platforms as varied as screen readers, Braille-based web browsers, and small devices like mobile phones and PDAs.
There are several basic approaches to avoiding this problem. First, the application can be developed using a technique known as abstraction. This technique involves writing as much as the application as possible without relying on platform-specific APIs. The parts that must be written using platform-specific APIs are cleanly separated from the rest of the application code, and are rewritten for each platform that the application will be deployed on. Though the resulting application is not completely platform independent, the task of deploying the application on a new platform is greatly simplified; developers must only augment the platform-specific portion of the code in order to handle the new platform.
Alternatively, the application in question can be written using a platform independent toolkit. Such toolkits provide developers with a consistent API that is independent of the underlying platform. One well-known example of this approach is the Opera Web browser, which uses the Qt toolkit to achieve compatibility across many operating systems. Other popular cross-platform toolkits include wxWidgets and GTK+.
However, neither of these two approaches allows the same executables to run on different platforms: instead, they facilitate creating different executables which behave uniformly. True cross-platform compatibility can be achieved using scripting languages. Programs written using scripting languages are not distributed as executable programs. Rather, these applications are distributed in source code form (or an obfuscated version thereof), and are translated into platform-specific executable code when the application is run. Virtual machines are similar in concept but take a slightly different technical tack. Virtual machines allow developers to translate their applications into a uniform, and often artificial, executable format during development; these executables are then further translated into each machine's specific executable format at run time. Popular virtual machine platforms include Sun's Java virtual machine and Microsoft's .NET framework.
It is worth noting that many cross-platform applications use a hybrid of these techniques. For example, the Mozilla Firefox Web browser was developed to run on many varied platforms using a combination of abstraction, platform-independent toolkits such as XUL, and the JavaScript scripting language.
Multiplataforma | Platformsuafhængighed | Plattformunabhängigkeit | Multiplataforma | Multesistema | Plataforma-anitz | Multi-plateforme | Multipiattaforma | Multiplatform | クロスプラットフォーム | Кроссплатформенное программное обеспечение | Multiplattform | Alustariippumattomuus | 跨平台
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Cross-platform".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world