Non è raro che scriva un'implementazione di un prototipo in una fase esplorativa. Scommetterei che la maggior parte di questi prototipi sono scritti nella stessa lingua del linguaggio usato per una riscrittura (che spesso non viene mai). Allo stesso modo, la lingua utilizzata per ciascuna parte è probabilmente determinata dalla cultura locale della società che implementa il codice piuttosto che dalla "performance". Nessuno userà un linguaggio con cui non hanno familiarità per scrivere un prototipo solo perché qualcuno dice che è "bravo a prototipare", almeno non per funzionalità critiche. Le scelte linguistiche sono quasi sempre basate sulla familiarità.
Come afferma Robert Harvey, di solito i programmi (o davvero i sistemi) vengono riscritti a pranzo, non tutti in una volta. Di solito ci sono "hot spot" che possono essere riscritti nella stessa lingua o potenzialmente in una lingua diversa che fornirà i necessari guadagni in termini di prestazioni. Un'intera riscrittura per motivi di prestazioni sarebbe in genere dopo che sono stati affrontati tutti gli ovvi "punti caldi" e un tentativo di ottimizzare il codice corrente. Riscrivi possono anche verificarsi a causa di cambiamenti nella cultura del progetto.
Ci sono sicuramente stati diversi progetti pubblici che sono stati riscritti da lingue "di alto livello" alle lingue "di basso livello", ma non è spesso chiaro quali sono le motivazioni sono e raramente sono essi esclusivamente prestazioni. Non possono nemmeno includere le prestazioni. Non è chiaro quanto spesso ciò avvenga nel complesso però. Ancora una volta, la cultura probabilmente ha un'influenza dominante. Ad esempio, uno di questi esempi è un progetto di Paul Graham ha scritto in Common Lisp che è stato utilizzato da Yahoo per anni, ma alla fine è stato riscritto in C ++ e Perl in un punto in cui Paul Graham non è stato coinvolto nel progetto.
Se una riscrittura doveva essere fatto con prestazioni come uno degli obiettivi principali e la lingua corrente è un linguaggio la cui attuazione primario è un interprete, poi assumendo un nuovo linguaggio viene scelto per le prestazioni, è probabile che sia qualsiasi lingua la cui l'implementazione primaria è un compilatore (potenzialmente JIT), non solo C o C ++. Ciò include Java, C #, Go, Rust, O'Caml, Haskell, anche JavaScript al giorno d'oggi. Ancora una volta, è probabile che tale scelta sia maggiormente guidata dalla familiarità e dalla cultura rispetto a qualsiasi metrica obiettivo.