robot de la enciclopedia para niños

Multiplataforma para niños

Enciclopedia para niños

En informática, cuando decimos que un programa o un concepto es multiplataforma, significa que puede funcionar en diferentes tipos de plataformas informáticas. Imagina que tienes un juego que puedes jugar tanto en una computadora con Microsoft Windows como en una con GNU/Linux o Mac OS X. ¡Eso es ser multiplataforma!

Existen dos tipos principales de software multiplataforma:

  • Algunos programas necesitan ser adaptados o "compilados" de forma específica para cada plataforma.
  • Otros pueden ejecutarse directamente en cualquier plataforma sin necesidad de preparación especial. Esto ocurre con programas escritos en lenguajes que se "interpretan" o que usan un código especial llamado "bytecode", que funciona en cualquier lugar donde haya un programa que lo entienda.

Por ejemplo, una aplicación multiplataforma puede funcionar sin problemas en computadoras con Windows, Linux o Mac OS X. En general, un programa multiplataforma puede ejecutarse en al menos dos plataformas diferentes, o incluso en todas las que existen.

¿Qué es una Plataforma Informática?

Una plataforma es como el "escenario" donde se ejecutan los programas de computadora. Es una combinación de hardware (las partes físicas de la computadora, como el procesador) y software (el sistema operativo, como Windows o Android).

Algunos ejemplos comunes de plataformas son:

  • Microsoft Windows (que funciona en la arquitectura x86 de muchos ordenadores).
  • Android (que se usa en teléfonos y tabletas con arquitectura ARM).
  • Linux/Unix.
  • Mac OS X.

Un programa puede estar diseñado para funcionar solo en una plataforma específica, dependiendo de sus características de hardware o sistema operativo. La plataforma Java, por ejemplo, es un tipo especial de plataforma de software que funciona como una "máquina virtual" sobre otros sistemas operativos.

Plataformas de Hardware

Una plataforma de hardware se refiere a la forma en que está construido un ordenador o su procesador.

  • Las arquitecturas x86 y x86-64 son muy comunes en los ordenadores de uso general. En estas máquinas suelen funcionar sistemas operativos como Microsoft Windows, Linux, Mac OS X, entre otros.
  • La arquitectura ARM es muy popular en teléfonos inteligentes y tabletas, donde se ejecutan sistemas operativos como Windows, Android o iOS.

Plataformas de Software

Las plataformas de software pueden ser un sistema operativo o un entorno de programación. A menudo, son una combinación de ambos.

Algunos ejemplos de plataformas de software incluyen:

La Plataforma Java

La plataforma Java es especial porque no es un sistema operativo en sí misma. Necesita una "máquina virtual" (llamada máquina virtual Java o JVM) que actúa como un "cerebro virtual" donde se ejecuta el código Java. Esto permite que un programa Java funcione en cualquier sistema que tenga una JVM instalada, sin importar si es Windows, Mac o Linux.

Aunque el código Java no se ejecuta directamente en el sistema operativo, la JVM puede hacer cosas como guardar archivos o conectarse a internet, siempre que tenga los permisos necesarios.

Hoy en día, los programas Java pueden ejecutarse en Microsoft Windows, Mac OS X, Linux y Solaris. En dispositivos móviles, Android ya tiene soporte para Java.

¿Cómo se Hacen los Programas Multiplataforma?

Para que un programa sea multiplataforma, debe poder funcionar en más de un tipo de ordenador o sistema operativo. Crear este tipo de software puede ser un reto, porque cada sistema operativo tiene sus propias formas de hacer las cosas (llamadas API).

Que un sistema operativo funcione en diferentes tipos de computadoras no significa que un programa hecho para ese sistema operativo funcione automáticamente en todas ellas. Tampoco significa que un programa escrito en un lenguaje popular como C o C++ funcione en todos los sistemas operativos que soporten ese lenguaje.

Aplicaciones Web

Las aplicaciones web (como las que usas en el navegador de internet) se consideran multiplataforma. Esto es porque puedes acceder a ellas desde cualquier navegador web y desde cualquier sistema operativo.

