Un programma che utilizza più linguaggi di programmazione è piuttosto raro. Di solito dovrebbe essere evitato a meno che non ci sia una buona ragione per farlo, perché aumenta il know-how necessario per mantenerlo.
Una tecnologia che consente di implementare diverse parti di un programma in diversi linguaggi di programmazione è Common Language Runtime di Microsoft, che è designato dai linguaggi di programmazione basati su .NET. Questo funziona perché tutti i linguaggi basati su CLR vengono compilati nello stesso formato bytecode che viene quindi eseguito dal CLR. Il CLR è orientato agli oggetti e i tipi di dati primitivi sono standardizzati, quindi una classe programmata in una lingua può creare un'istanza e utilizzare oggetti di una classe programmata in un linguaggio di programmazione diverso.
Un'altra cosa che vedi di volta in volta sono programmi che usano linguaggi di scripting (come un motore di gioco scritto in C ++ che usa script scritti in LUA). In tal caso il programma utilizza una libreria per interfacciarsi con l'interprete del linguaggio di scripting. Passa lo script codice sorgente alla libreria come stringa e quindi ottiene un set di funzioni di libreria per dire al linguaggio di scripting di eseguire quel codice.
E poi hai progetti più grandi che consistono in diversi programmi indipendenti che comunicano tra loro tramite la rete. Ad esempio, è possibile avere un'applicazione HTML + Javascript in esecuzione in un browser Web che chiama un backend PHP in esecuzione su un server Web che chiama un database C ++ in esecuzione su un server applicazioni. Sebbene siano tutti programmi diversi dal punto di vista tecnico, sembrano una applicazione dal punto di vista dell'utente. I singoli componenti non hanno bisogno di interessarsi a vicenda con quale tecnologia vengono implementati gli altri componenti in quanto tutte le comunicazioni avvengono tramite protocolli di rete standardizzati.