fbpx
Wikipedia

Multiplataforma

En informática, se denomina multiplataforma a un atributo conferido a programas informáticos o métodos y conceptos de cómputo que son implementados, y operan internamente en múltiples plataformas informáticas. El software multiplataforma puede dividirse en dos grandes tipos o clases: uno requiere una compilación individual para cada plataforma que le da soporte, y el otro se puede ejecutar directamente en cualquier plataforma, sin preparación especial, por ejemplo, el software escrito en un lenguaje interpretado o bytecode precompilado portable, para los cuales los intérpretes o paquetes en tiempo de ejecución son componentes comunes o estándar de todas las plataformas.

Por ejemplo, una aplicación multiplataforma puede ejecutarse sin problema alguno, tanto en Microsoft Windows en la arquitectura x86, como en Linux en la arquitectura x86 y Mac OS X, ya sea en el PowerPC o sistemas Apple Macintosh basados en x86. En general, una aplicación multiplataforma se puede ejecutar tanto en todas las plataformas existentes o como mínimo dos plataformas.[1]

Plataformas

Una plataforma es una combinación de hardware y software utilizado para ejecutar aplicaciones de software. Una plataforma puede ser descrita simplemente como un sistema operativo o arquitectura de ordenador, o podría ser la combinación de ambos (un ejemplo de una plataforma común es Microsoft Windows que se ejecuta en la arquitectura x86). Otras conocidas plataformas de computadoras de escritorio incluyen Linux/Unix y Mac OS X (ambos de los cuales son a su vez multiplataforma). Hay, sin embargo, muchos dispositivos, como los teléfonos móviles que también son efectivamente plataformas informáticas, aunque comúnmente sean menos considerados de esa manera. Una aplicación se puede escribir en dependencia de las características de una determinada Plataforma, ya sea el hardware, sistema operativo, o máquina virtual en que se ejecuta. La plataforma Java es una máquina virtual de la plataforma que se ejecuta en sistemas operativos y tipos de hardware, y es una plataforma de software común para escribir (programar).

Plataformas de hardware

Una plataforma de hardware puede referirse a la arquitectura del ordenador o la arquitectura del procesador. Por ejemplo, los CPUs x86 y x86-64 constituyen una de las más comunes arquitecturas de computadoras en uso en los ordenadores de propósito general. Estas máquinas suelen ejecutar una versión de Microsoft Windows, aunque también se puede ejecutar otro sistemas operativos, tales como Linux, OpenBSD, NetBSD, Mac OS X yFreeBSD.

Una arquitectura ARM es común en los teléfonos inteligentes y Tablet PC, que corren Windows, Android, iOS y otros sistemas operativos móviles.

Plataformas de software

Las plataformas de software puede ser un sistema operativo o entorno de programación, aunque más comúnmente se trata de una combinación de ambos. Una notable excepción a esto es Java, que utiliza un sistema operativo independiente de la máquina virtual para cada código compilado, conocido en el mundo de Java como bytecode. Ejemplos de plataformas de software incluyen:

  • Android (sistema operativo) para teléfonos inteligentes y Tablet PC
  • AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
  • BSD, muy multiplataforma (ver NetBSD, por ejemplo)
  • Java
  • Linux (x86, x86-64, PowerPC, y otras arquitecturas)
  • iOS (ARM)
  • Mac OS X (x86, x86-64)
  • Microsoft Windows (x86, x86-64, ARM)
  • DOS sistemas de tipo en el x86: MS-DOS, IBM PC-DOS, DR-DOS, FreeDOS, etc.
  • OS/2, eComStation
  • Solaris (SPARC, x86, x86-64)
  • La CLI, también conocido por los nombres de aplicación .NET Framework (de Microsoft) y Mono (de Novell)

Plataforma Java

Como ya se ha señalado, la plataforma Java es una excepción a la regla general de que un sistema operativo es una plataforma de software. El lenguaje Java requiere de una máquina virtual, o un "CPU virtual" en el que se ejecuta todo el código que se escribe en el lenguaje. Esto permite que el mismo ejecutable binario pueda ejecutarse en todos los sistemas, apoyado por el software Java, a través del uso de una máquina virtual Java (JVM). Ejecutables de Java no se ejecutan de forma nativa en el sistema operativo, es decir, ni de Windows, ni Linux ejecutan programas Java directamente.

Aunque el código Java no se ejecuta de forma nativa, la JVM es plenamente capaz de proporcionar servicios relacionados con el sistema operativo, como el disco I/O y el acceso a la red, si los privilegios adecuados se conceden. La JVM permite a los usuarios decidir el nivel de protección adecuado, según una ACL. Por ejemplo, el acceso a disco y de red está habilitado normalmente para aplicaciones de escritorio, pero no para applets basados en el navegador.

JNI también se puede utilizar para permitir el acceso a funciones específicas de los sistemas operativos. En la actualidad, los programas Java pueden ejecutarse en Microsoft Windows, Mac OS X, Linux y sistemas operativos Solaris. Para aplicaciones móviles, los plugins de los navegadores se utilizan en dispositivos basados en Windows y Mac, Android tiene soporte incorporado para Java.

Software multiplataforma

Para que el software pueda ser considerado multiplataforma, debe ser capaz de funcionar en más de una arquitectura de ordenador o sistema operativo. Esto puede ser una tarea que consume tiempo, ya que los diferentes sistemas operativos tienen diferentes interfaces de programación de aplicaciones o API (por ejemplo, Linux utiliza una API diferente de Windows).

El hecho de que un determinado sistema operativo se pueda ejecutar en diferentes arquitecturas de computadora no quiere decir que el software escrito para ese sistema operativo automáticamente funcione en todas las arquitecturas que soporta el sistema operativo. Por ejemplo, a partir de agosto de 2006 OpenOffice.org no se ejecutaba de forma nativa en los AMD64 o Intel 64 líneas de procesadores los estándares para computadores de x86-64 64 bit. Sin embargo, desde entonces la situación ha cambiado, y la suite OpenOffice.org de software ha sido portada a los sistemas de 64-bit. Esto también significa que solo porque un programa se escriba en un popular lenguaje de programación como C o C++, no tiene por qué funcionar en todos los sistemas operativos que soporten la programación de dicho lenguaje o incluso en el mismo sistema operativo en una arquitectura diferente.

Aplicaciones Web

Las aplicaciones Web suelen ser descritas como multiplataforma, ya que, idealmente, se puede acceder desde cualquiera de los diversos navegadores web en diferentes sistemas operativos. Tales aplicaciones generalmente emplean una arquitectura de sistema cliente-servidor, y pueden variar ampliamente en complejidad y funcionalidad. Esta amplia variabilidad complica considerablemente la meta de capacidad multiplataforma, que es rutinariamente en contradicción con el objetivo de funcionalidad avanzada.

Aplicaciones básicas

Aplicaciones web básicas lleva cabo la totalidad o la mayor parte del procesamiento de un servidor web "Stateless", y pasar el resultado al navegador web del cliente. Toda la interacción del usuario con la aplicación consta de simples intercambios de solicitudes de datos y las respuestas del servidor. Este tipo de aplicaciones son la norma en las fases iniciales de la World Wide Web de desarrollo de aplicaciones. Tales aplicaciones siguen un simple transacción modelo, idéntica a la de servir páginas web estáticas. Hoy en día, siguen siendo relativamente común, especialmente cuando la compatibilidad entre plataformas y la simplicidad se considera más importante que las funcionalidades avanzadas.

