# Applicazione portabile

Per applicazione portabile (o applicazione portatile; in inglese portable application) si intende un software applicativo che non necessita di installazione all'interno del sistema operativo su cui viene eseguito. Programmi di questo genere possono essere memorizzati su supporto rimovibile come cd-rom o memorie flash.
Un'applicazione portabile può indistintamente essere eseguita su qualsiasi computer in cui si dispone di un sistema operativo compatibile con l'applicazione stessa. Il vantaggio per l'utente è quindi quello di poter utilizzare la medesima applicazione su macchine diverse mantenendo le impostazioni personalizzate nell'uso dell'applicazione. Un secondo vantaggio delle applicazioni portabili deriva dal fatto che non richiedendo installazione possono spesso essere eseguite anche in ambienti in cui non si dispone dei diritti di amministrazione sul sistema operativo.
Le applicazioni portabili non vanno confuse con la portabilità del software, che riguarda invece la possibilità di ottenere da un medesimo codice sorgente software compatibili con diversi sistemi operativi.
Esistono particolari software, detti creatori di applicazioni portabili, che consentono di rendere portabile un'applicazione.

## Caratteristiche

Una applicazione portabile (da non confondere con un'applicazione mobile) è generalmente costituita da uno o più eseguibili binari a cui possono essere associati altri file e cartelle necessarie al funzionamento del software. Quando il software è costituito soltanto dall'eseguibile principale si parla più propriamente di programma stand-alone.
Un'applicazione si può definire portabile solo se:
* non deve essere installata sul PC ospite per poter funzionare correttamente;
* funziona correttamente se viene eseguita da qualsiasi supporto del PC ospite, interno o esterno;
* non lascia tracce nel registro di Windows, né nelle cartelle utente, né in qualsiasi altra cartella del PC ospite, ma solo nella cartella da cui viene eseguito;
* non influisce sulle impostazioni dei programmi equivalenti che si trovano già normalmente installati sul PC ospite (ad esempio una versione portabile di Firefox eseguita da pendrive USB, non deve creare problemi né modificare le configurazioni della copia di Mozilla Firefox già installata sul PC ospite).

## Applicazioni portabili per sistemi operativi
### Windows

La maggior parte del software per sistemi Windows non è portabile. Questo per due ragioni fondamentali. Anzitutto in ambiente Windows molte impostazioni di configurazione del software vengono memorizzate nel registro di sistema. In secondo luogo, come è tipico dei sistemi multiutente, uno stesso software memorizza informazioni diverse a seconda dell'utente che lo esegue. Questi dati sono solitamente inseriti in particolari cartelle del profilo utente. Pertanto, affinché un software per Windows sia portabile, esso non deve fare ricorso al registro di sistema per memorizzare le proprie impostazioni, sostituendolo con file di configurazione (ad esempio file INI), ed inoltre deve memorizzare i file utente in una cartella interna a quella in cui risiede.

### Macintosh

Le applicazioni portabili per piattaforma Macintosh sono, per quantità e diffusione, meno numerose di quelle per piattaforma Windows. Il software scritto per sistemi Macintosh porta in sé un elevato grado di portabilità per via dei meccanismi stessi con cui il sistema gestisce l'installazione della applicazioni, tuttavia nella maggior parte dei casi file di configurazione o file utente vengono memorizzate nel disco su cui risiede il sistema operativo. Lo sviluppo di applicazioni pienamente portabili per Macintosh è comunque in rapida evoluzione.

### Sistemi Unix

Nei sistemi operativi Unix-like (UNIX, Linux, FreeBSD per esempio) vige da sempre una stretta visione multiutente che porta quasi tutto il software scritto per queste piattaforme ad uniformarsi al modo di lavorare del sistema operativo ospite. In particolare quindi tutte le impostazioni di configurazione del software e i file utente vengono inseriti solitamente in una home directory diversa per ogni utente del sistema. Questo approccio, molto positivo in termini di sicurezza informatica, rende però più complessa la realizzazione di software portabile.

## Altre applicazioni portabili

Molte applicazioni scritte in Java sono portabili. Questo perché moltissime applicazioni Java (anche se non tutte) non richiedono installazione sul sistema di destinazione: è sufficiente distribuire il file JAR che contiene il codice del programma, eventualmente corredato della documentazione utente necessaria per l'utilizzo.
I tool di diagnostica, presenti su un CD-ROM o su una chiavetta USB, e che vengono eseguiti all'accensione del computer per poter effettuare interventi senza il sistema operativo attivo, sono software portabili.