Java 7: Try-with-resources ou Automatic Resource Management  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Olhei a mais nova especificação da linguagem C# e ela diz que você pode ter várias inicializações, mas todas as variáveis têm de ser do mesmo tipo - ou seja, não dá para escrever o estrito equivalente do novo recurso do Java sem usar usings aninhados.


O C# não força que você tenha de fazer uma declaração (como é o caso do Java); aceita expressões também. A expressão cria implicitamente uma variável local com o tipo de retorno da expressão (que pode ser bastante complexo, por sinal - veja o LINQ para ver como é possível criar tipos arbitrariamente complexos em C#); essa variável local "escondida" irá ter uma referência a esse objeto, que poderá ser fechado ("Dispose") etc.

Longino
JavaGuru

Membro desde: 22/01/2011 10:08:43
Mensagens: 233
Offline

ViniGodoy wrote:
Discordo fortemente de quem se refere isso a um recurso motivado pelo marketing.
Automatic Resource Management é um conceito bastante antigo, já surgido no C++ com o nome de RAII.


Desnecessário dizer que Lisp tem isso desde antes do C++ existir.

Em Lisp a macro with-open-file já fecha o stream automaticamente, seja de forma normal ou por erro. Além das macros padrões, o desenvolvedor pode criar as suas próprias sintaxes para o que bem entender.

C++, assim como Java ou C#, não inventou nada.

This message was edited 1 time. Last update was at 25/08/2011 12:53:06

entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Longino wrote:

Desnecessário dizer que Lisp tem isso desde antes do C++ existir.



http://www.paulgraham.com/icad.html
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Longino wrote:C++, assim como Java ou C#, não inventou nada.


Não disse que o C++ estava inventando qualquer coisa. Disse que no C++, esse conceito surgiu com o nome de RAII, mas o conceito em si, não é invenção do C++, ou mesmo do LISP.
Estava apenas mostrando que no C++ esse conceito era usado, e foi extremamente fortificado, ao ponto de ser considerado um padrão.
E que a inserção dele no Java não se trata apenas de um syntax suggar, mas a fortificação de um detalhe bastante importante para justifica-lo.

O próprio Java já possuia APIs que implementavam o conceito (como as APIs de banco de dados do Spring).
Mas essa é uma sinalização clara, de que isso é importante, ao ponto de incluirem para isso um comando na linguagem, que certamente será cobrado dos desenvolvedores aspirando por uma certificação.

Acho extremamente válido que o Java também tenha colocado em sua linguagem estruturas próprias que demonstram essa preocupação em fechar recursos.
E que o conceito de automatic resource management tenha surgido no vocabulário "javanês" à partir de agora.

This message was edited 1 time. Last update was at 27/08/2011 12:46:36


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team