Minha humilde opinião é que sistemas por demasiado complexos terminam por afundar em seu próprio peso, sendo abandonados em favor de novas e mais elegantes soluções. No meu entender as linguagens em uso atualmente, como Java e em menor escala o C# possuem frameworks cada vez mais complexos e pesados para suprir funcionalidades que não existiam quando estas linguagens foram projetadas. Java e programação funcional (lambda expression) não são muito amigáveis entre si. Uns remendos aqui e ali foram providenciados no Java 8, embora lambda expressions em Java sejam um syntactic sugar sobre classes anônimas que possuem acesso apenas aos final objects de um contexto, ou seja, não podem modificar o conteúdo recebido numa lambda expression.
O estilo funcional fez muita gente adotar outras linguagens (Lua, Clousure, Scala etc). Talvez por este motivo exato a própria Apple decidiu criar uma nova linguagem de programação(Swift), mas não um novo framework para Objective C.
Acho que o ponto de inflexão para uma nova linguagem de programação é quando o custo de desenvolvimento com uma tecnologia existente se torna proibitivo em termos de performance ou mesmo tempo em relação a soluções criadas em tornos dos avanços da engenharia de software.
Java virou legado. Está resistindo ainda, mas vai terminar jogando Xadrez com Cobol no mesmo asilo (enquanto troca as suas fraldas).
Saludos, Emerson
|