Abstrakcja zerowego kosztu
Zasada, że abstrakcja nie może kosztować nic w czasie wykonania: za to, czego nie używasz, nie płacisz, a to, czego używasz, nie dałoby się napisać ręcznie lepiej.
Sformułowanie pochodzi od Bjarne'a Stroustrupa i jest celem projektowym zarówno C++, jak i Rusta. Łańcuch wywołań iteratorów z map i filter wygląda jak programowanie funkcyjne z kolekcjami pośrednimi, ale kompilator wszystko wstawia inline i w asemblerze zostaje ta sama pętla, którą napisałbyś sam. Słowo „koszt” dotyczy jednak tylko czasu wykonania i tu leży krytyka: rachunek zostaje przesunięty na czas kompilacji, na rozmiar binarki, gdy kod generyczny powiela się w pięćdziesięciu wariantach, na komunikaty o błędach zajmujące cały ekran oraz na buildy debugowe, w których nic nie jest optymalizowane i eleganckie abstrakcje nagle działają dziesięć razy wolniej.