Aplicaciones avanzadas

Ejemplos destacados de las aplicaciones web avanzadas incluyen la interfaz web a Gmail, A9.com, y la página web maps.live.com, parte del Live Search servicio de Microsoft. Tales aplicaciones avanzadas habitualmente dependen de las funciones adicionales que se encuentran solo en las versiones más recientes de los navegadores web más populares. Estas dependencias incluyen Ajax, JavaScript, HTML "Dinámico", SVG, y otros componentes de las aplicaciones ricas de Internet. Las versiones antiguas de los navegadores web más populares tienden a carecer de apoyo a ciertas características.

Multiplataforma en los videojuegos

También puede aplicarse a los videojuegos lanzados en una gama de consolas de videojuegos, computadoras especializadas dedicadas a la tarea de jugar juegos. Entre los ejemplos de videojuegos multiplataforma se incluyen: Miner 2049er, Tomb Raider: Legend, FIFA (serie de videojuegos), NHL Series y Minecraft.

Cada uno de ellos ha sido lanzado en una variedad de plataformas de juego, como la Wii, PlayStation 3, Xbox 360, computadoras personales (PC) y dispositivos móviles.

Las características de un sistema particular pueden alargar el tiempo necesario para implementar un videojuego en múltiples plataformas. Así, un videojuego puede ser lanzado inicialmente en unas pocas plataformas y posteriormente en las restantes. Normalmente, esta situación se produce cuando se lanza un nuevo sistema de juego, porque los desarrolladores de videojuegos necesitan familiarizarse con el hardware y el software asociados a la nueva consola.

Es posible que algunos juegos no se conviertan en multiplataforma debido a los acuerdos de licencia entre los desarrolladores y los fabricantes de consolas de videojuegos que limitan el desarrollo de un juego a una consola en particular. Por ejemplo, Disney podría crear un juego con la intención de lanzarlo en las últimas consolas de Nintendo y Sony. En caso de que Disney conceda la licencia del juego a Sony en primer lugar, se le podría exigir a cambio que lanzara el juego únicamente en la consola de Sony por un período corto o indefinido, prohibiendo efectivamente el lanzamiento multiplataforma durante ese período.

Juego multiplataforma

Varios desarrolladores han implementado medios para jugar en línea mientras utilizan diferentes plataformas. Psyonix, Epic Games, Microsoft y Valve poseen tecnología que permite a los jugadores de Xbox 360 y PlayStation 3 jugar con jugadores de PC, dejando la decisión de qué plataforma usar a los consumidores. El primer juego que permitió este nivel de interactividad entre los juegos de PC y consola fue Quake 3.

Los juegos que incluyen juego en línea multiplataforma incluyen Fortnite: Battle Royale, Rocket League, Final Fantasy XIV, Street Fighter V, Killer Instinct, Paragon y Fable Fortune, y Minecraft con su actualización Better Together para Windows 10, ediciones VR, Pocket Edition y Xbox One.

Estrategias de diseño

A causa de los intereses en conflicto de compatibilidad entre plataformas y funcionalidades avanzadas, han surgido numerosas alternativas de diseño de aplicaciones web.

Tales estrategias incluyen:

Degradación correcta

Degradación correcta intenta proporcionar la misma funcionalidad o similar para todos los usuarios y plataformas, mientras que la disminución de la funcionalidad de un "mínimo común denominator" para obtener más exploradores cliente limitados. Por ejemplo, un usuario que intenta usar una característica limitada de un navegador para acceder a Gmail puede notar que Gmail cambia al "modo básico", con funcionalidad reducida. Algunos ven esta estrategia como una forma menor de la capacidad multiplataforma.

Separación de funciones

La separación de las funcionalidades para simplificar la omición de los subconjuntos de funciones que no soportan los exploradores de los clientes dentro de ciertos sistemas operativos, sin dejar de ofrecer una "completa" aplicación para el usuario.

Código base múltiple

Múltiples aplicaciones codebase presentar diferentes versiones de una aplicación en función del cliente específico en uso. Esta estrategia es sin duda la forma más complicada y costosa de cumplir la capacidad multiplataforma, ya que incluso las diferentes versiones del navegador del cliente mismo (dentro del mismo sistema operativo) puede diferir considerablemente entre sí. Esto se complica aún más por el apoyo a plugins que puede o no estar presente para cualquier instalación dada de un navegador web particular.

Bibliotecas de terceros

Bibliotecas de terceros intentan simplificar la capacidad multiplataforma de "esconder" las complejidades de las diferencias de los clientes detrás de un API unificada.

Estrategias de prueba

Un aspecto complicado del diseño de las aplicaciones web multiplataforma es la necesidad de pruebas de software. Además de las complicaciones mencionadas anteriormente, existe la restricción adicional de que algunos navegadores web prohíben la instalación de diferentes versiones del mismo navegador en el mismo sistema operativo. Técnicas tales como la virtualización completa se utilizan a veces como una solución para este problema.

Aplicaciones tradicionales

Aunque las aplicaciones web se están convirtiendo cada vez más popular, muchos usuarios todavía utilizan la aplicación de software tradicional que no se basa en una arquitectura cliente/servidor web. La distinción entre las "tradicionales" y las aplicaciones "web" no es siempre inequívoca, sin embargo, ya que las aplicaciones tienen muchas características diferentes, los métodos de instalación y arquitecturas, y algunas de ellas pueden superponerse y ocurrir de maneras que difuminan la distinción. Sin embargo, esta distinción simplificada es una generalización común y útil.

Software binario

Tradicionalmente en la informática moderna, la aplicación de software se ha distribuido a los usuarios finales como imágenes binarias, que se almacenan en archivos ejecutables, un tipo específico de archivo binario. Estos ejecutables solo admiten el sistema operativo y arquitectura de computadores que fueron construidas, lo que significa que haciendo un "ejecutable multiplataforma" sería algo así como una enorme tarea, y por lo general no se hace.

Para el software que se distribuye como un archivo ejecutable binario, como el software escrito en C o C++, el programador debe crear el software para cada sistema operativo diferente y arquitectura de computadoras. Por ejemplo, Mozilla Firefox, un navegador web de código abierto, está disponible en Microsoft Windows, Mac OS X (tanto PowerPC y x86 a través de algo que Apple llama un binario universal), y Linux en arquitecturas de varios equipos. Las tres plataformas (en este caso, de Windows, Mac OS X y Linux) son distribuciones ejecutables independientes, si bien proceden del mismo código fuente.

En el contexto del software binario, los programas multiplataforma están escritos en el código fuente y luego, "traducido" a cada sistema que se ejecuta a través de la compilación en plataformas diferentes. Además, el software puede ser portado a una arquitectura de computadora nueva o sistema operativo para que el programa se hace más multiplataforma de lo que ya es. Por ejemplo, un programa como Firefox, que ya se ejecuta en Windows en la familia x86, se puede modificar y re-programar para ejecutarse en Linux en x86 (y potencialmente otras arquitecturas) también.

