-
Tipagem
Só cuidado com o NaN (e seus companheiros). Mesmo tendo uma tipagem forte e estática, o NaN pode estar presente. E pode ser um problema. Basicamente, NaN = ON ERROR RESUME NEXT (do BASIC). -
Sintaxe
Eu digo que o que mais evoluiu desde as primeiras linguagens de alto nível foi o editor. A verbosidade para escrever é, geralmente, bastante minimizada pelo editor. É claro que cada um vai dizer que a sua linguagem do coração é o máximo. Geralmente ela é desenvolvida facilitando o vada de quem desenvolve. Só depois vão pensar no desenvolvedor. Por exemplo, C# eraint[] x1 = new int[] {1, 2, 3, 4}
e agora ficouint[] x1 = [1, 2, 3, 4]
. Poderiam ter feito isso antes (principalmente pelo desenvolvedor já ter passado por Pascal que tinha estrutura semelhante). -
Macros
Não sei até que ponto macros fazem sentido em uma linguagem OO. Só os métodos não seriam suficientes? Em outras linguagens, é possível até criar uma DSL utilizando macros, o que pode melhorar a legibilidade do programa. -
Inferência
É legal e em 99,9% dos casos funciona bem. -
Ocaml
Aqui eu discordo que seja uma linguagem apenas para AoC e outras coisinhas. É uma linguagem funcional e um dos principais motes delas é minimizar os erros em tempo de execução a, praticamente, zero. Se compilou, está correto. Em Elm (frontend) o pessoal diz que pode compilar na sexta, fazer o deploy e ir dormir. Tem suas peculiaridaes para programar, tipo: Começar a pensar de forma diferente do normal.
No mais, nenhum problema em promover a linguagem.