Joshua Block, generics e outras features do java 1.5  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Paulo Silveira
Administrador
[Avatar]

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

No serverside saiu uma entrevista com o Joshua Bloch , nomazinho carimbado de java na sun. Ele tem um livro MUITO bom, o effective java, e esta atrelado a jsr 201, que colocar foreach, autobxing, etc na linguagem. ta bem interessante.

http://www.theserverside.com/events/videos/JoshuaBloch/transcription.html

Fiquei REVOLTADO dele nao ter citado o Gilad Bracha, que eh o cerebro por tras dessas jsrs principais do java 1.5 (a 14 e 201, que mudam a linguagem)

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

autoboxing? já basta uns ClassCastException que vivem rolando por aí, agora vão inventar de colocar autoboxing...

Daniel Quirino Oliveira
[Email] [WWW]
Paulo Silveira
Administrador
[Avatar]

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

entao
classcastingexception vai diminuir consideravelmente com generics
e o autoboxing vai ajduar alguns preguicosos. eu nao acho bacana, e com certeza o pior de todos eh o static import. credo.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Po, eu gostei do static import...eu geralmente uso poucas constantes no meu codigo, mas quando eu preciso usar, geralmente elas passam de 100. A tecnica que eu vinha usando até agora pra evitar aquela poluição desgraçada no código era mover todas as constantes pra uma interface e implementar ela na classe em que me interessasse usar as constantes muito frequentemente. Com o static import, não só isso acabou, mas aquele código tipo:



vira:



Achei mais legível, mas isso é puramente questão de gosto, claro

E, afinal, se tá bom, precisa mudar, ou os vendedores de IDEs não ganham dinheiro

[]'s
-cv
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Fica parecendo que tudo pertence a mesma classe com com o static import.. meio melequento

Generics rulez total, autoboxing eh bem como o paulo disse: soh pros preguicosos, pq nao ha uma necessidade real ( se evitar milhares de casts se enquadra nisso heheh )

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Pois eh, vai do gosto... entao a gente pode ficar aqui discutindo isso por dias e nao vai chegar a conclusao nenhuma

Mas... e as enums, hein? ninguem comentou delas, tadinhas... Eu achei as enums da Tiger bem interessantes...mas, porra, enum com métodos!? Aí a coisa já ficou meio pesada, e com certeza vai ter um monte de babaca por aí abusando delas... afinal, tudo que é poderoso também é mal-usado alguma hora
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Ate parece que a Sun ta fazendo com o Java o que a MS fez com o .NET: "copiando".. enumerations em .NET eh meio estranho ( principalmente pra quem ta aconstumado com C ), e em Java ta igualmente estranho.. mas de qq maneira, vai agradar ( mta? ) gente.

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Paulo Silveira
Administrador
[Avatar]

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

eh. enum com metodo eu ainda nao captei a necessidade.
eu soh preciso de enum pra definir umas constantezinhas e tal.

mas sou a favor

e foreach? soh tenho medo de como vai ficar a sincronizacao disso. vai ficar meio obscuro. e vai chegar uma epoca que ninguem mais vai saber pra que serve um tal de Iterator.

Ei. Lembram que apareceu uma discussao de colcoar JDO naa JSE, e um de vcs ateh falou q o Gosling queria tirar JDBC? Entao, tao agrupando JDO na JSE em alguns lguares do site da sun (bugtracker eu vi!). seeerrraaaa????

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Paulo Silveira wrote:eh. enum com metodo eu ainda nao captei a necessidade.
eu soh preciso de enum pra definir umas constantezinhas e tal.


Pois é... coisa estranha... talvez eles estejam criando o novo conceito de EOP (Enum-Oriented Programming )

Paulo Silveira wrote:e foreach? soh tenho medo de como vai ficar a sincronizacao disso. vai ficar meio obscuro. e vai chegar uma epoca que ninguem mais vai saber pra que serve um tal de Iterator.