Como alternativa a la portabilidad, la virtualización de multiplaforma permite que las aplicaciones compiladas para una CPU y el sistema operativo se ejecute en un sistema con una CPU y/o sistema operativo, sin modificar el código fuente o binarios. Por ejemplo, Apple Rosetta software, que está integrado en Intel basados en ordenadores Apple Macintosh, ejecuta las aplicaciones compiladas para la anterior generación de Mac que utilizan PowerPC CPU. Otro ejemplo es IBM PowerVM Lx86, que permite Linux/x86 aplicaciones para ejecutarse sin modificaciones en el Linux/Sistema operativo de encendido.

Scripts y lenguajes interpretados

Un script puede ser considerado como multiplataforma si su intérprete está disponible en múltiples plataformas y la secuencia de comandos solo utiliza los servicios proporcionados por el lenguaje. Es decir, un script escrito en Python para un sistema como Unix probablemente se ejecutará con poca o ninguna modificación en el de Windows, ya que también se ejecuta en Python de Windows, también hay más de una implementación de Python que se ejecutan los mismos scripts (por ejemplo, IronPython para .NET). Lo mismo ocurre con muchos de los lenguajes de programación de código abierto que están disponibles y son lenguajes de scripting.

A diferencia de los binarios ejecutables, el script puede utilizar el mismo en todos los equipos que tienen el software para interpretar la secuencia de comandos. Esto se debe a que las secuencias de comandos se almacenan generalmente en un texto sin formato en un archivo de texto. Puede haber algunos problemas, sin embargo, como el tipo de carácter de línea nueva que se encuentra entre las líneas. Generalmente, sin embargo, el trabajo poco o nada tiene que hacer para que un script escrito para un sistema, ejecute en otro.

Algunos muy populares entre plataformas scripting o lenguajes interpretados son:

  • Bash - Un shell de Unix en el que comúnmente se ejecutan en Linux y otros modernos sistemas Unix, así como en Windows a través de Cygwin POSIX (capa de compatibilidad).
  • Perl - Un lenguaje de scripting creado en 1987. Se utiliza para programación CGI WWW, pequeños sistemas de administración de tareas y más.
  • PHP - El lenguaje de scripting más popular en uso de las aplicaciones web.
  • Python - Un moderno lenguaje de programación donde la atención se centra en el desarrollo rápido de aplicaciones y la facilidad de la escritura, en lugar se obtiene un programa eficiente en tiempo de ejecución.
  • Ruby - Un lenguaje de scripting cuyo propósito es ser orientado a objetos y fácil de leer. También se puede utilizar en la web a través de Ruby on Rails.
  • Tcl - Un lenguaje de programación dinámico, adecuado para una amplia gama de aplicaciones, incluyendo aplicaciones web y de escritorio, redes, administración de pruebas y muchos más.

Videojuegos

Multiplataforma es un término que también puede aplicarse a los videojuegos liberados en una serie de consolas de videojuegos, especializados ordenadores dedicados a la tarea de jugar. Ejemplos de juegos de video multiplataforma son:

  • Minero 2049er
  • Phantasy Star Online
  • Tomb Raider: Legend
  • FIFA Series

Cada uno ha sido puesto en libertad a través de una variedad de plataformas de juego, como la Wii, PlayStation 3, Xbox 360, ordenadores personales (PCs), y dispositivos móviles.

Las características de un sistema particular puede prolongar el tiempo necesario para implementar un juego de vídeo en múltiples plataformas. Así, un videojuego puede inicialmente ser puesto en algunas plataformas y posteriormente puesto en libertad el resto de plataformas. Por lo general, esta situación se produce cuando un nuevo sistema de juego es liberado, porque los desarrolladores de videojuegos que se familiaricen con el hardware y el software asociado con la nueva consola.

Algunos juegos no pueden ser multiplataforma debido a los acuerdos de licencia entre los desarrolladores y fabricantes de videojuegos de consola que limitan el desarrollo de un juego para una consola en particular. Como ejemplo, Disney podría crear un juego con la intención de la liberación en la última Nintendo y Sony consolas de juegos. En caso de licencia de Disney del juego de Sony primero, Disney puede en cambio ser necesaria para liberar el juego únicamente en Sony de la consola por un corto tiempo o indefinidamente.

Varios desarrolladores han puesto en marcha los medios para jugar juegos en línea durante el uso de diferentes plataformas. Epic Games, Microsoft y Valve Software todos poseemos la tecnología que permite a Xbox 360 y PlayStation 3 a los jugadores jugar con los jugadores de PC, dejando la decisión de qué plataforma utilizar para los consumidores. El primer juego para permitir que este nivel de interactividad entre el PC y consola de juegos era Quake 3.

Los juegos que ofrecen multiplataforma juego en línea incluyen:

  • Kane & Lynch: Dead Men
  • Lost Planet: Colonies
  • Phantasy Star Online
  • Shadowrun
  • BlazBlue: Calamity Trigger
  • Uno
  • Final Fantasy XI Online
  • El Universo en Guerra: Asalto a la Tierra
  • Cuarto de juegos
  • Team Fortress 2
  • Portal 2
  • Dust 514 con Eve Online
  • Minecraft

Software plataforma-independiente

El software que es independiente de la plataforma no se basa en las características especiales de cualquier plataforma única, o, si lo hace, se ocupa de las características especiales que la hacen frente a múltiples plataformas.

Programación multiplataforma

La programación multiplataforma es la práctica de la forma activa de la escritura de software que funciona en más de una plataforma.

Métodos de programación multiplataforma

Hay diferentes maneras de abordar el problema de escribir una aplicación multiplataforma. Una de ellos es simplemente crear varias versiones del mismo programa en diferentes árboles de código fuente, es decir, la versión de Windows de un programa puede tener un conjunto de archivos de código fuente y la versión de Macintosh podría tener otro, mientras que un software libre con sistema Unix podría tener otro. Si bien este es un enfoque simple para el problema, tiene el potencial de ser mucho más caro en costos de desarrollo, tiempo de desarrollo, o ambos, sobre todo para las entidades corporativas. La idea detrás de esto es crear más de dos programas diferentes que tienen la capacidad de comportarse de manera similar a la otra. También es posible que este medio de desarrollo de una aplicación multiplataforma dará lugar a más problemas de seguimiento de errores y corregir, porque los dos árboles diferentes fuentes tendría programadores diferentes, y por lo tanto los defectos diferentes en cada versión. Cuanto menor sea el equipo de programación, más rápido las correcciones de errores tienden a ser.

Otro enfoque que se utiliza es depender de un software preexistente que oculta las diferencias entre la platform, llamado abstracción de la Platform, de tal manera que el programa en sí mismo no es consciente de la plataforma que se está ejecutando. Se podría decir que este tipo de programas son independientes de la plataforma. Los programas que se ejecutan en la máquina virtual de Java (JVM) se construyen de esta manera.

Algunas aplicaciones mezclan diversos métodos de programación multiplataforma para crear la aplicación final. Un ejemplo de esto es el navegador web Firefox, que utiliza la abstracción para construir algunos de los componentes de nivel inferior, subestructuras separadas de código para implementar las características específicas de la plataforma (como la interfaz gráfica de usuario), y la aplicación de más de un lenguaje de scripting para ayudar a facilitar facilidad de portabilidad. Firefox implementa XUL, CSS y JavaScript para la extensión del navegador, además de plugins al estilo del clásico navegador Netscape. Gran parte del mismo navegador en sí está escrito en XUL, CSS y JavaScript, también.

Herramientas de programación y entornos multiplataforma

