Astrazione a costo zero
Il principio per cui un'astrazione non deve costare nulla in fase di esecuzione: ciò che non si usa non si paga, e ciò che si usa non si potrebbe scrivere a mano in modo migliore.
La formulazione è di Bjarne Stroustrup ed è l'obiettivo di progetto sia di C++ sia di Rust. Una catena di chiamate a iteratori con map e filter si legge come programmazione funzionale con collezioni intermedie, ma il compilatore espande tutto in linea e nell'assembly resta lo stesso ciclo che si sarebbe scritto a mano. La parola «costo», però, riguarda solo l'esecuzione, ed è qui che si concentrano le critiche: il conto viene girato al tempo di compilazione, alla dimensione del binario quando il codice generico viene replicato in cinquanta varianti, ai messaggi d'errore che riempiono lo schermo e alle build di debug, dove nulla è ottimizzato e le eleganti astrazioni diventano all'improvviso dieci volte più lente.