Concordo, acho que é mais um Hype. Uso lambdas no C# e Ruby e programo sem problemas no Java 6 sem elas. Programação funcional está hypeado como disse o Longino, contudo acho que tem seu valor. As expressões usadas no JPA seriam mais simples, enxutas, e legíveis até, se fossem escritas com lambdas, bem como a implementação do padrão Strategy, onde hoje usamos interfaces (ver Comparator).
Também acho que inseriram muito Syntactic sugar, como a notação diamante, uso de índice para coleções, verificação de nulo, etc, em outras palavras, uma adição de facilidades para diminuir o Boilerplate Code (e consequentemente o código).
Penso que a promiscuidade (não entendam mal) atual dos programadores com linguagens (ver dica do Pragmatic Programmers: aprenda uma linguagem por ano) faz com que haja uma pressão por mudanças e um medo de perder espaço. Eu por exemplo me identifico muito com Java mas não sou Evangelista ao ponto de ficar cego (como muitos fazem) e me entrego “aos prazeres” de outras linguagens, plataformas, soluções.
Resumindo, acho que os releases do Java EE, do 1.4 para o 5 e depois para o 6 foram muito mais substanciais que as mudanças no Java SE (que são boas, nunca disse o contrário), equiparáveis a mudança do Java SE 1.4 para o 5, mas pouco expressivo do 5 para o 6 e agora do 6 para o 7.
[quote=marcosalex][quote=Longino]
Que nada. Closures são uma das coisas mais hypeadas nos últimos tempos, acho que quem acredita que isso é a solução para todos os problemas realmente não entende como funciona.
Closures nada mais são do que um objeto de pobre. Isto é, o ambiente léxico é como os campos de uma classe e o tal objeto tem apenas um método que não aceita argumentos. Não existe absolutamente nada que closure faça que não seja possível fazer com objetos.
[/quote]
Também penso assim sobre Closures. Não vejo como a vida dos programadores mudariam tanto quando o Java suportar closures. Em algumas poucas situações você vai digitar algumas linhas a menos de código, em outras vai ficar um código um pouco mais legível, mas nada revolucionário.
Essa briga de recursos me lembra os tempos de VB x Delphi, onde uma delas incorporava algum recurso pouco usado e usava isso como marketing, então a outra incorporava o mesmo recurso e adicionava outro ainda mais obscuro pra inverter a situação. No final ficaram duas linguagens totalmente cheia de coisas que ninguém usa, poluídas e confusas. Até chegar uma nova geração de linguagens com o intuito de simplificar a vida do desenvolvedor.
Agora com .NET x Java estou vendo a mesma coisa, e já está cheio de linguagens muito mais simples vindo na sequência. E a fila continua andando…
[/quote]