Acho que a motivação dos designers linguísticos para revisar as linguagens existentes é introduzir inovação, garantindo que sua comunidade de desenvolvedores alvo permaneça unida e adote a nova linguagem: mover uma comunidade existente para uma nova revisão de um idioma existente é mais eficaz do que criar uma nova comunidade em torno de um novo idioma. É claro que isso força alguns desenvolvedores a adotar o novo padrão, mesmo se eles estivessem bem com o antigo: em uma comunidade, você às vezes tem que impor certas decisões a uma minoria se quiser manter a comunidade unida.
Além disso, considere que um idioma de propósito geral tenta servir o maior número possível de programadores e, muitas vezes, ele é aplicado em novas áreas para as quais ele não foi projetado. Então, em vez de buscar simplicidade e estabilidade do design, a comunidade pode optar por incorporar novas ideias (mesmo de outras linguagens) à medida que a linguagem se move para novas áreas de aplicação. Nesse cenário, você não pode esperar acertar na primeira tentativa.
Isso significa que os idiomas podem sofrer mudanças profundas ao longo dos anos e a última revisão pode parecer muito diferente da primeira. O nome do idioma não é mantido por razões técnicas, mas porque a comunidade de desenvolvedores concorda em usar um nome antigo para um novo idioma. Portanto, o nome da linguagem de programação identifica a comunidade de seus usuários, e não a própria linguagem.
IMO a motivação por que muitos desenvolvedores acham isso aceitável (ou mesmo desejável) é que uma transição gradual para uma linguagem ligeiramente diferente é mais fácil e menos confusa do que um salto para uma linguagem completamente nova que levaria mais tempo e esforço para dominar . Considere que há vários desenvolvedores que possuem um ou dois idiomas favoritos e não estão muito interessados em aprender novos idiomas (radicalmente diferentes). E mesmo para aqueles que gostam de aprender coisas novas, aprender uma nova linguagem de programação é sempre uma atividade difícil e demorada.
Além disso, pode ser preferível fazer parte de uma comunidade grande e um ecossistema rico do que de uma comunidade muito pequena que usa uma linguagem menos conhecida. Então, quando a comunidade decide seguir em frente, muitos membros decidem seguir para evitar o isolamento.
Como um comentário lateral, acho que o argumento de permitir evolução mantendo compatibilidade com código legado é bastante fraco: Java pode chamar código C, Scala pode facilmente integrar com código Java, C # pode integrar com C ++. Há muitos exemplos que mostram que você pode facilmente interagir com código legado escrito em outro idioma sem a necessidade de compatibilidade com código-fonte.
OBSERVAÇÃO
De algumas respostas e comentários, pareço entender que alguns leitores interpretaram a pergunta como "Por que as linguagens de programação precisam evoluir".
Acho que esse não é o ponto principal da questão, pois é óbvio que as linguagens de programação precisam evoluir e por quê (novos requisitos, novas ideias). A questão é: "Por que essa evolução tem que acontecer dentro de uma linguagem de programação em vez de gerar muitas novas linguagens?"