A grande maioria, se nao todos, dos iterators é fail-fast, então sincronização não é muito um problema... mas, porra, os caras implementam for-each e não implementam for-else e while-else... que saco! Sério, ninguém alguma vez precisou de um for-else ou while-else, quando quisesse que determinado código executasse caso o loop não chegasse a rodar? O Python por exemplo tem isso e é uma puuuuuta mão na roda às vezes...

Paulo Silveira wrote:Ei. Lembram que apareceu uma discussao de colcoar JDO naa JSE, e um de vcs ateh falou q o Gosling queria tirar JDBC? Entao, tao agrupando JDO na JSE em alguns lguares do site da sun (bugtracker eu vi!). seeerrraaaa????


Aguardemos as consequências...
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

while-else eh nova pra mim.. tipo



sinistro, nao?! :mgreen:

mas ate ai da pra contornar com um simples if() antes do while() ( apesar de ficar meio tosco.. ).. ah, ja sei.. um while() no estilo try-catch:



hehehehehe

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Exatamente! Em python dá pra escrever isso numa boa:

[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Paulo Silveira
Administrador
[Avatar]

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

entao. os iterators de todas collections j2 sao fail fast. mas quero dizer, e qdo eu quiser sincronizar vou ter de fazer na mao como sempre,. e vai ficar feio dar um synchronized em um foreach, porque o cara vai ter de se lgiar q tem uma colelction la, mas tambem poderia ser um array.

tipo, como vou saber que o foreach ta puxando um iterator ou uma enumeration? espero que saia na notificacao

legal isso do python, mas eh muito "perl". da a ideia pra MS que eles colocam no C#, HUAUHAUHAUH.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Paulo Silveira wrote:legal isso do python, mas eh muito "perl". da a ideia pra MS que eles colocam no C#, HUAUHAUHAUH.


Nem precisa, já existe Python pra .NET: http://www.activestate.com/Products/Visual_Python/

PS: E pra Java também: http://www.jython.org
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
louds
Moderador
[Avatar]

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

Generics como vai ser na 1.5 foi a pior das besteiras que ja fizeram em nome de ter 'backward compatibily'.

Ela juntou as desvantagens de ambos modelos, com/sem generics, e ainda piorou, pra melhorar ainda mais so falta autounboxing pra fechar a festa.

Sem querer puxar a sardinha pro lado da MS, mas a implementacao de generics em c# vai ser infinitamente melhor.

Primeiro, ja nao basta ter feito errado na primeira vez, repetiram denovo a mesma besteira, tipos covariantes que nao deveriam ser, como arrays. Pra quem nao sabe, me refiro ao fato de 1 array de referencias poder ser downcasted para array de uma superclasse do tipo da referencia, ex: Integer[] x; Number[] y = x;

Depois o fato da tipagem dos generics ser fraca, pq qualquer coisa faz vc perder essa informacao, devido a covariancia dos tipos genericos, veja 1 exemplo VALIDO do uso de generics:

List<Integer> x = new ArrayList<Integer>();
List y = x; //toda informacao de tipagem acabou de ir pro espaco
List<Class> z = (List<Class>y; //pior de tudo isso nao gera execessao
z.add(String.class); //e isso tb funciona

Ou seja, que acreditou que Generics vai atenuar erros envolvendo CastCastExceptions no uso de Collections se enganou, serao menos, mas alguns poucos vao ser realmente complexos de serem encontrados, dive o exemplo acima.

Outra era a espectativa de um ganho consideravel em performance por poder especializar em tipo primitivos, oque nao vai poder e agora com autoboxing, maioria vai deixar de reclamar pq agora List.add(1) funciona.

A unica coisa boa dos generics eh a opcao de poder definir contrains pros tipos a serem usados.
[ICQ]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Tem alguma coisa errada com o seu exemplo, louds... não estou vendo nenhum problema com o que está sendo feito: vc criou uma ArrayList sem tipagem generica, atribuiu uma nova referencia a ela tambem sem tipagem, e depois fez um cast pra List<Class> e adiciou o objeto Class que é membro da classe String. Sério, onde está o mal nisso?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team