Há um problema que tenho me perguntado. Não tenho idéia se isso se qualifica como um desafio aberto.
O conhecimento matemático tem crescido constantemente com o tempo. Os fundamentos teóricos, conceitos, notações e provas evoluíram ao longo dos séculos. Os matemáticos conseguiram a agregação sem necessariamente verificar sua consistência global de maneira sistemática e formal a qualquer momento (embora houvesse tentativas de fazê-lo).
Devemos esperar que as linguagens de programação e as bibliotecas de programas se agregem e evoluam de maneira semelhante ao longo do tempo. Que tipo de ferramentas poderia ajudar a gerenciar a agregação de resultados e bibliotecas de programação, a fim de mantê-los consistentes e efetivamente utilizáveis por todos, pois os computadores podem ser mais formais e exigentes quanto à consistência. Temos que refazer as bibliotecas para cada nova linguagem de programação. Por que devemos escolher uma linguagem porque ela possui as bibliotecas corretas para o aplicativo pretendido, e não para suas qualidades intrínsecas como meio de programação?
Em um tópico diferente, você pode encontrar idéias na seguinte pergunta: As linguagens de programação estão se tornando mais como as linguagens naturais? Sei que a idéia pode não atrair muitos cientistas teóricos da computação, mas ainda pode ser útil analisando questões diferentes ou de um ponto de vista diferente. Estou longe de concordar com muitas das idéias postadas, mas é para isso que serve a discussão.