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: 440
Localização: Natal/RN
Online


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: 2185
Offline

PO!

Tentei rodar o primeiro exemplo e tomei um



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

http://peczenyj.blogspot.com/

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
David
JavaEvangelist
[Avatar]

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


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


[Email] [WWW]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2185
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://peczenyj.blogspot.com/

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 3952
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
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 704
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
Marcio Duran
Virtual Machine Man
[Avatar]

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

Advanced Topics In Programming Languages: Closures For Java ; )


M@rcio Costa Duran Ofbiz Brazil Solution Providers
Arquiteto da Informação
São Paulo WebSphere User Group
Projeto de Sotware com UML 2.0- ASPERCOM
Agilista Transformando Soluções
http://marcioduran.awardspace.com/
Migando blogs wordpress para awardspace Conteúdo em constantes atualizações.
[WWW]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2185
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://peczenyj.blogspot.com/

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
tnaires
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 704
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
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2185
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://peczenyj.blogspot.com/

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
tnaires
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 704
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
renato3110
Forum Spammer
[Avatar]

Membro desde: 16/12/2004 17:09:19
Mensagens: 1706
Localização: Rio de Janeiro - RJ
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!


Se alguém fotografasse um corpo humano, a partir de um plano elevado, apareceriam várias sombras distintas. Elas são conhecidas como sombras mentais. Dentro delas existe um universo muito além do nosso plano mortal. Existe um tipo de energia que emana como se fosse um vento selvagem. O nome desse vento é Vajra.
[WWW] [ICQ]
tnaires
Virtual Machine Man
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 704
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
 
Índice dos Fóruns » Notícias
Ir para:   
Apoiado e desenvolvido por Caelum Cursos Java - Powered by JForum 2.1.8 © JForum Team