Hay una serie de herramientas que están disponibles para ayudar a facilitar el proceso de programación multiplataforma:

  • El Cairo: Un software libre, biblioteca que se utiliza para proporcionar un vector basado en gráficos, independiente del API del dispositivo. Está diseñado para proporcionar primitivas para dibujos bidimensionales a través de un número de diferentes sistemas de apoyo. El Cairo está escrito en C y tiene enlaces para muchos lenguajes de programación.
  • Eclipse: Entorno de desarrollo multiplataforma, código abierto. Implementado en Java con una arquitectura configurable que soporta muchas herramientas para desarrollo de software. Complementos disponibles para varios lenguajes, como Java y C++.
  • FLTK: Otro código abierto multiplataforma. Kit de herramientas, pero más ligero, ya que se limita a la GUI.
  • fpGUI: Un conjunto de herramientas de fuente abierta widget de que está completamente implementado en Object Pascal. Actualmente es compatible con Linux, Windows y un poco de Windows CE.
  • GeneXus: En Windows es una solución rápida de desarrollo de software para la creación de aplicaciones multiplataforma y de despliegue basado en la representación del conocimiento y el apoyo a C#, Cobol, Java incluyendo Android y BlackBerry dispositivos inteligentes, Objective-C para el de Apple dispositivos móviles, RPG, Ruby, Visual Basic y Visual FoxPro.
  • GTK+: Un conjunto de herramientas de código abierto para el widget de sistemas tipo Unix con X11 y Microsoft Windows.
  • haXe: Un lenguaje multiplataforma de código abierto.
  • Juce: Un framework de aplicaciones escritas en C++, que se utiliza para escribir software nativo en numerosos sistemas (Microsoft Windows, POSIX, Mac OS X), sin cambios en el código.
  • Max/MSP: Un lenguaje de programación Visual que encapsula independiente de la plataforma del código con un entorno de ejecución específico de la plataforma en las aplicaciones para Mac OS X y Windows.
  • Mono (una versión de código abierto de Microsoft NET.): Un marco multiplataforma para las aplicaciones y lenguajes de programación.
  • Monocross es una fuente abierta del patrón de diseño modelo-vista-controlador en el que se comparten el modelo y el controlador multi-plataforma, pero la vista es específica de la plataforma.
  • MoSync es un SDK de código abierto para el desarrollo de aplicaciones móviles en la plataforma C++ familia.
  • Framework de la aplicación Mozilla: Una plataforma de código abierto para el desarrollo de Mac OS X, las aplicaciones de Windows y Linux.
  • OpenGL: Una biblioteca multiplataforma de gráficos 3D.
  • Qt (toolkit): Una estructura de aplicaciones y Widget Toolkit para sistemas Unix con X11, Microsoft Windows, Mac OS X, disponible tanto en virtud de código abierto y licencias propietarias.
  • Real Studio: un IDE RAD desarrollado por Real Software, utiliza un dialecto orientado a objetos del lenguaje de programación BASIC, y produce binarios compilados para Mac OS X, Windows y Linux, como también, ser capaz de producir cgi aplicaciones basadas en web. El soporte iOS está actualmente en desarrollo.
  • Simple DirectMedia Layer: Una librería de multimedia multiplataforma de código abierto, escrita en C que proporciona acceso de nivel bajo y alto a los gráficos, de entrada, audio, etc.
  • Plataforma Smartface: Una herramienta multiplataforma para Windows que se usa para crear aplicaciones móviles para J2ME, Symbian S60, Blackberry y Android, usando herramientas de arrastrar y soltar y edición de acciones.
  • Tcl/Tk
  • Ultimate++: es un marco de desarrollo rápido de aplicaciones multiplataforma de C++ centrado en la productividad de los programadores. Incluye un conjunto de bibliotecas de usuario (GUI, SQL, etc.), Y un entorno de desarrollo integrado. Es compatible con Windows y Unix OS-s. El U++ compite con lenguajes de scripting populares preservando características de C/C++ de tiempo de ejecución. Tiene su propio entorno de desarrollo integrado, TheIDE, que cuenta con BLITZ-construir tecnología para aceleración de C++ reconstruyendo hasta 4 veces el compilado.
  • wxWidgets: un juego de herramientas widget de fuente abierta que es también un marco de aplicación. Se ejecuta en sistemas Unix con X11, Microsoft Windows y Mac OS X. Se permite que las aplicaciones escritas para usarlo para funcionar en todos los sistemas que lo soporta, si la aplicación no utiliza ningún sistema operativo específico de programación, además de a la misma.
  • XPower++: es un IDE multiplataforma para Windows, Linux, Mac OS X y sistemas operativos móviles.

Desafíos para el desarrollo multiplataforma

Hay algunos temas relacionados con el desarrollo de multiplataforma. Algunos de estos incluyen:

  • Pruebas de aplicaciones multiplataforma puede ser mucho más complicado, ya que las diferentes plataformas pueden exhibir comportamientos ligeramente diferentes o errores sutiles. Este problema ha llevado a algunos desarrolladores a ridiculizar el desarrollo multiplataforma como «escribir una vez, depurar en todas partes», eslogan de marketing.
  • Los desarrolladores a menudo se limitan a utilizar el mínimo común denominador subconjunto de características que están disponibles en todas las plataformas. Esto puede afectar al rendimiento de la aplicación o prohibir el uso de los desarrolladores características más avanzadas de la plataforma.
  • Las diferentes plataformas a menudo tienen diferentes convenciones de interfaz de usuario, que aplicaciones multiplataforma no siempre acomodar. Por ejemplo, las aplicaciones desarrolladas para Mac OS X y GNOME se supone que coloque el botón más importante en la parte derecha de la ventana o cuadro de diálogo, mientras que Microsoft Windows y KDE tienen la convención opuesta. Aunque muchas de estas diferencias son sutiles, una aplicación multiplataforma que no se ajusta adecuadamente a estos convenios puede sentirse torpe o ajeno al usuario. Cuando se trabaja con rapidez, a esas convenciones se oponen incluso puede resultar en la pérdida de datos , como en un cuadro de diálogo para confirmar si el usuario desea guardar o descartar los cambios realizados en un archivo.
  • Lenguajes de secuencias de comandos y las máquinas virtuales deben ser traducidos a código ejecutable nativo cada vez que se ejecuta la aplicación, imponiendo una penalización en el rendimiento. Esta pena puede ser aliviado mediante técnicas avanzadas como la compilación just-in-time, pero incluso con estas técnicas, algo de sobrecarga computacional puede ser inevitable.
  • Las diferentes plataformas requieren el uso de formatos de paquetes nativos tales como RPM y MSI. Multiplataforma instaladores como InstallAnywhere, JExpress, InstallBuilder o IzPack satisfacer esta necesidad.
  • Entornos de ejecución multiplataforma pueden sufrir fallos de seguridad multiplataforma, creando un ambiente fértil para el malware multiplataforma.

Referencias

  1. «Definición de Multiplataforma». Consultado el 21 de marzo de 2014. 


  •   Datos: Q174666
  •   Multimedia: Cross-platform software

