Um tipo diferente de resposta para os outros - eu realmente acho que existe potencial para uma linguagem se tornar "universal", permitindo as características e paradigmas de muitas outras linguagens, embora talvez não seja um linguagem estritamente projetada que você pode estar pensando.
Para usar analogia de brettmjohnson acima, a idéia de que cada linguagem de programação é a ferramenta dentro de uma caixa (ou em um canivete suíço) é a suposição que todo mundo está fazendo, mas é realmente uma suposição falsa.
E se a linguagem de programação fosse a caixa de ferramentas?
Quero dizer, e se você puder adicionar e remover recursos da linguagem como quiser e ter sua própria caixa de ferramentas com as ferramentas de que precisa nela, mesmo que as ferramentas tenham objetivos diferentes.
O conceito já existe parcialmente. Por exemplo, idiomas como Nemerle permitem que você adicione a sintaxe a o idioma e, como tal, você pode usar "o melhor recurso da linguagem X" e adicioná-lo a Nemerle (ou ao seu próprio). Isso não significa necessariamente escrever suas próprias macros o tempo todo - cada idioma (ou paradigma) pode ser definido dentro de uma macro em uma biblioteca padrão - de tal forma que você possa import Haskell; import Prolog;
e começar a escrever as duas linguagens como se fosse faziam parte da sua língua?
A pergunta então é: como você consegue que os recursos de diferentes linguagens / paradigmas funcionem uns com os outros? Embora eu não possa responder a isso, estruturas como .Net e JVM oferecem algumas das soluções - as linguagens são pelo menos parcialmente compatíveis devido à maneira como são compiladas. Você pode pegar qualquer código escrito em C #, por exemplo, e usá-lo de F # sem reclamações.
O 'problema' com a solução, como é hoje, é que usar essas linguagens juntas requer que você as crie como projetos separados, os quais não podem se referenciar um ao outro - você só pode ter uma referência unidirecional. A barreira do idioma é que cada projeto compila todos os arquivos separadamente para o Common Intermediate Language antes que qualquer outro projeto possa acessá-lo.
Um ponto de partida para remover essa barreira seria permitir que códigos de diferentes idiomas (por exemplo, C # e F #) compilassem dentro do mesmo projeto. Teoricamente, você poderia compilar cada arquivo separadamente (ou em grupos - se eles tiverem tipos parciais ou referências circulares), e então compilar arquivos de uma linguagem diferente que possa acessar os objetos já compilados (CIL). Você precisa definir estritamente a ordem de compilação para que isso funcione - mas a ordem de compilação já é necessária no caso de F #.
De qualquer forma, não estou dizendo "definitivamente pode haver uma linguagem universal". Estou sugerindo que há o potencial para uma interoperabilidade muito melhor entre idiomas que existe atualmente. Na realidade, não é provável que melhore muito em breve, apenas por causa da enorme quantidade de trabalho que é implementar uma linguagem e as bibliotecas, as ferramentas etc. necessárias para usá-la.