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: 291
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

Membro desde: 23/10/2007 10:08:29
Mensagens: 684
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?

http://twitter.com/cmoscoso
[Email]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2762
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
Virtual Machine Man

Membro desde: 04/07/2007 18:28:58
Mensagens: 824
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
-------------------------------------------------
Objectzilla
[WWW]
Leonardo3001
Virtual Machine Man

Membro desde: 04/07/2007 18:28:58
Mensagens: 824
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
-------------------------------------------------
Objectzilla
[WWW]
marcosalex
Forum Spammer
[Avatar]

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

"

This message was edited 1 time. Last update was at 29/01/2009 07:50:08

[Yahoo!] aim icon [ICQ]
Proteu Alcebidiano
JavaEvangelist
[Avatar]

Membro desde: 23/06/2006 14:38:34
Mensagens: 389
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]² on forecasting
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: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline

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
Forum Spammer
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1378
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

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
renatosilva
Forum Spammer
[Avatar]

Membro desde: 16/12/2004 17:09:19
Mensagens: 1785
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: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline

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
Forum Spammer
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1378
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

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
renatosilva
Forum Spammer
[Avatar]

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

O remendo é melhor que nada, mas não é o melhor.
[WWW]
tnaires
Forum Spammer
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1378
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

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team