Con il diffondersi di Javascript e delle Web application sempre più team di sviluppo stanno puntando su questo mercato che permette di realizzare soluzioni complete da proporre tramite browser e quindi, di per se, multipiattaforma. Tuttavia non sempre i developer hanno corretta conoscenza ed esperienza nell'utilizzo di Javascript, ed ecco perché sono nati i cosiddetti transpiler.
Un source-to-source compiler, o transpiler, è un tipo di compilatore che preleva il codice sorgente di un programma scritto in un determinato linguaggio di programmazione a produce un nuovo codice sorgente in un altro linguaggio, lavorando praticamente sullo stesso livello di astrazione; si tratta di un comportamento contrario rispetto a quello dei normali compilatori che vanno appunto a trasformare il codice sorgente di un linguaggio di alto livello in un altro di basso livello più simile al linguaggio macchina.
Tuttavia spesso si intende come transpiler anche:
- un compilatore che agisce con linguaggi di alto livello come input e target language;
- un compilatore che ha come target un linguaggio di alto livello (come ad esempio Emscripten, TypeScript e CoffeeScript);
- un compilatore che produce un output leggibile da un linguaggio di alto livello (come ad esempio TypeScript o CoffeeScript).
In ogni definizione però resta valido il concetto di conversione di un linguaggio in un altro di livello simile se non identico. L'uso dei transpiler è ormai molto diffuso, anche se in questi anni sta emergendo un nuovo concorrente nel mercato, ovvero WebAssembly, che si sta proponendo come nuovo standard open source per il Web.
Tuttavia non è da escludere che ancora per diversi decenni i vari team di sviluppo scelgano di affidarsi a soluzioni simili per convertire le loro applicazioni native in Javascript cosi da renderle maggiormente accessibili agli utenti.
Via Composition