Protótipo de Closures em Java está "feature-complete"  XML
Índice dos Fóruns » Notícias
Autor Mensagem
onolox
JavaGuru

Membro desde: 20/06/2005 20:10:58
Mensagens: 211
Offline

Pela madrugada, java está se tornando uma linguagem extra-terrestre, daqui a pouco so os ETs vão entender isso.

heheeheheh...
cmoscoso
Virtual Machine Man
[Avatar]

Membro desde: 23/10/2007 10:08:29
Mensagens: 539
Offline


Saída: [0, 2, 4, 6, 8, 10]


Mesmo programa escrito em Scheme:



Saida: (0 2 4 6 8 10)



E em Python, alguem ai?

"The most important part of writing a program is designing the data structures. The second most important part is breaking the various code pieces down." - Bill Gates
[Email]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2212
Localização: Rio de Janeiro
Offline

Imaginem poder enviar blocos de código à uma List ou Comparable, ficando cada vez mais parecido com Ruby.

To curioso pra ver como serão os Extension Methods, ficaria show de bola:


http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
**Popeye12345**
Forum Spammer

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

Sinto cheiro de migração da galera pra outra sintaxe, mas a JVM é eterna. Concordam?

unnamed.

there are so many monkeys at guj.
Leonardo3001
JavaEvangelist

Membro desde: 04/07/2007 18:28:58
Mensagens: 476
Offline

cmoscoso wrote:

Saída: [0, 2, 4, 6, 8, 10]


Mesmo programa escrito em Scheme:



Saida: (0 2 4 6 8 10)



E em Python, alguem ai?


Em Python, não sei. Mas em Ruby, fica assim:



Apesar que eu acho que você foi injusto com Java, pois boa parte do seu código é para adicionar um método em ArrayList<E>. Na prática, quando Closure for real, novos métodos serão (ou deveriam ser) adicionados nas coleções, e ninguém fará isso à mão.

Portanto, para comparação, vou considerar no código Java apenas a classe com método estático main.
Fica assim:

Java (com closure) -> 9 linhas
Scheme -> 3 linhas
Ruby -> 2 linhas

Leonardo Veríssimo
-------------------------------------------------
Agora com blog: www.objectzilla.com.br
[WWW]
Leonardo3001
JavaEvangelist

Membro desde: 04/07/2007 18:28:58
Mensagens: 476
Offline

Mais um, em Javascript (copie todo o código, jogue num html e veja no browser):



Porém, Javascript não tem suporte nativo para filtragem em Array, mas tem closure! Por isso, tive que adicionar um método select no Array.
Fica assim:

Java com closure -> 24 linhas
Javascript -> 11 linhas
Java com closure (apelando pra não considerar customização de ArrayList) -> 9 linhas
Scheme -> 3 linhas
Ruby -> 2 linhas


Leonardo Veríssimo
-------------------------------------------------
Agora com blog: www.objectzilla.com.br
[WWW]
marcosalex
Virtual Machine Man

Membro desde: 20/02/2008 12:32:59
Mensagens: 667
Offline

A impressão que tenho é que a linguagem Java vem tendo cada vez mais maneiras de se fazer a mesma coisa, tornando-se complexa demais. Acho que no lugar disso, seria melhor eles trabalhassem em APIs, Frameworks e em IDEs produtivas. Bom, opiniao minha.
[Yahoo!] aim icon
Proteu Alcebidiano
JavaEvangelist
[Avatar]

Membro desde: 23/06/2006 14:38:34
Mensagens: 371
Localização: Cidadão do Mundo
Offline

marcosalex wrote:A impressão que tenho é que a linguagem Java vem tendo cada vez mais maneiras de se fazer a mesma coisa, tornando-se complexa demais. Acho que no lugar disso, seria melhor eles trabalhassem em APIs, Frameworks e em IDEs produtivas. Bom, opiniao minha.


Acho melhor ter uma linguagem que tem várias maneiras de fazer coisas semelhantes de modo elegante do que ter uma linguagem que tenta fazer isso de modo deselegante. Ficou feinho e burocrático utilizar closures em java, e espero que o uso disso não seja abusado no futuro.

T+

Glaucio G. de M. Melo
Don't run Alone.
[gm]² - Sustentabilidade Corporativa | -module(erlang).
The world is parallel, and yet most often we program real-world applications in sequential programming languages. This is unnecessarily difficult. (Joe Armstrong).
[MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3515
Localização: João Pessoa, Paraíba - Brasil
Online

Poderíamos migrar todos pra Scala e sermos felizes para sempre

Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt?
[WWW] [MSN]
tnaires
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 754
Localização: Natal - RN
Offline

Toda vida que um recurso novo é adicionado a linguagem, a história se repete. Na época de Generics, muita gente torceu o nariz e no final todos viram que é bom.
Às vezes acho a comunidade mais exigente que o necessário, minha opinião. Vejo linguagens como C# agregarem muitos recursos durante sua evolução, e em Java é a maior ladainha pra colocar algo novo.

Tarso Nunes Aires
renatosilva
Forum Spammer
[Avatar]

Membro desde: 16/12/2004 17:09:19
Mensagens: 1706
Offline

Porque em vez de ficar fazendo remendos eles não criam algo novo do zero?

This message was edited 2 times. Last update was at 10/08/2008 00:21:46

[WWW]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3515
Localização: João Pessoa, Paraíba - Brasil
Online

tnaires wrote:Toda vida que um recurso novo é adicionado a linguagem, a história se repete. Na época de Generics, muita gente torceu o nariz e no final todos viram que é bom.
Às vezes acho a comunidade mais exigente que o necessário, minha opinião. Vejo linguagens como C# agregarem muitos recursos durante sua evolução, e em Java é a maior ladainha pra colocar algo novo.


Todos quem cara-pálida?

A implementação de generics em java é sebosa e não existe informação nenhuma sobre os genéricos em tempo de execução, obrigando a construção de gambiarras (como passar o Class<T> quando você já passou T em algum lugar, não haver T[]). Uma feature que adiciona um absurdo de complexidade acidental, sem adicionar quase nada em funcionalidades. E a falta de type-inference faz o código generico ser desnecessariamente feio.

Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt?
[WWW] [MSN]
tnaires
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 754
Localização: Natal - RN
Offline

E espero que na nova versão eles não façam mais a gente ficar passando Class<T>.

Mas a minha mensagem você entendeu. Eu só devia ter sido mais cuidadoso e ter falado "quase todos".

[EDITADO]
Então reescrevendo:
Na época de Generics, muita gente torceu o nariz e no final quase todos viram que foi melhor.
[/EDITADO]

This message was edited 2 times. Last update was at 10/08/2008 00:34:19


Tarso Nunes Aires
renatosilva
Forum Spammer
[Avatar]

Membro desde: 16/12/2004 17:09:19
Mensagens: 1706
Offline

O remendo é melhor que nada, mas não é o melhor.
[WWW]
tnaires
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 754
Localização: Natal - RN
Offline

Bom, pra mim o que interessa é que agora a consistência das minhas coleções pode ser verificada em tempo de compilação, além de não ter que ficar fazendo casts o tempo todo.
Mas veja só, eu falando que a comunidade é exigente, nem tinha reparado que há uns posts atrás nesse tópico eu tava reclamando da sintaxe de closures também

Tarso Nunes Aires
 
Índice dos Fóruns » Notícias
Ir para:   
Apoiado e desenvolvido por Caelum Cursos Java - Powered by JForum 2.1.8 © JForum Team