Las aplicaciones web más sencillas hacen casi todo el trabajo en un servidor y envían el resultado a tu navegador. Son como las páginas web normales. Ejemplos más avanzados son Gmail o Google Maps, que usan tecnologías como JavaScript para ser más interactivas.

Estrategias de Diseño para Aplicaciones Web

Debido a la dificultad de hacer que las aplicaciones web funcionen bien en todas partes, los desarrolladores usan varias estrategias:

  • Degradación Grácil: Ofrecer una funcionalidad similar para todos, pero con menos opciones para navegadores más antiguos. Por ejemplo, Gmail tiene un "modo básico" para navegadores limitados.
  • Separación de Funcionalidad: Omitir las funciones que no se pueden usar en ciertos navegadores, pero manteniendo el resto de la aplicación completa.
  • Múltiples Bases de Código: Crear versiones diferentes de la aplicación para cada tipo de navegador o sistema. Esto es más complejo y costoso.
  • Bibliotecas de Terceros: Usar herramientas especiales que simplifican las diferencias entre plataformas, haciendo el trabajo más fácil para los programadores.

Estrategias de Pruebas

Probar aplicaciones web multiplataforma es complicado. A veces, no se pueden instalar diferentes versiones de un mismo navegador en el mismo sistema operativo. Para solucionar esto, se usan técnicas como la virtualización, que permite simular diferentes sistemas.

Aplicaciones Tradicionales

Muchos usuarios siguen usando programas que se instalan directamente en el ordenador, no solo los que funcionan en el navegador.

Software Binario

Normalmente, los programas se distribuyen como archivos "ejecutables". Estos archivos solo funcionan en el sistema operativo y el tipo de ordenador para el que fueron creados. Por eso, crear un "ejecutable multiplataforma" es muy difícil.

Para programas como Mozilla Firefox, que están escritos en lenguajes como C o C++, los programadores deben crear una versión específica para cada sistema operativo (Windows, Mac OS X, Linux). Aunque vienen del mismo código original, son archivos diferentes para cada plataforma.

También se puede "portar" un programa, que significa adaptarlo para que funcione en otra arquitectura o sistema operativo. Por ejemplo, un programa que ya funciona en Windows se puede modificar para que también funcione en Linux.

Otra opción es la virtualización, que permite que un programa hecho para un tipo de ordenador funcione en otro diferente sin cambiar el código. Por ejemplo, el software Rosetta de Apple permitía que los Mac con procesadores Intel ejecutaran programas hechos para los Mac antiguos con procesadores PowerPC.

Scripts y Lenguajes Interpretados

Un "script" (un tipo de programa más sencillo) puede ser multiplataforma si el programa que lo "interpreta" está disponible en muchas plataformas. Por ejemplo, un script escrito en Python para Linux probablemente funcionará en Windows, porque Python también funciona en Windows.

A diferencia de los programas ejecutables, los scripts suelen ser archivos de texto que se pueden usar en cualquier computadora que tenga el software para interpretarlos. Esto hace que sean muy fáciles de compartir y usar en diferentes sistemas.

Algunos lenguajes de programación multiplataforma populares son:

  • Bash: Usado en Linux y otros sistemas similares a Unix.
  • Perl: Usado para tareas de administración y en la web.
  • PHP: Principalmente para aplicaciones web.
  • Python: Para crear aplicaciones rápidamente y fácil de usar.
  • Ruby: Un lenguaje fácil de leer, también usado en la web.
  • Tcl: Para aplicaciones web y de escritorio.

Videojuegos

El término "multiplataforma" también se usa para los videojuegos que se lanzan para diferentes consolas, computadoras o dispositivos móviles. Ejemplos de juegos multiplataforma son Phantasy Star Online, Tomb Raider: Legend y Minecraft.

A veces, un juego se lanza primero para algunas plataformas y luego para otras. Esto suele pasar cuando sale una consola nueva y los desarrolladores necesitan tiempo para aprender a usarla.

