¿Es posible las aplicaciones portables multisistema?

Me pregunto, cuan profano en muchos temas:

¿Es posible tener aplicaciones portables que puedan ejecutarse en varios sistemas operativos?

Me supongo que hacer un solo ejecutable para que funcione en todos ellos puede ser problemático, pero hacer varios ejecutables que permitan utilizar la configuración y personalización que tenga aplicada cada usuario sobre una utilidad portable ¿sería posible?

Actualmente las aplicaciones portables permiten ejecutar programas en ordenadores que no tienen instalados éstas, de ese modo acceder a utilidades de una forma mas personalizada en ordenadores que no sean tuyos, estés de visita, o tengas que usar en un momento dado.

En mi época amiguera inicial, existía un programa, llamado LHA, éste era un compresor de archivos. El LHA que usaba estaba tan bien hecho que podía usarse tanto en Amiga como en PC. Era un programa por línea de comandos, pero el programa detectaba cuando se estaba ejecutando en uno u en otro sistema y hacia su función.

Me pregunto si esto sería posible realizarlo en otros sistemas aunque dependan de la misma plataforma, por ejemplo un PC con Windows y otro con Linux. ¿Sería posible algo así?

Este planteamiento no solo sería factible para aplicaciones sino para cualquier sector del sistema operativo, juegos, demos, aplicaciones, etc…

Así como los ficheros generados (textos, gráfico, audio, video, etc) pueden usarse en diferentes aplicaciones. Las aplicaciones portables multisistema podrían ser una forma de fusionar interface para usuarios que las utilicen habitualmente. Así solo tendrían que personalizar una aplicación sin tener varias iguales o tener que instalar aplicaciones similares y personalizas en varios sistemas. Por no hablar de la posibilidad de poder saltar de un sistema a otro sin dejar de utilizar todos aquellos programas que estén preparados para ello.

Seguramente el problema principal serian las bibliotecas o funciones que se utilizan de forma diferente en cada sistema operativo. Aunque siempre, me supongo que con una programación inteligente, podrían aprovecharse éstas según el sistema donde se ejecute. Así por ejemplo en juegos utilizar DirectX u OpenGL por poner un ejemplo, o bibliotecas de un sistema que se llamen de una forma y de otra en otro dependiendo de dónde se ejecute. Mientras que la configuración podría ser genérica para todos ellos. E incluso el interface utilizar el personalizado en cada sistema o poder elegir la “piel” personalizada para cada usuario. Habrá unos que se manejen bien con un sistema genérico según sus preferencias y otros que no se acostumbren a tener que cambiar según la aplicación que usen.

¿Qué pensáis vosotros?
¿Es posible o viable esto hoy en día?
¿Creéis que puede ser el futuro de las aplicaciones?
¿Sabéis si ya se está haciendo algo así?

Comentadme… 🙂

5 comentarios

  1. Si es posible y siempre se ha hecho, el problema es que a mayor compatibilidad con diferente hardware menos optimización, ya solo el poner un tipo de tarjeta gráfica diferente de un año para otro y de la misma marca cambia, puede tener los drivers mejor optimizados para la anterior e ir peor aun siendo mas nueva. Con la potencia cada vez importa menos pero siempre hay algun programa que rendiría mas si se optimizara para cada hardware. Para mi lo ideal seria un hardware fijo como una consola y sacar un modelo nuevo cada 5 años.

  2. Hoy en día la innovación de hardware cada vez se nota menos, y prueba de ello es que cada vez se alarga mas la venta de cierto hardware. Donde antes había un boom y se notaba un poco esa potencia, ahora ya no se nota. Mucha gente sigue tirando de “viejos equipos” porque funciona el ultimísimo soft del momento. Y eso que intentan por todos los medios acortar la vida del hardware de mil y una forma posible: desde que se fastidie solo cada x tiempo, o lo que llaman obsolescencia programada. Hasta que deje de funcionar adecuadamente con “una actualización de…”. O que determinado programa o sistema no se pueda poner porque necesitas unas prestaciones bastante dudosas. O incluso te saturan el mercado con aparatos “cada vez mas baratos” de calidades diferentes. O te bombardean el cerebro con mentiras e información de “esto va mucho mejor…”, etc, etc, etc.

    Aun así, hay muchas aplicaciones portables hoy en día, que salen para los tres sistemas mas usados, por lo general, creo que son todo de 32 bits y de 64 bits, ya sea para Windows, Mac OS y distribuciones Linux. Por lo que dichas aplicaciones parece que están “bastante optimizadas” para su uso, ya que muchas tienden a usar los componentes base del sistema, además de algunas bibliotecas que supongo que estarán en los 3 sistemas para donde son programados.

    Ahora bien, ya que sacan con cada nueva versión de software para estos programas, 3 o mas versiones para dichos sistemas operativos. ¿Por qué no sacar un pack especial que contenga las tres versiones ejecutables y que tire de la misma configuración de todas ellas?

    Esta sería la lógica evolución de ciertas aplicaciones portables. Aunque claro está, parece que el término de aplicación portable esta mas extendido para los “usuarios de Windows” que para los de distribuciones Linux y sistema del Apple Macintosh.

    Para juegos y demos, claro que es mas problemático optimizar, debido principalmente a lo que todos sabemos, la cantidad de hardware que hay para todos estos ordenadores. Por lo que “juegos portables” sería mas problemático, aunque como dices también: “hoy en día se optimiza menos cada vez..” ¿se notaría mucho la no pérdida de rendimiento que no hacen? 🙂

  3. Es lo que pretendían con java.

    Depende de la optimizacion necesaria. Pongamos el caso de Amiga, una plataforma que solo se añadía algo mas de memoria o se ampliaba la chip, no voy a llegar a cambios de procesador y ampliaciones mas complicadas, con solo esos cambios ya hay que reprogramar para aprovecharlo o simplemente para que funcione igual, pero no de problemas. Si con solo esos cambios ya hay lío, imagina lo que sera hacer cambios mas grandes y además mezclar varias marcas y tipos de componentes, además añadimos mas sistemas a la receta y sumamos incompatibilidades de leer archivos antiguos en versiones mas modernas del mismo programa, es una receta imposible de optimizar al 100%.

    Ahora pongamos que somos un programador y hacemos algo perfecto en un determinado hardware, con cada variación tendremos que rehacerlo casi entero según el caso y todo ese tiempo que se podría mejorar el programa se pierde en hacerlo compatible con todas las variaciones posibles y para que de menos problemas usamos intermediarios como son librerias, drivers, compiladores, virtualización y algunos hasta scripts, con todo esto es normal que no se aproveche en muchos casos más que una pequeña parte de la potencia. La única solución es crear un hardware con toda la experiencia de ahora y apenas modificarlo, planificando su mejora, por ejemplo un hardware multinúcleo que en principio sea de dos núcleos a 10mhz y previsto para llegar a un millón de núcleos y 10Ghz por ejemplo o mejor sin limites, que sirva según la potencia para todo, servidores, sobremesa , moviles , microcontroladores etc.  Unificar programacion, que no existan mil librerías para dibujar un circulo, las mas eficientes se dejan y el resto se eliminan. ¿Quien no ha usado varios programas similares y ninguno tenia todo lo bueno de otros? Yo he usado uno para una cosa y el resultado lo he pasado a otro que hace lo mismo pero uso algo que en el otro no es tan fácil o bien hecho y así hasta 3 programas similares pasando de uno a otro.

    Tanta variedad al final ha resultado contraproducente tanto en hardware como software y no se puede cambiar con la sociedad actual, que si competencia,patentes, dinero etc. Haría falta una sociedad ficticia como star trek  sin dinero y en la que tienen un solo sistema y hardware, cada cual hace lo que quiere se le asigna un puesto conforme a ello y si hay alguna investigación se aplica sin dosificarla y no como ahora, usando tecnología descubierta hace años porque hay que amortizar la investigación y sacar dinero.

    Como esto no se puede cambiar a menos que pase un cataclismo y no tengamos nada que perder, mejor no calentarse la cabeza por un programa que va el doble o triple de lento de lo que debería.

  4. Las de Portableapps.com funcionan bien en cualquier SO que soporte WINE o derivados wink

  5. Si bien es una excelente noticia saberlo, no todos las distribuciones Linux vienen con el pre-instalada, y cuando me refiero a “portable” es una aplicación que no requiere componentes adicionales que tengas que instalar. Pues eso ya implica de por si tener que requerir o dejar rastro en un sistema. Además no en todos los sistemas tienes privilegios para añadir componentes a éste. En los que uno use de sus propias máquinas sí, en los que algún familiar, amigo o conocido que te lo permita, también, pero a veces no tienes la suerte de poder instalar cualquier componente alegremente.

    Por eso me refería mas a tener un portable multisistema, que no necesite instalar nada adicional y que ejecute su parte de código dependiendo de en que sistema (de los conocidos y usados) se ponga. Se que esto obligaría a tener una parte del código que sea genérico (para un procesador en concreto pero que soporte muchos sistemas) y otra parte, aprovechando las bibliotecas de cada sistema que si están instaladas por defecto. o “en su defecto” (valga la redundancia) que venga con dichas bibliotecas dentro del portable para no requerir instalación alguna.

    Lo que si implicaría es que estos “portables” multisistema ocupasen mas precisamente por llevar todo lo necesario para ejecutarse en según que sistema.

    ¡Gracias por comentar! 🙂

ATENCIÓN: Puedes opinar sin meter Correo electrónico o Web.


Deja un comentario

Tu dirección de correo electrónico no será publicada.

*

code

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.