Três anos depois...  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
thiago_algo
JavaTeenager

Membro desde: 27/07/2004 11:23:41
Mensagens: 186
Offline

Pessoal, relendo uns posts antigos, encontrei uma discussão interessantíssima do sobre Generics nessse tópico: http://www.guj.com.br/posts/list/16145.java. Por curiosidade e depois de um tempo para amadurecimento, alguém que postou naquela época mudou de oipinião? Conseguiram encontrar reais vantagens no uso de Genérics?
Leonardo3001
GUJ Ranger

Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline

Generics foi útil para transformar aquela aplicação zero-warnings do Java 1.4 em uma aplicação com zilhões de warnings para Java 5.

Não acho a idéia ruim, mas foi muito mal implementado e não serve como meta-programação. Na prática, só usamos porque as Collections faz uso (e chia quando não usa), mas nunca vi ninguém escrevar coisas em Java para usar generics.

Leonardo Veríssimo
-------------------------------------------------
Objectzilla
[WWW]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline


Eu mudei de opinião. Generics para o desenvolvedor de frameworks complicou um pouco a vida, mas para o usuários de frameworks facilitou bastante a vida.

Na verdade não facilitou, apenas deixou a coisa mais sólida e limpa. Facilitou o refactoring e deixou a coisa mais robusta.

Não é o fim do mundo ter o seu código cheio de casts, mas é realmente mais bonito e natural não tê-los.

E agora então com a aumento da popularidade das linguagens dinamicas de script, se Java não tivesse Generics estaria sofrendo bombardeios!

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Eu não mudei muito de idéia desde aquele tempo - não sou defensor ferrenho dos generics, tais como implementados no Java; mas eu acredito que eles tornam seu código mais legível se usados adequadamente.

Eu já usava algo parecido (em comentários) quando eles não existiam.

O problema, na verdade, é que falta algo para encapsular a complexidade dos generics - em C++ eu posso usar um template (basic_string) sem saber que ele existe a maior parte do tempo; eu só conheço duas especializações dele, que são basic_string<char> == string (representa uma string ANSI), e basic_string<wchar_t> == wstring (representa uma string Unicode). Mas em Java eu seria obrigado a sempre explicitar a declaração completa de string, que na verdade depende da implementação - em Microsoft Visual C++ (Visual Studio 2003), string é definida como:


Não sei se a declaração faz parte da biblioteca-padrão do C++ ou se a declaração completa é deixada para a implementação.

Imagine se você tivesse que declarar seu "hello, world" como:


Ia ser muito doido.

This message was edited 1 time. Last update was at 22/01/2008 17:59:34

[WWW]
thiago_algo
JavaTeenager

Membro desde: 27/07/2004 11:23:41
Mensagens: 186
Offline

Acho que o pessoal se acostumou a usar, mas se não tivesse não faria falta, na minha opinião. A sintaxe ficou complicada e aumentou demias a verbosidade.
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

Generics são interessantes, mas dispensáveis. Essa é minha opinião.


Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline

generics são excelentes... é muito ruim ficar tendo que fazer casts no projeto inteiro com generics e muito mais pratico e despensa casts... relamente tava faltando algo como o template do C++ no java dai veio os generics que são mais praticos que os templates eu acho...




SCJP 1.5
SCJA 1.0
IBM DB2 Associate
[Email] [MSN]
ricardo_rico
Entusiasta Java

Membro desde: 05/11/2007 10:43:48
Mensagens: 20
Offline


Eu acho que Generics complicou muito a sintaxe do Java. Existe linhas que não dá para ler. Se um cara que está iniciando com Java se depara com uma linha cabeluda de Generics, vai ficar muisto assustado. Eu até hoje me assusto com algumas coisas...
thiago_algo
JavaTeenager

Membro desde: 27/07/2004 11:23:41
Mensagens: 186
Offline

ricardo_rico wrote:
Eu acho que Generics complicou muito a sintaxe do Java...


Isso é verdade tem umas notações que um monte de gente bastante experiente tem que parar para ler, ou seja, a verbosidade aumentou muito.

Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Não só mudei de opinião como queimei minha língua fazendo previsões completamente erradas.

1. O uso de generics não é tão complicado como pensei na maioria das vezes

2. O uso de generics não complicou mais a leitura do código como eu imaginei

3. O que o generics tem de mais complicado o desenvolvedor comum raramente precisa escrever, quando muito precisa saber ler em alguma API.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
Paulo Silveira
Administrador
[Avatar]

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

Eu nao conseguiria viver mais sem generics... mas so agora que domino bem o funcionamento da erasure e o problema de nao serem reificados.

Eu escrevi bastante sobre situacoes complicadas com generics e codigos dificeis existentes na propria api da sun:
http://blog.caelum.com.br/2007/04/08/generics-inferencia-de-tipos-e-reificacao-no-java-7/
http://blog.caelum.com.br/2006/10/29/brincando-com-generics-o-bizarregenericdao/

Mas tem vezes que o generics não ajuda apenas no casting, mas evita aquele monte de hierarquia de classes paralelas.

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


[Email] [WWW]
louds
Moderador
[Avatar]

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

Sempre achei generics muito útil e prático de usar. Porém no começo achava que enorme cagada não passar de sintax sugar do compilador. Porém hoje vejo como não é nada simples implementar generic com reification de maneira decente, não mesmo.

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]
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

A 3 anos atrás eu não programava.
Mas vou te dizer... fiz um AG ano passado quando não conhecia generics... rapaiz do céu, quantas linhas deram (+- umas 400 por classe).
Usei Refactoring (Fowler seja abençoado)... resultado?
Eram 4 classes. Antes, cada uma tinha 400 linhas (só uma que tinha 200). Depois de aplicar generics, TODAS as classes não passam de 100 linhas.
Se juntar tudo em um arquivo só chega a mais ou menos umas 200 linhas.

Ficou muito mais legivel, menos trabalho, mais conforto e MUITO, mas MUITO menos preocupado eu fiquei.

Abraço.

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team