multiplataforma, este, artículo, sobre, informática, detectó, siguiente, problema, favor, edítalo, para, mejorarlo, carece, fuentes, referencias, aparezcan, fuente, acreditada, este, aviso, puesto, marzo, 2014, texto, sigue, traducción, defectuosa, quieres, co. En este articulo sobre informatica se detecto el siguiente problema Por favor editalo para mejorarlo Carece de fuentes o referencias que aparezcan en una fuente acreditada Este aviso fue puesto el 20 de marzo de 2014 El texto que sigue es una traduccion defectuosa Si quieres colaborar con Wikipedia busca el articulo original y mejora esta traduccion Copia y pega el siguiente codigo en la pagina de discusion del autor de este articulo subst Aviso mal traducido Multiplataforma En informatica se denomina multiplataforma a un atributo conferido a programas informaticos o metodos y conceptos de computo que son implementados y operan internamente en multiples plataformas informaticas El software multiplataforma puede dividirse en dos grandes tipos o clases uno requiere una compilacion individual para cada plataforma que le da soporte y el otro se puede ejecutar directamente en cualquier plataforma sin preparacion especial por ejemplo el software escrito en un lenguaje interpretado o bytecode precompilado portable para los cuales los interpretes o paquetes en tiempo de ejecucion son componentes comunes o estandar de todas las plataformas Por ejemplo una aplicacion multiplataforma puede ejecutarse sin problema alguno tanto en Microsoft Windows en la arquitectura x86 como en Linux en la arquitectura x86 y Mac OS X ya sea en el PowerPC o sistemas Apple Macintosh basados en x86 En general una aplicacion multiplataforma se puede ejecutar tanto en todas las plataformas existentes o como minimo dos plataformas 1 Indice 1 Plataformas 1 1 Plataformas de hardware 1 2 Plataformas de software 1 2 1 Plataforma Java 1 3 Software multiplataforma 1 4 Aplicaciones Web 1 5 Aplicaciones basicas 1 6 Aplicaciones avanzadas 2 Multiplataforma en los videojuegos 2 1 Juego multiplataforma 3 Estrategias de diseno 3 1 Degradacion correcta 3 2 Separacion de funciones 3 3 Codigo base multiple 3 4 Bibliotecas de terceros 4 Estrategias de prueba 5 Aplicaciones tradicionales 6 Software binario 7 Scripts y lenguajes interpretados 8 Videojuegos 9 Software plataforma independiente 10 Programacion multiplataforma 10 1 Metodos de programacion multiplataforma 10 2 Herramientas de programacion y entornos multiplataforma 10 3 Desafios para el desarrollo multiplataforma 11 ReferenciasPlataformas EditarUna plataforma es una combinacion de hardware y software utilizado para ejecutar aplicaciones de software Una plataforma puede ser descrita simplemente como un sistema operativo o arquitectura de ordenador o podria ser la combinacion de ambos un ejemplo de una plataforma comun es Microsoft Windows que se ejecuta en la arquitectura x86 Otras conocidas plataformas de computadoras de escritorio incluyen Linux Unix y Mac OS X ambos de los cuales son a su vez multiplataforma Hay sin embargo muchos dispositivos como los telefonos moviles que tambien son efectivamente plataformas informaticas aunque comunmente sean menos considerados de esa manera Una aplicacion se puede escribir en dependencia de las caracteristicas de una determinada Plataforma ya sea el hardware sistema operativo o maquina virtual en que se ejecuta La plataforma Java es una maquina virtual de la plataforma que se ejecuta en sistemas operativos y tipos de hardware y es una plataforma de software comun para escribir programar Plataformas de hardware Editar Una plataforma de hardware puede referirse a la arquitectura del ordenador o la arquitectura del procesador Por ejemplo los CPUs x86 y x86 64 constituyen una de las mas comunes arquitecturas de computadoras en uso en los ordenadores de proposito general Estas maquinas suelen ejecutar una version de Microsoft Windows aunque tambien se puede ejecutar otro sistemas operativos tales como Linux OpenBSD NetBSD Mac OS X yFreeBSD Una arquitectura ARM es comun en los telefonos inteligentes y Tablet PC que corren Windows Android iOS y otros sistemas operativos moviles Plataformas de software Editar Las plataformas de software puede ser un sistema operativo o entorno de programacion aunque mas comunmente se trata de una combinacion de ambos Una notable excepcion a esto es Java que utiliza un sistema operativo independiente de la maquina virtual para cada codigo compilado conocido en el mundo de Java como bytecode Ejemplos de plataformas de software incluyen Android sistema operativo para telefonos inteligentes y Tablet PC AmigaOS m68k AmigaOS 4 PowerPC AROS x86 PowerPC m68k MorphOS PowerPC BSD muy multiplataforma ver NetBSD por ejemplo Java Linux x86 x86 64 PowerPC y otras arquitecturas iOS ARM Mac OS X x86 x86 64 Microsoft Windows x86 x86 64 ARM DOS sistemas de tipo en el x86 MS DOS IBM PC DOS DR DOS FreeDOS etc OS 2 eComStation Solaris SPARC x86 x86 64 La CLI tambien conocido por los nombres de aplicacion NET Framework de Microsoft y Mono de Novell Plataforma Java Editar Como ya se ha senalado la plataforma Java es una excepcion a la regla general de que un sistema operativo es una plataforma de software El lenguaje Java requiere de una maquina virtual o un CPU virtual en el que se ejecuta todo el codigo que se escribe en el lenguaje Esto permite que el mismo ejecutable binario pueda ejecutarse en todos los sistemas apoyado por el software Java a traves del uso de una maquina virtual Java JVM Ejecutables de Java no se ejecutan de forma nativa en el sistema operativo es decir ni de Windows ni Linux ejecutan programas Java directamente Aunque el codigo Java no se ejecuta de forma nativa la JVM es plenamente capaz de proporcionar servicios relacionados con el sistema operativo como el disco I O y el acceso a la red si los privilegios adecuados se conceden La JVM permite a los usuarios decidir el nivel de proteccion adecuado segun una ACL Por ejemplo el acceso a disco y de red esta habilitado normalmente para aplicaciones de escritorio pero no para applets basados en el navegador JNI tambien se puede utilizar para permitir el acceso a funciones especificas de los sistemas operativos En la actualidad los programas Java pueden ejecutarse en Microsoft Windows Mac OS X Linux y sistemas operativos Solaris Para aplicaciones moviles los plugins de los navegadores se utilizan en dispositivos basados en Windows y Mac Android tiene soporte incorporado para Java Software multiplataforma Editar Para que el software pueda ser considerado multiplataforma debe ser capaz de funcionar en mas de una arquitectura de ordenador o sistema operativo Esto puede ser una tarea que consume tiempo ya que los diferentes sistemas operativos tienen diferentes interfaces de programacion de aplicaciones o API por ejemplo Linux utiliza una API diferente de Windows El hecho de que un determinado sistema operativo se pueda ejecutar en diferentes arquitecturas de computadora no quiere decir que el software escrito para ese sistema operativo automaticamente funcione en todas las arquitecturas que soporta el sistema operativo Por ejemplo a partir de agosto de 2006 OpenOffice org no se ejecutaba de forma nativa en los AMD64 o Intel 64 lineas de procesadores los estandares para computadores de x86 64 64 bit Sin embargo desde entonces la situacion ha cambiado y la suite OpenOffice org de software ha sido portada a los sistemas de 64 bit Esto tambien significa que solo porque un programa se escriba en un popular lenguaje de programacion como C o C no tiene por que funcionar en todos los sistemas operativos que soporten la programacion de dicho lenguaje o incluso en el mismo sistema operativo en una arquitectura diferente Aplicaciones Web Editar Las aplicaciones Web suelen ser descritas como multiplataforma ya que idealmente se puede acceder desde cualquiera de los diversos navegadores web en diferentes sistemas operativos Tales aplicaciones generalmente emplean una arquitectura de sistema cliente servidor y pueden variar ampliamente en complejidad y funcionalidad Esta amplia variabilidad complica considerablemente la meta de capacidad multiplataforma que es rutinariamente en contradiccion con el objetivo de funcionalidad avanzada Aplicaciones basicas Editar Aplicaciones web basicas lleva cabo la totalidad o la mayor parte del procesamiento de un servidor web Stateless y pasar el resultado al navegador web del cliente Toda la interaccion del usuario con la aplicacion consta de simples intercambios de solicitudes de datos y las respuestas del servidor Este tipo de aplicaciones son la norma en las fases iniciales de la World Wide Web de desarrollo de aplicaciones Tales aplicaciones siguen un simple transaccion modelo identica a la de servir paginas web estaticas Hoy en dia siguen siendo relativamente comun especialmente cuando la compatibilidad entre plataformas y la simplicidad se considera mas importante que las funcionalidades avanzadas Aplicaciones avanzadas Editar Ejemplos destacados de las aplicaciones web avanzadas incluyen la interfaz web a Gmail A9 com y la pagina web maps live com parte del Live Search servicio de Microsoft Tales aplicaciones avanzadas habitualmente dependen de las funciones adicionales que se encuentran solo en las versiones mas recientes de los navegadores web mas populares Estas dependencias incluyen Ajax JavaScript HTML Dinamico SVG y otros componentes de las aplicaciones ricas de Internet Las versiones antiguas de los navegadores web mas populares tienden a carecer de apoyo a ciertas caracteristicas Multiplataforma en los videojuegos EditarTambien puede aplicarse a los videojuegos lanzados en una gama de consolas de videojuegos computadoras especializadas dedicadas a la tarea de jugar juegos Entre los ejemplos de videojuegos multiplataforma se incluyen Miner 2049er Tomb Raider Legend FIFA serie de videojuegos NHL Series y Minecraft Cada uno de ellos ha sido lanzado en una variedad de plataformas de juego como la Wii PlayStation 3 Xbox 360 computadoras personales PC y dispositivos moviles Las caracteristicas de un sistema particular pueden alargar el tiempo necesario para implementar un videojuego en multiples plataformas Asi un videojuego puede ser lanzado inicialmente en unas pocas plataformas y posteriormente en las restantes Normalmente esta situacion se produce cuando se lanza un nuevo sistema de juego porque los desarrolladores de videojuegos necesitan familiarizarse con el hardware y el software asociados a la nueva consola Es posible que algunos juegos no se conviertan en multiplataforma debido a los acuerdos de licencia entre los desarrolladores y los fabricantes de consolas de videojuegos que limitan el desarrollo de un juego a una consola en particular Por ejemplo Disney podria crear un juego con la intencion de lanzarlo en las ultimas consolas de Nintendo y Sony En caso de que Disney conceda la licencia del juego a Sony en primer lugar se le podria exigir a cambio que lanzara el juego unicamente en la consola de Sony por un periodo corto o indefinido prohibiendo efectivamente el lanzamiento multiplataforma durante ese periodo Juego multiplataforma Editar Varios desarrolladores han implementado medios para jugar en linea mientras utilizan diferentes plataformas Psyonix Epic Games Microsoft y Valve poseen tecnologia que permite a los jugadores de Xbox 360 y PlayStation 3 jugar con jugadores de PC dejando la decision de que plataforma usar a los consumidores El primer juego que permitio este nivel de interactividad entre los juegos de PC y consola fue Quake 3 Los juegos que incluyen juego en linea multiplataforma incluyen Fortnite Battle Royale Rocket League Final Fantasy XIV Street Fighter V Killer Instinct Paragon y Fable Fortune y Minecraft con su actualizacion Better Together para Windows 10 ediciones VR Pocket Edition y Xbox One Estrategias de diseno EditarA causa de los intereses en conflicto de compatibilidad entre plataformas y funcionalidades avanzadas han surgido numerosas alternativas de diseno de aplicaciones web Tales estrategias incluyen Degradacion correcta Editar Degradacion correcta intenta proporcionar la misma funcionalidad o similar para todos los usuarios y plataformas mientras que la disminucion de la funcionalidad de un minimo comun denominator para obtener mas exploradores cliente limitados Por ejemplo un usuario que intenta usar una caracteristica limitada de un navegador para acceder a Gmail puede notar que Gmail cambia al modo basico con funcionalidad reducida Algunos ven esta estrategia como una forma menor de la capacidad multiplataforma Separacion de funciones Editar La separacion de las funcionalidades para simplificar la omicion de los subconjuntos de funciones que no soportan los exploradores de los clientes dentro de ciertos sistemas operativos sin dejar de ofrecer una completa aplicacion para el usuario Codigo base multiple Editar Multiples aplicaciones codebase presentar diferentes versiones de una aplicacion en funcion del cliente especifico en uso Esta estrategia es sin duda la forma mas complicada y costosa de cumplir la capacidad multiplataforma ya que incluso las diferentes versiones del navegador del cliente mismo dentro del mismo sistema operativo puede diferir considerablemente entre si Esto se complica aun mas por el apoyo a plugins que puede o no estar presente para cualquier instalacion dada de un navegador web particular Bibliotecas de terceros Editar Bibliotecas de terceros intentan simplificar la capacidad multiplataforma de esconder las complejidades de las diferencias de los clientes detras de un API unificada Estrategias de prueba EditarUn aspecto complicado del diseno de las aplicaciones web multiplataforma es la necesidad de pruebas de software Ademas de las complicaciones mencionadas anteriormente existe la restriccion adicional de que algunos navegadores web prohiben la instalacion de diferentes versiones del mismo navegador en el mismo sistema operativo Tecnicas tales como la virtualizacion completa se utilizan a veces como una solucion para este problema Aplicaciones tradicionales EditarAunque las aplicaciones web se estan convirtiendo cada vez mas popular muchos usuarios todavia utilizan la aplicacion de software tradicional que no se basa en una arquitectura cliente servidor web La distincion entre las tradicionales y las aplicaciones web no es siempre inequivoca sin embargo ya que las aplicaciones tienen muchas caracteristicas diferentes los metodos de instalacion y arquitecturas y algunas de ellas pueden superponerse y ocurrir de maneras que difuminan la distincion Sin embargo esta distincion simplificada es una generalizacion comun y util Software binario EditarTradicionalmente en la informatica moderna la aplicacion de software se ha distribuido a los usuarios finales como imagenes binarias que se almacenan en archivos ejecutables un tipo especifico de archivo binario Estos ejecutables solo admiten el sistema operativo y arquitectura de computadores que fueron construidas lo que significa que haciendo un ejecutable multiplataforma seria algo asi como una enorme tarea y por lo general no se hace Para el software que se distribuye como un archivo ejecutable binario como el software escrito en C o C el programador debe crear el software para cada sistema operativo diferente y arquitectura de computadoras Por ejemplo Mozilla Firefox un navegador web de codigo abierto esta disponible en Microsoft Windows Mac OS X tanto PowerPC y x86 a traves de algo que Apple llama un binario universal y Linux en arquitecturas de varios equipos Las tres plataformas en este caso de Windows Mac OS X y Linux son distribuciones ejecutables independientes si bien proceden del mismo codigo fuente En el contexto del software binario los programas multiplataforma estan escritos en el codigo fuente y luego traducido a cada sistema que se ejecuta a traves de la compilacion en plataformas diferentes Ademas el software puede ser portado a una arquitectura de computadora nueva o sistema operativo para que el programa se hace mas multiplataforma de lo que ya es Por ejemplo un programa como Firefox que ya se ejecuta en Windows en la familia x86 se puede modificar y re programar para ejecutarse en Linux en x86 y potencialmente otras arquitecturas tambien Como alternativa a la portabilidad la virtualizacion de multiplaforma permite que las aplicaciones compiladas para una CPU y el sistema operativo se ejecute en un sistema con una CPU y o sistema operativo sin modificar el codigo fuente o binarios Por ejemplo Apple Rosetta software que esta integrado en Intel basados en ordenadores Apple Macintosh ejecuta las aplicaciones compiladas para la anterior generacion de Mac que utilizan PowerPC CPU Otro ejemplo es IBM PowerVM Lx86 que permite Linux x86 aplicaciones para ejecutarse sin modificaciones en el Linux Sistema operativo de encendido Scripts y lenguajes interpretados EditarUn script puede ser considerado como multiplataforma si su interprete esta disponible en multiples plataformas y la secuencia de comandos solo utiliza los servicios proporcionados por el lenguaje Es decir un script escrito en Python para un sistema como Unix probablemente se ejecutara con poca o ninguna modificacion en el de Windows ya que tambien se ejecuta en Python de Windows tambien hay mas de una implementacion de Python que se ejecutan los mismos scripts por ejemplo IronPython para NET Lo mismo ocurre con muchos de los lenguajes de programacion de codigo abierto que estan disponibles y son lenguajes de scripting A diferencia de los binarios ejecutables el script puede utilizar el mismo en todos los equipos que tienen el software para interpretar la secuencia de comandos Esto se debe a que las secuencias de comandos se almacenan generalmente en un texto sin formato en un archivo de texto Puede haber algunos problemas sin embargo como el tipo de caracter de linea nueva que se encuentra entre las lineas Generalmente sin embargo el trabajo poco o nada tiene que hacer para que un script escrito para un sistema ejecute en otro Algunos muy populares entre plataformas scripting o lenguajes interpretados son Bash Un shell de Unix en el que comunmente se ejecutan en Linux y otros modernos sistemas Unix asi como en Windows a traves de Cygwin POSIX capa de compatibilidad Perl Un lenguaje de scripting creado en 1987 Se utiliza para programacion CGI WWW pequenos sistemas de administracion de tareas y mas PHP El lenguaje de scripting mas popular en uso de las aplicaciones web Python Un moderno lenguaje de programacion donde la atencion se centra en el desarrollo rapido de aplicaciones y la facilidad de la escritura en lugar se obtiene un programa eficiente en tiempo de ejecucion Ruby Un lenguaje de scripting cuyo proposito es ser orientado a objetos y facil de leer Tambien se puede utilizar en la web a traves de Ruby on Rails Tcl Un lenguaje de programacion dinamico adecuado para una amplia gama de aplicaciones incluyendo aplicaciones web y de escritorio redes administracion de pruebas y muchos mas Videojuegos EditarMultiplataforma es un termino que tambien puede aplicarse a los videojuegos liberados en una serie de consolas de videojuegos especializados ordenadores dedicados a la tarea de jugar Ejemplos de juegos de video multiplataforma son Minero 2049er Phantasy Star Online Tomb Raider Legend FIFA SeriesCada uno ha sido puesto en libertad a traves de una variedad de plataformas de juego como la Wii PlayStation 3 Xbox 360 ordenadores personales PCs y dispositivos moviles Las caracteristicas de un sistema particular puede prolongar el tiempo necesario para implementar un juego de video en multiples plataformas Asi un videojuego puede inicialmente ser puesto en algunas plataformas y posteriormente puesto en libertad el resto de plataformas Por lo general esta situacion se produce cuando un nuevo sistema de juego es liberado porque los desarrolladores de videojuegos que se familiaricen con el hardware y el software asociado con la nueva consola Algunos juegos no pueden ser multiplataforma debido a los acuerdos de licencia entre los desarrolladores y fabricantes de videojuegos de consola que limitan el desarrollo de un juego para una consola en particular Como ejemplo Disney podria crear un juego con la intencion de la liberacion en la ultima Nintendo y Sony consolas de juegos En caso de licencia de Disney del juego de Sony primero Disney puede en cambio ser necesaria para liberar el juego unicamente en Sony de la consola por un corto tiempo o indefinidamente Varios desarrolladores han puesto en marcha los medios para jugar juegos en linea durante el uso de diferentes plataformas Epic Games Microsoft y Valve Software todos poseemos la tecnologia que permite a Xbox 360 y PlayStation 3 a los jugadores jugar con los jugadores de PC dejando la decision de que plataforma utilizar para los consumidores El primer juego para permitir que este nivel de interactividad entre el PC y consola de juegos era Quake 3 Los juegos que ofrecen multiplataforma juego en linea incluyen Kane amp Lynch Dead Men Lost Planet Colonies Phantasy Star Online Shadowrun BlazBlue Calamity Trigger Uno Final Fantasy XI Online El Universo en Guerra Asalto a la Tierra Cuarto de juegos Team Fortress 2 Portal 2 Dust 514 con Eve Online MinecraftSoftware plataforma independiente EditarEl software que es independiente de la plataforma no se basa en las caracteristicas especiales de cualquier plataforma unica o si lo hace se ocupa de las caracteristicas especiales que la hacen frente a multiples plataformas Programacion multiplataforma EditarLa programacion multiplataforma es la practica de la forma activa de la escritura de software que funciona en mas de una plataforma Metodos de programacion multiplataforma Editar Hay diferentes maneras de abordar el problema de escribir una aplicacion multiplataforma Una de ellos es simplemente crear varias versiones del mismo programa en diferentes arboles de codigo fuente es decir la version de Windows de un programa puede tener un conjunto de archivos de codigo fuente y la version de Macintosh podria tener otro mientras que un software libre con sistema Unix podria tener otro Si bien este es un enfoque simple para el problema tiene el potencial de ser mucho mas caro en costos de desarrollo tiempo de desarrollo o ambos sobre todo para las entidades corporativas La idea detras de esto es crear mas de dos programas diferentes que tienen la capacidad de comportarse de manera similar a la otra Tambien es posible que este medio de desarrollo de una aplicacion multiplataforma dara lugar a mas problemas de seguimiento de errores y corregir porque los dos arboles diferentes fuentes tendria programadores diferentes y por lo tanto los defectos diferentes en cada version Cuanto menor sea el equipo de programacion mas rapido las correcciones de errores tienden a ser Otro enfoque que se utiliza es depender de un software preexistente que oculta las diferencias entre la platform llamado abstraccion de la Platform de tal manera que el programa en si mismo no es consciente de la plataforma que se esta ejecutando Se podria decir que este tipo de programas son independientes de la plataforma Los programas que se ejecutan en la maquina virtual de Java JVM se construyen de esta manera Algunas aplicaciones mezclan diversos metodos de programacion multiplataforma para crear la aplicacion final Un ejemplo de esto es el navegador web Firefox que utiliza la abstraccion para construir algunos de los componentes de nivel inferior subestructuras separadas de codigo para implementar las caracteristicas especificas de la plataforma como la interfaz grafica de usuario y la aplicacion de mas de un lenguaje de scripting para ayudar a facilitar facilidad de portabilidad Firefox implementa XUL CSS y JavaScript para la extension del navegador ademas de plugins al estilo del clasico navegador Netscape Gran parte del mismo navegador en si esta escrito en XUL CSS y JavaScript tambien Herramientas de programacion y entornos multiplataforma Editar Hay una serie de herramientas que estan disponibles para ayudar a facilitar el proceso de programacion multiplataforma El Cairo Un software libre biblioteca que se utiliza para proporcionar un vector basado en graficos independiente del API del dispositivo Esta disenado para proporcionar primitivas para dibujos bidimensionales a traves de un numero de diferentes sistemas de apoyo El Cairo esta escrito en C y tiene enlaces para muchos lenguajes de programacion Eclipse Entorno de desarrollo multiplataforma codigo abierto Implementado en Java con una arquitectura configurable que soporta muchas herramientas para desarrollo de software Complementos disponibles para varios lenguajes como Java y C FLTK Otro codigo abierto multiplataforma Kit de herramientas pero mas ligero ya que se limita a la GUI fpGUI Un conjunto de herramientas de fuente abierta widget de que esta completamente implementado en Object Pascal Actualmente es compatible con Linux Windows y un poco de Windows CE GeneXus En Windows es una solucion rapida de desarrollo de software para la creacion de aplicaciones multiplataforma y de despliegue basado en la representacion del conocimiento y el apoyo a C Cobol Java incluyendo Android y BlackBerry dispositivos inteligentes Objective C para el de Apple dispositivos moviles RPG Ruby Visual Basic y Visual FoxPro GTK Un conjunto de herramientas de codigo abierto para el widget de sistemas tipo Unix con X11 y Microsoft Windows haXe Un lenguaje multiplataforma de codigo abierto Juce Un framework de aplicaciones escritas en C que se utiliza para escribir software nativo en numerosos sistemas Microsoft Windows POSIX Mac OS X sin cambios en el codigo Max MSP Un lenguaje de programacion Visual que encapsula independiente de la plataforma del codigo con un entorno de ejecucion especifico de la plataforma en las aplicaciones para Mac OS X y Windows Mono una version de codigo abierto de Microsoft NET Un marco multiplataforma para las aplicaciones y lenguajes de programacion Monocross es una fuente abierta del patron de diseno modelo vista controlador en el que se comparten el modelo y el controlador multi plataforma pero la vista es especifica de la plataforma MoSync es un SDK de codigo abierto para el desarrollo de aplicaciones moviles en la plataforma C familia Framework de la aplicacion Mozilla Una plataforma de codigo abierto para el desarrollo de Mac OS X las aplicaciones de Windows y Linux OpenGL Una biblioteca multiplataforma de graficos 3D Qt toolkit Una estructura de aplicaciones y Widget Toolkit para sistemas Unix con X11 Microsoft Windows Mac OS X disponible tanto en virtud de codigo abierto y licencias propietarias Real Studio un IDE RAD desarrollado por Real Software utiliza un dialecto orientado a objetos del lenguaje de programacion BASIC y produce binarios compilados para Mac OS X Windows y Linux como tambien ser capaz de producir cgi aplicaciones basadas en web El soporte iOS esta actualmente en desarrollo Simple DirectMedia Layer Una libreria de multimedia multiplataforma de codigo abierto escrita en C que proporciona acceso de nivel bajo y alto a los graficos de entrada audio etc Plataforma Smartface Una herramienta multiplataforma para Windows que se usa para crear aplicaciones moviles para J2ME Symbian S60 Blackberry y Android usando herramientas de arrastrar y soltar y edicion de acciones Tcl Tk Ultimate es un marco de desarrollo rapido de aplicaciones multiplataforma de C centrado en la productividad de los programadores Incluye un conjunto de bibliotecas de usuario GUI SQL etc Y un entorno de desarrollo integrado Es compatible con Windows y Unix OS s El U compite con lenguajes de scripting populares preservando caracteristicas de C C de tiempo de ejecucion Tiene su propio entorno de desarrollo integrado TheIDE que cuenta con BLITZ construir tecnologia para aceleracion de C reconstruyendo hasta 4 veces el compilado wxWidgets un juego de herramientas widget de fuente abierta que es tambien un marco de aplicacion Se ejecuta en sistemas Unix con X11 Microsoft Windows y Mac OS X Se permite que las aplicaciones escritas para usarlo para funcionar en todos los sistemas que lo soporta si la aplicacion no utiliza ningun sistema operativo especifico de programacion ademas de a la misma XPower es un IDE multiplataforma para Windows Linux Mac OS X y sistemas operativos moviles Desafios para el desarrollo multiplataforma Editar Hay algunos temas relacionados con el desarrollo de multiplataforma Algunos de estos incluyen Pruebas de aplicaciones multiplataforma puede ser mucho mas complicado ya que las diferentes plataformas pueden exhibir comportamientos ligeramente diferentes o errores sutiles Este problema ha llevado a algunos desarrolladores a ridiculizar el desarrollo multiplataforma como escribir una vez depurar en todas partes eslogan de marketing Los desarrolladores a menudo se limitan a utilizar el minimo comun denominador subconjunto de caracteristicas que estan disponibles en todas las plataformas Esto puede afectar al rendimiento de la aplicacion o prohibir el uso de los desarrolladores caracteristicas mas avanzadas de la plataforma Las diferentes plataformas a menudo tienen diferentes convenciones de interfaz de usuario que aplicaciones multiplataforma no siempre acomodar Por ejemplo las aplicaciones desarrolladas para Mac OS X y GNOME se supone que coloque el boton mas importante en la parte derecha de la ventana o cuadro de dialogo mientras que Microsoft Windows y KDE tienen la convencion opuesta Aunque muchas de estas diferencias son sutiles una aplicacion multiplataforma que no se ajusta adecuadamente a estos convenios puede sentirse torpe o ajeno al usuario Cuando se trabaja con rapidez a esas convenciones se oponen incluso puede resultar en la perdida de datos como en un cuadro de dialogo para confirmar si el usuario desea guardar o descartar los cambios realizados en un archivo Lenguajes de secuencias de comandos y las maquinas virtuales deben ser traducidos a codigo ejecutable nativo cada vez que se ejecuta la aplicacion imponiendo una penalizacion en el rendimiento Esta pena puede ser aliviado mediante tecnicas avanzadas como la compilacion just in time pero incluso con estas tecnicas algo de sobrecarga computacional puede ser inevitable Las diferentes plataformas requieren el uso de formatos de paquetes nativos tales como RPM y MSI Multiplataforma instaladores como InstallAnywhere JExpress InstallBuilder o IzPack satisfacer esta necesidad Entornos de ejecucion multiplataforma pueden sufrir fallos de seguridad multiplataforma creando un ambiente fertil para el malware multiplataforma Referencias Editar Definicion de Multiplataforma Consultado el 21 de marzo de 2014 Datos Q174666 Multimedia Cross platform software Obtenido de https es wikipedia org w index php title Multiplataforma amp oldid 141181523, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos