¿Alguien sabe de un buen marco de desarrollo de software o similar que tenga las siguientes propiedades?¿Hay algún dispositivo USB ejecutable, sin instalación, con frameworks de software multiplataforma (con GUI)?
- Plataforma cruzada: debe poder ejecutarse en XP, Vista, OSX y versiones comunes de Linux (como Ubuntu y Kubuntu).
- Sin instalación: puede ejecutar el software desde una memoria USB sin tener que copiar nada en la máquina host.
- Tiene buena compatibilidad con la GUI (esta es la razón por la que this question no da una respuesta adecuada, por lo que puedo ver).
- Licencias permisivas como LGPL o BSD o similares.
Entre los requisitos más suaves están teniendo un conjunto de abstracciones para la funcionalidad de back-end más común, tales como enchufes, presentar IO, y así sucesivamente (Por lo general hay algunas adaptaciones específicas plataforma necesaria), y el apoyo a un buen lenguaje, tales como Python o C++, aunque generalmente es divertido aprender uno nuevo (es decir, no perl).
Creo que los posibles candidatos son Qt 4.5 o superior (pero el software IFAIK Qt no se ejecutará en Vista sin ninguna instalación (?)), Algunos wxWidgets o quizás la solución wxPython, quizás gtkmm. Los ejemplos que he encontrado han fallado en uno u otro de los requisitos. Esto no significa que no existan tales ejemplos, solo significa que no he encontrado ninguno. Entonces, me preguntaba si alguien por ahí sabe de alguna solución existente para esto.
Algunas aclaraciones;
- Por "framework" me refiero a algo así como Qt o gtkmm o python con un paquete de widgets.
- Se trata de poder ejecutar el producto final en múltiples plataformas, desde un dispositivo, sin instalación, no se trata de tener un entorno de desarrollo portátil.
- No es un bastón de arranque.
- Está bien tener que construir el software específicamente para los diferentes objetivos, si es necesario.
El caso de uso que estoy viendo es que tiene algún tipo de software que usted confía en (tales como la planificación de proyectos, administración de la información, las herramientas de análisis o similar) que:
- no se basa en tener una conexión a Internet está disponible.
- se ejecuta en diferentes máquinas host en las que no está realmente bien instalar nada.
- es movido por un usuario a través de un medio físico (como una memoria USB).
- se ejecuta en diferentes sistemas operativos, como Windows, Vista, Ubuntu, OSX.
- funciona con los mismos datos en estos diferentes hosts (los datos se pueden almacenar en el host o en el dispositivo).
- no está realmente restringido en qué tan grande es el marco incluido (a menos que sea varios gigabytes, lo que no es realmente realista).
También está bien tener instalaciones paralelas en el stick siempre que el software se comporte igual y pueda trabajar con los mismos datos cuando se ejecute en los diferentes objetivos.
Una vista diferente del caso de uso sería que tengo cinco máquinas recién instaladas con Vista, XP, OSX, Ubuntu y Kubuntu respectivamente frente a mí. Me gustaría, sin tener que instalar nada nuevo en las máquinas, poder ejecutar el mismo software desde un solo dispositivo USB (que cumpla con los requisitos de GUI anteriores, etc.) en cada una de estas cinco máquinas (aunque, si es necesario, desde diferentes paquetes en el palo).
¿Esto es posible?
Edit: He experimentado un poco con una aplicación Qt que utiliza algunos widgets y una base de datos sqlite. Fue fácil hacer que funcione en un ubuntu dist y en osx. Para Windows XP y Vista tuve que copiar QtCored4.dll, QtGuid4.dll, QtSqld4.dll y mingwm10.dll al directorio de distribución (esto era código de depuración) y copié el qsqlited4.dll a una carpeta llamada "sqldrivers" en la distribución directorio.
Last.FM utiliza QT y que se ejecuta en Vista bien. – Fowl
Sin instalación? – FeatureCreep