Istnieje duża liczba języków programowania. Niektóre z nich dorastają i stają się bardzo popularne. Ludzie coraz częściej używają takich języków. Założyciel takiego języka (lub organizacja / społeczność założycielska) może próbować wprowadzić zmiany w celu ulepszenia języka. Ale czasami trudno jest wprowadzić pewne zmiany z powodu wstecznej kompatybilności, a takie brzydkie rzeczy istniały już w języku od lat i są używane przez wielu użytkowników.
Czy istnieją jakieś zasady lub kroki architektoniczne na etapie projektowania języka, które mogą pomóc w uczynieniu go bardziej stabilnym, aby projektanci języków nie bali się złamać wstecznej kompatybilności?