Olá
Vejam o que disse o Shai Almog (expert in AI and Distributed Objects and programs mostly in C++ and Java.)
“Annotations are the only Java 5 feature to produce REAL value”
Vejam tudo em Java 5 Language changes were a bad idea
[]s
Luca
Olá
Vejam o que disse o Shai Almog (expert in AI and Distributed Objects and programs mostly in C++ and Java.)
“Annotations are the only Java 5 feature to produce REAL value”
Vejam tudo em Java 5 Language changes were a bad idea
[]s
Luca
Minha lista:
EDIT - por arrays anônimos, eu diria o seguinte:
No Java 5 o printf é assim:
System.out.printf ("Alô, %s! Você ganhou %.2f milhões na loteria!%n", "José", 2.14);
Acho que não seria tão incômodo assim escrever:
System.out.printf ("Alô, %s! Você ganhou %.2f milhões na loteria!%n", {"José", 2.14});
que indica que está sendo passado um array (o tipo depende da declaração do parâmetro do método).
O cara viaja. Na atual situação de Java, e até por causa do seu sucesso, a moda é “atirar pedras, depois arranje um pretexto, mas sempre atire pedras, e na dúvida atire pedras também”.
Se o Java NÃO tivesse mudado haveria gente chorando pelos cantos de que está muito defasado, que o .Net é 200 vezes melhor, etc, etc. Se o Java muda, então os mesmos chorarão pela “complexidade”.
O engraçado é que quando o .Net foi lançado já com muitas das features do Java 5 (com a exceção de Generics) haviam muitos “especialistas” alardeando a superioridade do .Net justamente por causa dessas coisas “cosméticas”. Porque não houve escândalo pela “complexidade” do .Net, e artigos de como o “simples” Java era tão melhor?
Bom, vamos ver quais das propostas para o Java 7 vão ser aceitas. Uma condição é, provavelmente, ter sido implementada antes no C#, para ver que problemas acaba causando.
Eu acho essa história de XML e SQL muito estranha. Não vi utilidade ainda, se alguém viu, por favor me mostre :). Closures podem ser bem legais, dependendo de como for a implementação. Mas uma coisa que eu queria mesmo era uma maneira mais simples de se trabalhar com expressões regulares… Algo como Javascript ou Ruby, e não aquele negócio de PatternCompiler, Matcher, não sei o que, não sei o que lá.
Particularmente acho que:
Não acho generics acadêmico… embora seja um pouco complicadinho aplicar todas as suas funcionalidades (tipo <? extends P> em diversos lugares, etc)… facilitou bastante pra gente aqui.
Att.
Carlos Eduardo
Até o Fortran se atualiza de vez em quando… A última versão, para ter uma idéia, é de 2003.
The major additions are Object-Oriented Programming and Interoperability with C, but N1579 is 38 pages, and its table of contents is more than one page. Minor additions include procedure pointers, finalization of derived-type objects, parameterized derived types, pointer rank remapping (allows viewing one-dimensional arrays as higher-dimensional arrays), enumerations, the ASSOCIATE construct (similar to Pascal’s WITH), transferring an allocation (generalization of the frequently-requested reallocate capability), VOLATILE attribute, access to the command line and environment variables, standard named constants for “*” input and output units, access to message text for input/output and other errors, access to features of the IEEE floating-point arithmetic standard, longer names and statements, generalization of expressions for array dimensions and initial values, user-defined derived-type input/output, asynchronous input/output, and stream input/output–and this list is not exhaustive.
Annotations sem dúvida nenhuma foi uma adição incrivel a linguagem. Inquestionavel isso. Java está muito, muito melhor agora.
Já o resto, bom, também dava pra se virar bem se não existissem. Generics é bastante util, eu ainda não precisei usar o suporte a wildcards e union types, que é a parte cabeluda. Enum, foreach, varargs e auto-boxing ajudam a deixar o código mais legivel, vale a pena usar. Só static imports que não deu muito certo…
[quote=ceduardo.roque]Particularmente acho que:
[/quote]
Generics não evita nenhum erro de ClassCastException, pois para pegar um erro desse vc tem que estar bêbado, ou seja, vc tem que colocar um gato numa lista de elefantes por engano.
Eu conclui o seguinte em relação a genérics: Usar Generics é bom, pois o seu código fica mais limpinho sem aqueles casts todos. Já programar Generics é uma bosta…
[quote=saoj][quote=ceduardo.roque]Particularmente acho que:
[/quote]
Generics não evita nenhum erro de ClassCastException, pois para pegar um erro desse vc tem que estar bêbado, ou seja, vc tem que colocar um gato numa lista de elefantes por engano.
Eu conclui o seguinte em relação a genérics: Usar Generics é bom, pois o seu código fica mais limpinho sem aqueles casts todos. Já programar Generics é uma bosta…
[/quote]
Em C++ é uma beleza usar templates (que são mais ou menos o equivalente do Generics), principalmente aqueles prontos do STL, mas programar templates e entender os erros de compilação é que são elas.
Olá
Dei 5 estrelas mas eu não achava tão ruim aqueles casts porque achava fácil ler o código.
É claro que com generics alguns erros podem ser descobertos em tempo de compilação mas concordo que o Javadoc ficou um lixo.
Já li praticamente tudo que os bonzões escreveram sobre generics e ainda não me convenci de que valeu o trabalho de reescrever as APIs. Em resumo: acho bom mas sem nenhum wow.
Quanto às outras coisas até que gostei. O static import é bobeira porque sua utilidade é rara de ser aproveitada e ainda pode deixar o código menos legível.
O Java 5 saiu com algumas melhorias boas fora das mudanças na linguagem que acabaram esquecidas. O Java 6 também tem muitas novidades boas e não mexeu na linguagem.
[]s
Luca
Com exceção de deixar o código limpinho sem os casts, genéricas serve para muito pouco mesmo.
Se o trabalho que deu para implementar generics compensou isso eu não sei… Acredito que não…
Como hoje em dia está na moda linguagens diretas/pragmáticas/menos caracteres/qualquer adjetivo parecido com isso, foi um bom passo para o Java.
[quote=thingol]Em C++ é uma beleza usar templates (que são mais ou menos o equivalente do Generics), principalmente aqueles prontos do STL, mas programar templates e entender os erros de compilação é que são elas.
[/quote]
Este ano eu tive que “recriar” uma bilbioteca (http://en.wikipedia.org/wiki/IBM_Open_Class) que a IBM nao da mais suporte no AIX 5.3, tive que trabalhar exclusivamente com templates para manter a compatibilidade com as milhoes de linhas de codigo que usavam esta biblioteca. e com certeza, os erros de compilacão em XLC ainda me fizeram repensar da proxima vez a pegar um trabalho com templates. Nao digo que foi ruim, mas é extremamente dificil de debugar, e explicar para os outros oque voce fez.
outra coisa,
ao menos a implementacao das colecoes genericas no java ficou bem menos esquisito do que a implementacao .net 2.0 que possui dois namespaces System.Collections e System.Collection.Generic para colecoes genericas e não genericas.
Eu nao considero uma moda e sim uma evolucão. como a propria lingua falada tende a evoluir de uma forma culta e complexa para uma forma prática e popular.
[quote=fmeyer]outra coisa,
ao menos a implementacao das colecoes genericas no java ficou bem menos esquisito do que a implementacao .net 2.0 que possui dois namespaces System.Collections e System.Collection.Generic para colecoes genericas e não genericas. [/quote]
Eles se deram ao luxo de fazer isso porque você sabe que a Microsoft está “pouco se lixando” com a compatibilidade com versões antigas. Como eles queriam fazer um Generics que fosse:
então eles dispensaram o requisito da compatibilidade, e recriaram todas as Collections.
Agora mesmo um colega meu pegou um portal que foi feito com DotNetNuke e ele estava com o VS 2005 instalado. O problema é que o tal portal foi feito com VS 2003. O resultado é que ele teve de instalar também o VS 2003 porque um monte de coisas não funcionava
[quote=thingol]Agora mesmo um colega meu pegou um portal que foi feito com DotNetNuke e ele estava com o VS 2005 instalado. O problema é que o tal portal foi feito com VS 2003. O resultado é que ele teve de instalar também o VS 2003 porque um monte de coisas não funcionava
[/quote]
Eu tive um problema quase parecido ao desenvolver uma biblioteca de pesquisa para um orgao estatico do governo que nao quis atualizar o framework, ( ta certo que esqueceram de especificar qual versao do framework eles usavam ) depois de rodar testar e homologar fui colocar em producao a tal biblioteca e esta simplismente nao funcionava e lancava milhares de erros.
e la se foram uns 30 minutos de ligacoes desesperadas.
Cara, estava lendo o theserverside e um cara veio com esse “pragmático” ao criticar um produto.
Essa palavra provavelmente é uma das mais abusadas/mal usadas para uma retórica tendenciosa contra o “mal enterprise”, ou seja, tudo o que não é opensource e coisa de hippie.
Vejamos pelo dicionário:
Eu frisei o significado que eu tomo por “pragmático”. Mas a questão é: pegar a palavra “pragmático” e usá-la como um ideal não é exatamente O OPOSTO do que a palavra significa?
Uma linguagem de programação NUNCA poderá ser pragmática!
[quote=Thiagosc]Eu frisei o significado que eu tomo por “pragmático”. Mas a questão é: pegar a palavra “pragmático” e usá-la como um ideal não é exatamente O OPOSTO do que a palavra significa?
Uma linguagem de programação NUNCA poderá ser pragmática!
[/quote]
Acho que se voce prestar atencão um pouco abaixo tem uma definicao que se encaixa melhor.
[quote]
Que sacrifica princípios ideológicos para a consecução de objetivos a curto prazo[/quote]
O que nao seria diferente de ignorar as bobeiras ideologicas à enterprise que podem ser resolvidas de uma forma simples e direta de outra forma qualquer.
Thiagosc Não use este topico para dar uma de troll novamente por favor.