Multiplataforma ( cross-platform ) : la capacidad del software para trabajar con múltiples plataformas de hardware o sistemas operativos . Se proporciona mediante el uso de lenguajes de programación de alto nivel , entornos de desarrollo y tiempo de ejecución que admiten la compilación condicional, la vinculación y la ejecución de código para varias plataformas. Un ejemplo típico es el software diseñado para ejecutarse en los sistemas operativos Linux y Windows simultáneamente.
La mayoría de los lenguajes de programación de alto nivel modernos se pueden llamar multiplataforma . Por ejemplo, C , C++ , Free Pascal , FreeBASIC , PureBasic son lenguajes multiplataforma a nivel de compilación, es decir existen compiladores para varias plataformas para estos lenguajes. Esto permite, con la calidad adecuada del código, no reescribir el motor principal del programa, solo cambian partes especiales dependientes del sistema.
Igualmente importantes para el uso multiplataforma son las bibliotecas de tiempo de ejecución estandarizadas . En particular, la biblioteca de lenguaje C ( POSIX ) se ha convertido en un estándar. De las grandes bibliotecas multiplataforma: Qt , GTK+ , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .
Hay compiladores cruzados: compiladores que generan código ejecutable para una plataforma distinta de aquella en la que se ejecuta el compilador.
PHP , Perl , Python , Tcl y Ruby son lenguajes interpretados multiplataforma y sus intérpretes existen para muchas plataformas.
Los tiempos de ejecución de ActionScript Virtual Machine , Java Virtual Machine y .NET también son multiplataforma, pero su entrada no es código fuente , sino código intermedio . Por lo tanto, los programas escritos en ActionScript , Java y C# se pueden ejecutar en diferentes sistemas operativos sin tener que volver a compilarlos.
En diferentes sistemas operativos y entornos, independientemente de cómo se logre técnicamente el trabajo en ellos, los elementos de interfaz estándar tienen diferentes tamaños. Por lo tanto, el posicionamiento rígido simple de los elementos de la interfaz es imposible: en un sistema operativo diferente (entorno) pueden "arrastrarse" uno encima del otro, "borrarse", "borrarse". Hay varios enfoques:
En cualquier caso, en otros sistemas operativos y entornos, se requieren al menos pruebas mínimas, ya que es posible que se produzcan errores de enlace...
Aunque generalmente existe una amplia estandarización de hardware y software, el programador a menudo tiene que bifurcarse para diferentes sistemas operativos y entornos, incluyendo uno u otro a través de la compilación condicional .
Por ejemplo, el navegador Mozilla Firefox tiene diferentes conjuntos de íconos para diferentes sistemas operativos.
Una gran cantidad de programas de aplicación también son multiplataforma. Esta cualidad es especialmente pronunciada en los programas desarrollados originalmente para sistemas operativos similares a Unix . Una condición importante para su portabilidad a otras plataformas es la compatibilidad de las plataformas con las recomendaciones POSIX , así como la existencia de un compilador GCC para la plataforma a la que se están portando.
Los sistemas operativos modernos también suelen ser multiplataforma. Por ejemplo, los sistemas operativos de código abierto (en particular: NetBSD , Linux , FreeBSD , AROS ) pueden ejecutarse en varias plataformas de hardware diferentes. Los más comunes son: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . (“ Elbrus OS ” no es más que una modificación profunda para la plataforma Elbrus . Pero también hay un “Elbrus OS” disponible para las plataformas Elbrus-SPARC, que es una implementación de la plataforma SPARC de MCST y la plataforma x86. ) La primera versión de Microsoft Windows NT 4 , lanzada en 1996, admitía cuatro plataformas (x86, Alpha, MIPS y PowerPC), las versiones posteriores de Windows NT solo admitían la plataforma x86. Microsoft Windows moderno puede ejecutarse en plataformas Intel x86 e Intel Itanium . (Más precisamente, Itanium solo tiene versiones de Windows 2000/XP, Windows 2003 y Windows 2008, después de lo cual se eliminó gradualmente el soporte para Itanium). El sistema operativo NetBSD se considera el más multiplataforma [1] , siendo portado a la mayoría plataformas existentes.
Varios IDE , incluidos Free Pascal, Lazarus , Qt Creator , se ejecutan en diferentes sistemas operativos: Linux, Windows y otros [2] .
Si el programa no está diseñado para ejecutarse (lanzarse) en una plataforma específica, pero para esta plataforma hay un emulador de la plataforma base para este programa, entonces el programa puede ejecutarse en el entorno del emulador.
Normalmente, la ejecución de un programa en un entorno de emulador da como resultado una degradación del rendimiento en comparación con programas similares para los que la plataforma es la base, ya que una parte significativa de los recursos del sistema se gasta en las funciones del emulador.