Protótipo de Closures em Java está "feature-complete"  XML
Índice dos Fóruns » Notícias
Autor Mensagem
David
JavaEvangelist
[Avatar]

Membro desde: 18/03/2005 13:10:33
Mensagens: 450
Localização: Natal/RN
Offline


Do blog de Neal Gafter:

I'm pleased to announce that the Java Closures prototype now supports all of the features of its specification!

The complete source code, released under GPLv2, is in the project's openjdk repository. A binary build, suitable for use with an existing JDK6, is at http://www.javac.info/closures.tar.gz. Other related documents are on the website http://www.javac.info/.

------

Mais informações em: http://gafter.blogspot.com/2008/08/java-closures-prototype-feature.html
E para quem quiser conhecer um pouco mais da proposta de closures: http://www.parleys.com/display/PARLEYS/Home#talk=2097237;;slide=1

Baixei o protótipo e brinquei um pouquinho...
Saída: 3

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

David Pereira
Engenheiro de Computação - UFRN
Mestre em Engenharia Elétrica
Doutorando em Engenharia Elétrica
[WWW]
velo
Virtual Machine Man
[Avatar]

Membro desde: 19/02/2004 18:23:55
Mensagens: 795
Localização: Jaraguá do Sul - SC
Offline

Achei muito legal porque as closures ficaram tipadas....

Se bem que em flex acaba ficando mais simples....



Mas gostei... mesmo assim =D


VELO

Use o melhor:

Linux para servidores
Macintosh para gráficos
Palm para mobilidade
Windows para jogar paciência

SCJP 5
[Email] [MSN] [ICQ]
peczenyj
Moderador
[Avatar]

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

PO!

Tentei rodar o primeiro exemplo e tomei um



Instalei o jdk7 no ubuntu via apt-get, alguem passou por isso ? :/

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]
David
JavaEvangelist
[Avatar]

Membro desde: 18/03/2005 13:10:33
Mensagens: 450
Localização: Natal/RN
Offline


Tiago, use o javac e o java que vêm no arquivo disponibilizado pelo Neal Gafter.

David Pereira
Engenheiro de Computação - UFRN
Mestre em Engenharia Elétrica
Doutorando em Engenharia Elétrica
[WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 3637
Localização: São Paulo
Offline

peczenyj wrote:PO!

Tentei rodar o primeiro exemplo e tomei um



Instalei o jdk7 no ubuntu via apt-get, alguem passou por isso ? :/


Problema de classpath Tiago. Ele pegou o rt.jar do seu java antigo ja instalado, tinha de pegar do java "turbinado". usa o java que vem com ele, ou altera o bootclasspath do seu atual para passaer pelos jars do prototipo.



http://blog.caelum.com.br


Arquitetura e Design de Software: uma visão sobre a plataforma java
[Email] [WWW]
peczenyj
Moderador
[Avatar]

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

Putz, rateei no mais obvio... consegui rodar o primeiro exemplo sim, muito legal!!!!

Olha q codigo divertido do primeiro exemplo!



This message was edited 1 time. Last update was at 08/08/2008 17:58:01


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]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

A sintaxe para invocar é meio ruim, tem um ".invoke" supérfluo nisso.

Fora que a performance quando o compilador introduz boxing por baixo dos panos deve ser terrível.




http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
tnaires
Forum Spammer
[Avatar]

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

Declarar os tipos dos parâmetros de entrada duas vezes ( uma no cabeçalho da closure e outra no seu corpo ) é chato demais...

Tarso Nunes Aires

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

Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline

Advanced Topics In Programming Languages: Closures For Java ; )


Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven
[WWW]
peczenyj
Moderador
[Avatar]

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

tnaires wrote:Declarar os tipos dos parâmetros de entrada duas vezes ( uma no cabeçalho da closure e outra no seu corpo ) é chato demais...


Acho que será mais comum fazer algo desse tipo:


Ou isso:


Um pouco menos chato, concorda ?

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

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

peczenyj wrote:Um pouco menos chato, concorda ?

Bem melhor ( só não entendi a necessidade de parênteses ao redor do bloco de código na segunda forma - acho que o chato aqui sou eu mesmo ).

Eu tenho uma dúvida ( leia os comentários do código abaixo ):

Se seguir o conceito de closures ( que mantém sempre o contexto original de sua declaração ), o segundo System.out.println deveria imprimir 15.

This message was edited 1 time. Last update was at 09/08/2008 09:16:26


Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
peczenyj
Moderador
[Avatar]

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

Eu não estava declarando uma closure na segunda forma e sim invocando-a através do método estático doIt declarado no primeiro, mas tenho que praticar mais.

This message was edited 1 time. Last update was at 09/08/2008 09:30:15


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

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

peczenyj wrote:Eu não estava declarando uma closure na segunda forma e sim invocando-a através do método estático doIt declarado no primeiro, mas tenho que praticar mais.

Ah sim, entendi.
Confundi porque ficou muito semelhante com a forma que o David escreveu, mas sem a dupla declaração:


Daí achei que doIt fosse o nome da closure.

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

peczenyj wrote:
tnaires wrote:Declarar os tipos dos parâmetros de entrada duas vezes ( uma no cabeçalho da closure e outra no seu corpo ) é chato demais...


Acho que será mais comum fazer algo desse tipo:


Ou isso:


Um pouco menos chato, concorda ?


Não se espantem mas já dá pra fazer isso em Delphi há anos!

[WWW]
tnaires
Forum Spammer
[Avatar]

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

renato3110 wrote:Não se espantem mas já dá pra fazer isso em Delphi há anos!

Realmente podemos ter um comportamento semelhante a closures em Delphi, conforme post abaixo:
http://barrkel.blogspot.com/2006/08/delphi-closures-anonymous-delegates.html
Mas será que a suposta closure declarada mantém seu contexto original? Caso negativo, não são closures, e sim, ponteiros para blocos de código. Infelizmente tô sem o Delphi aqui pra fazer o teste.

This message was edited 1 time. Last update was at 09/08/2008 18:11:09


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