**UNO STRUMENTO FANTASTICO PER TROVARE DIFFERENZE NEI FILE E NEL CODICE DI Programmazione**
Uno strumento evoluto come Difftastic comprende anche eventuali righe disallineate. Anche qui, si Immagini che una funzione risulti spostata verso l’alto o verso il basso in due file: l’applicazione è in grado di rilevare e comprendere questo aspetto.
Ancora, Difftastic se la cava benissimo anche con il line-wrapping ovvero riesce a gestire quelle situazioni in cui il codice è spezzato su più linee ma, di fatto, non cambia nulla nell’esecuzione del codice di programmazione. Non essendo una pratica significativa a livello di sintassi, Difftastic non la considera come una modifica.
Difftastic supporta oltre 30 linguaggi di programmazione, confermandosi come una soluzione davvero flessibile per una vasta gamma di utilizzi.
Questo breve Video dimostrativo riassume un po’ tutti i punti sin qui trattati.
Come si vede nell’immagine riprodotta in figura, il contenuto di due file è affiancato: in rosso sono evidenziati gli elementi rimossi rispetto all’altra versione del file, in verde quelli aggiunti. Come si vede, il riferimento a “eric” non viene evidenziato pur essendo in una riga successiva (line-wrapping). E ciò è assolutamente corretto, proprio perché non cambia la struttura dell’array.
Difftastic, infine, può essere utilizzato con Git seguendo le istruzioni riportate su GitHub. Per quanto riguarda la sua struttura, è un Software open source con licenza MIT.
**QUALI SONO I “CONTRO” DI UNA SOLUZIONE COME DIFFTASTIC**
Uno strumento come Difftastic, come anticipato nell’introduzione, è davvero prezioso per chi lavora ogni giorno con il codice di programmazione ed è abituato a “sporcarsi le mani”. Con buona pace di Jensen Huang, CEO di NVIDIA.
Difftastic, tuttavia, non è perfetto e ci sono situazioni in cui potrebbe andare inspiegabilmente in crash. Il difetto più evidente, comunque, riguarda la gestione di file con un gran numero di modifiche. La loro elaborazione può risultare faticosa e richiedere molta memoria.
Al momento, inoltre, Difftastic non genera “patch” ovvero file da usare per applicare le modifiche sulle versioni precedenti. Inoltre, non affronta il difficile problema del merging AST (Abstract Syntax Tree). AST è una rappresentazione strutturata del codice sorgente di un programma, dove ogni nodo corrisponde a un’entità sintattica come una dichiarazione di variabile, un’espressione condizionale o una funzione. Durante la modifica di un programma da parte di più persone in parallelo, possono sorgere conflitti tra i diversi interventi applicati a parti simili del codice.
Mentre Difftastic è efficace nel confrontare due versioni di un programma per evidenziare le differenze nella loro struttura sintattica, non fornisce funzionalità per risolvere automaticamente i conflitti tra le versioni.