Algunos juegos no pueden ser multiplataforma debido a acuerdos entre los desarrolladores y los fabricantes de consolas. Por ejemplo, un juego podría ser exclusivo de una consola por un tiempo.

Juego entre Distintas Plataformas

Algunos desarrolladores han logrado que los jugadores puedan jugar en línea juntos, incluso si usan plataformas diferentes. Compañías como Epic Games, Microsoft y Valve tienen tecnología que permite a los jugadores de Xbox, PlayStation y PC jugar en la misma partida. El primer juego en permitir esto fue Quake 3.

Otros ejemplos de videojuegos con juego en línea multiplataforma son Fortnite: Battle Royale, Rocket League, Final Fantasy XIV, Street Fighter V y Minecraft (con su actualización Better Together).

Programación Multiplataforma

La programación multiplataforma es la práctica de escribir software que funcione en más de una plataforma.

Métodos de Programación Multiplataforma

Hay varias formas de crear una aplicación multiplataforma:

  • Crear versiones separadas: Hacer una versión del programa para Windows, otra para Mac, y otra para Linux. Esto puede ser costoso y llevar más tiempo, y cada versión podría tener errores diferentes.
  • Usar una capa de abstracción: Depender de un software especial que "esconde" las diferencias entre las plataformas. Así, el programa no necesita saber en qué plataforma se está ejecutando. Los programas que usan la máquina virtual de Java (JVM) funcionan así.
  • Mezclar métodos: Algunas aplicaciones, como el navegador Mozilla Firefox, usan una combinación de estos métodos.

Bibliotecas y Entornos de Programación Multiplataforma

Existen muchas herramientas que ayudan a los programadores a crear software multiplataforma:

  • Cairo: Para dibujar gráficos en 2D.
  • Eclipse: Un entorno de desarrollo para programar en varios lenguajes.
  • FLTK: Para crear interfaces gráficas ligeras.
  • GTK+: Una biblioteca para crear elementos gráficos en programas.
  • Qt: Una herramienta para crear aplicaciones y elementos gráficos.
  • Simple DirectMedia Layer: Para gráficos, sonido y entrada en videojuegos.
  • Smartface Platform: Para crear aplicaciones móviles.
  • Tcl/Tk.
  • Ultimate++: Para desarrollar aplicaciones en C++ rápidamente.
  • wxWidgets: Otra biblioteca para crear elementos gráficos.
  • XPower++: Un entorno de desarrollo para Windows, Linux, Mac y móviles.

Retos del Desarrollo Multiplataforma

Crear software multiplataforma tiene sus dificultades:

  • Pruebas complicadas: Probar un programa en diferentes plataformas puede ser difícil, ya que cada una puede comportarse de forma ligeramente distinta o tener errores sutiles. Por eso, a veces se bromea diciendo "Se escribe una vez, se depura en todas partes".
  • Funciones limitadas: Los desarrolladores a menudo tienen que usar solo las funciones que están disponibles en todas las plataformas. Esto puede limitar el rendimiento o impedir el uso de características avanzadas.
  • Diferencias de diseño: Las plataformas tienen diferentes formas de organizar los botones o menús. Si un programa multiplataforma no se adapta a estas diferencias, puede parecer extraño o difícil de usar para el usuario.
  • Rendimiento: Los lenguajes interpretados o las máquinas virtuales necesitan "traducir" el código cada vez que se ejecuta el programa, lo que puede hacerlo un poco más lento.
  • Instaladores: Cada plataforma usa un tipo de instalador diferente (como RPM o MSI). Existen instaladores multiplataforma como InstallAnywhere o InstallBuilder para ayudar con esto.
  • Seguridad: Los entornos multiplataforma pueden tener fallos de seguridad que afecten a todas las plataformas, lo que podría facilitar la creación de programas maliciosos que funcionen en muchos sistemas.

Galería de imágenes

Véase también

Kids robot.svg En inglés: Cross-platform software Facts for Kids

kids search engine
Multiplataforma para Niños. Enciclopedia Kiddle.