Qualcuno sa di un buon framework di sviluppo software o simile che ha le seguenti proprietà?Esistono piattaforme software runnable, non installabili, multipiattaforma (con interfaccia grafica)?
- Piattaforma incrociata: dovrebbe essere eseguibile su XP, Vista, OSX e versioni comuni di Linux (come Ubuntu e Kubuntu).
- Nessuna installazione: essere in grado di eseguire il software da una penna USB senza dover copiare nulla sul computer host.
- Avere un buon supporto GUI (questo è il motivo per cui this question non fornisce una risposta adeguata, per quanto ne so).
- Licenza permissiva come LGPL o BSD o simile.
Tra i requisiti più morbidi stanno avendo un insieme di astrazioni per le funzionalità più comuni backend, come prese, archiviare IO, e così via (C'è di solito alcuni adattamenti specifici della piattaforma necessari), e supportante una buona lingua così come Python o C++, anche se di solito è divertente impararne uno nuovo (cioè non perl).
Penso che i possibili candidati siano Qt 4.5 o successivo (ma il software IFAIK Qt non funzionerà su Vista senza alcuna installazione (?)), Alcuni wxWidgets o forse una soluzione wxPython, forse gtkmm. Gli esempi che ho trovato hanno fallito su uno o l'altro dei requisiti. Questo non significa che nessun esempio di questo tipo esista, significa solo che non ne ho trovato nessuno. Quindi mi stavo chiedendo se qualcuno là fuori sa di qualche soluzione esistente a questo?
Alcune precisazioni;
- Con "framework" intendo qualcosa come Qt o gtkmm o python con un pacchetto di widget.
- Si tratta di essere in grado di eseguire il prodotto finito su più piattaforme, da una chiavetta, senza installazione, non si tratta di avere un ambiente di sviluppo portatile.
- Non è uno stivale.
- È necessario compilare il software in modo specifico per i diversi target, se necessario.
Il caso d'uso che sto vedendo è che hai qualche software che si basano su (come la pianificazione del progetto, la somministrazione di informazioni, strumenti di analisi o simili) che:
- non si basa su avere una connessione internet è disponibile.
- viene eseguito su diverse macchine host in cui non è proprio corretto installare nulla.
- viene spostato da un utente tramite un supporto fisico (ad esempio una chiavetta USB).
- viene eseguito su diversi sistemi operativi, come Windows, Vista, Ubuntu, OSX.
- funziona sugli stessi dati su questi host diversi (i dati possono essere memorizzati sull'host o sul bastone).
- non è davvero limitato in quanto è grande il framework in bundle (a meno che non sia diversi gigabyte, che non è veramente realistico).
È anche corretto disporre di installazioni parallele sulla chiavetta finché il software si comporta allo stesso modo e può funzionare sugli stessi dati quando viene eseguito su destinazioni diverse.
Una vista diversa sul caso d'uso sarebbe che ho cinque macchine appena installate con Vista, XP, OSX, Ubuntu e Kubuntu rispettivamente davanti a me. Mi piacerebbe, senza dover installare nulla di nuovo sulle macchine, essere in grado di eseguire lo stesso software da una sola chiavetta USB (rispettando i requisiti della GUI di cui sopra e così via) su ciascuna di queste cinque macchine (anche se, se necessario, da diverse fasci sul bastone).
È possibile?
Modifica: Ho sperimentato un po 'con un'applicazione Qt che utilizza alcuni widget e un database SQLite. È stato facile farlo funzionare su un ubuntu dist e su osx. Per windows xp e vista ho dovuto copiare QtCored4.dll, QtGuid4.dll, QtSqld4.dll e mingwm10.dll nella directory di distribuzione (questo era il codice di debug) e ho copiato il qsqlited4.dll in una cartella denominata "sqldrivers" nella distribuzione directory.
Last.FM usa QT e che gira su Vista bene. – Fowl
Senza installazione? – FeatureCreep