Maurício, o que você falou é ótimo e está até implícito no sentido do que o fórum se propõe a fazer. Qualquer fórum, na verdade. Mas, além da página 6 (talvez antes até) desse tópico o que eu vejo é bate boca na grande maioria das vezes. Algumas argumentações técnicas ótimas, é verdade, mas o negócio ficou tão surreal que me deixou abismado aqui. Não que eu nunca tenha visto esse tipo de coisa, ainda mais aqui no GUJ, onde de tempos em tempos aparece uma figurinha nova pra incendiar o ambiente, mas é impressionante a disposição que alguns têm de continuar tentando argumentar com quem não está nem um pouco interessado nisso. Não estou sendo irônico, nem estou criticando quem está usando argumentos técnicos, pelo contrário, mas o assunto aqui já transcendeu o âmbito técnico há tempos. Quando chega em um ponto onde eu vejo alguém postando algo ainda sobre o assunto original do tópico, e eu acho isso estranho porque o negócio já descambou pra bagunça, acho que já chegou a hora de darem um basta nisso.
Márcio,
O que as pessoas não entendem é que os Moderadores agem desta forma porque prezam pela qualidade do forum. Parece que estou falando um absurdo ao se observar a quantidade de esculachadas que eles dão, mas se você pararem pra prensar, verá que eles não permitem em hipótese alguma que conceitos distorcidos ou achismos possam imperar aqui neste forum. Caso a atitude deles fosse outra, provavelmente veriamos aqui pelo fórum diversas threads tendo por resultado final teorias e conceitos não verdadeiros sobre diversos assuntos.
Emerson, você está correto. Eu concordo com esse pensamento. Não acho que os moderadores tenham que simplesmente ignorar as besteiras de alguns usuários, óbvio que tem que existir a contrapartida. Não acho que tenha que ser 8 ou 80, mas existe um limite tênue aí, bem sutil, do que a maioria do que pode ser filtrado do que está sendo dito é útil ou não.
E quem são eles, vc ou eu para julgar o que é certo e o que é errado? Se eu vier aqui falar que a folha é azul quero ser respeitado, até porque vivemos num país livre…
Não vi nenhuma atitude disrespeitosa por parte de nenhum moderador. Só vi algumas pessoas ficando bravas porque alguém ficou argumentado demais em torno de um assunto. Nesse caso acho melhor escolher duas opções: se tiver paciência, continue argumentando respeitosamente/educamente… caso contrário ignore-o…
Por exemplo:
O cara falou que Java é OO 100%… Tudo bem, não é porque tem primitivos que não são objetos e sabemos que existem outras linguagens onde até os “primitivos” são objetos… Mas eu me recordo de no passado já ter afirmado várias vezes que Java é totalmente orientada a objetos, visto que tudo herda de Object. O cara pode falar que os primitivos não são objetos, mas que para cada primitivo há um objeto correspondente e que vc pode trabalhar sem os primitivos, usando apenas objetos, e que agora com auto-boxing ficou mais fácil ainda fazer isso, blah, blah, blah…
O cara está errado? O cara está certo?
Então basta argumentar e se o cara quiser achar que Java é uma linguagem totalmente OO é uma opção dele… E o último que responder no tópico não é o que está certo…
Eu acho que Java é uma linguagem totalmente OO e o fato dos primitivos não serem objetos é uma excelente opção quando eu quero performance… Acho inclusive uma séria deficiência do Java ele não vir de fábrica com IntMap, IntList, etc. Do ponto de vista da performance é ridículo ter que ficar criando objetos Integer para colocar como chave do meu mapa. Isso sobrecarrega o GC…
Se o cara quer um objeto para o primitivo, ele usar o Integer ou faz o seu próprio Wrapper… Acho também que Java já poderia vir de fábrica com Integers mutáveis, para que eu não precise ficar usando int[0] como objeto inteiro mutável.
[quote=saoj]O cara falou que Java é OO 100%… Tudo bem, não é porque tem primitivos que não são objetos e sabemos que existem outras linguagens onde até os “primitivos” são objetos… Mas eu me recordo de no passado já ter afirmado várias vezes que Java é totalmente orientada a objetos, visto que tudo herda de Object. O cara pode falar que os primitivos não são objetos, mas que para cada primitivo há um objeto correspondente e que vc pode trabalhar sem os primitivos, usando apenas objetos, e que agora com auto-boxing ficou mais fácil ainda fazer isso, blah, blah, blah…
O cara está errado? O cara está certo?
Então basta argumentar e se o cara quiser achar que Java é uma linguagem totalmente OO é uma opção dele… E o último que responder no tópico não é o que está certo…[/quote]
E esse exemplo não tem nada haver com o caso, vamos evitar distorções, por favor.
[quote=Marcio Duran] JavaScript é uma linguagem e não é uma Tecnologia que se propõem algo que se possa especificar tão amplamente como JAVA 2 não vai agregar nível tanto de software como de hardware em particular.
JAVA é Orientado a Objetos 100% , JavaScript é uma linguagem de interpretação cuja as suas caracteristicas usa-se tanto programação estruturada como semelhanças de OO, digo isso porque JavaScript você não tem algo que se possa dizer Interface real pela linguagem.Ou melhor explicando regras e herarquias de Classe e Objetos, compontentes APIs e em particular JAVA já tem isso de uso independente.
Plataforma é JAVA e não JavaScript, seu uso é especifico a comportamento de Browser e isso é ponto final. [/quote]
Isso foi o caso e ele está errado com base nas respostas aqui apresentadas e na realidade que as pessoas que seguiram essa thread podem comprovar, simples assim. Ele pode não estar errado pra sempre ou desde sempre, mas no momento atual ele está errado e ponto final. A afirmação foi incorreta e não tem fundamentos o suficiente pra se sustentar, não é uma questão de você, o CV ou o Phillip serem donos da verdade, é que a verdade, nesse caso específico, se apresenta de forma clara, aqui nós não estamos discutindo uma possível arquitetura para um sistema ou a linguagem de programação perfeita, a argumentação não é nem de longe “abstrata”, a discussão é bem mais simples, é se JavaScript é orientado a objetos ou não e se JavaScript pode ser utilizado fora de browsers.
Temos de lembrar que todos os moderadores desse fórum são primeiro usuários e depois moderadores convidados. É mais comum achar um usuário pedindo para um tópico ser apagado ou bloqueado que moradores efetivamente fazendo-os. Tópicos como este que desandam em um flamewar não tem que ser fechados, devem ser ignorados, podemos todos nós irmos brigar por outros assuntos agora?
Por sinal, a função dos moderadores é bloquear/apagar tópicos que são spam, desrespeitam as regras de uso do fórum ou ferem a lei brasileira. Brigar e argumentar, por mais inflamada que seja a posição de cada parte, não se classifica nessas categorias - desde que não desande a difamação e calúnia. Sempre que um de nós sai da linha este é repreendido pelo coletivo. Por isso não deixem de mandar uma PM sempre que algum de nós tomar uma atitude que considere injusta - isso não inclui ser contra sua opinião.
[quote=emerleite]Márcio,
O que as pessoas não entendem é que os Moderadores agem desta forma porque prezam pela qualidade do forum. Parece que estou falando um absurdo ao se observar a quantidade de esculachadas que eles dão, mas se você pararem pra prensar, verá que eles não permitem em hipótese alguma que conceitos distorcidos ou achismos possam imperar aqui neste forum. Caso a atitude deles fosse outra, provavelmente veriamos aqui pelo fórum diversas threads tendo por resultado final teorias e conceitos não verdadeiros sobre diversos assuntos.[/quote]
Emerlei você quer saber, se eu sou uma pessoa de Opinião !!! , quer saber se estou fazendo coluio com alguém ou auto promoção,[color=red] quer saber se não vejo que os moderadores tem uma maneira mais inteligente de responder do que simplesmente entrar em colera.
[/color]
[color=blue]“Ainda acho que você poderia ter somente sua opinião , dando a sua colocação tecnica e não pessoal”[/color]
É Simples, SOU MAIS JAVA DO QUE QUALQUER TECNOLOGIA QUE SE MOSTRE NESSE FORUM É ISSO É PELA MINHA CONCEPÇÃO.
Abraçossss
[quote=saoj][quote]
verá que eles não permitem em hipótese alguma que conceitos distorcidos ou achismos possam imperar aqui neste forum.
[/quote]
E quem são eles, vc ou eu para julgar o que é certo e o que é errado? Se eu vier aqui falar que a folha é azul quero ser respeitado, até porque vivemos num país livre…[/quote]
Estamos todos vivendo em sociedades com um nivel razoavel de liberdade de expressao, mas um dos problemas disso eh que todo imbecil eh livre pra falar bosta, e faz absoluta e maldita questao de jogar isso na sua cara quando vc aponta as falhas completamente absurdas na logica do sujeito. Pelo jeito que andou essa thread ate agora, parece que tem um desse tipo se cadastrando no GUJ a cada segundo.
Nao, nao eh uma “excelente opcao”. A JVM nao se importa mais com isso faz muuuuuuuuuuito tempo (e se vc quer um pouco da historia, o HotSpot veio do Self… uma linguagem, ironicamente, baseada em prototipos e que nao tinha tipos primitivos). Se eu fosse vc, eu faria um teste de performance antes de afirmar algo desse tipo com essa conviccao toda (e aprenderia a tunar o garbage collector de uma JVM, de quebra).
Curioso, eu acho isso uma seria deficiencia mental de quem sugere uma aberracao dessas, e ao mesmo tenta defender a orientacao a objetos. Deixa eu soletrar: E N C A P S U L A M E N T O. En, ca, psu, la, men, to. Repita comigo.
Isso é uma atitude totalmente arrogante. Agindo assim vc só está conseguindo prejudicar a si mesmo. Parece o Hugo Chaves!
Inclusive, é só fazer uma busca aqui no GUJ por algumas mensagens suas do passado (coisa de 4-5 anos) que veremos que vc já foi um cara bem mais humilde e contido.
O dia que vc trabalhar com “Algorithmic Trading” cada milisegundo será muito importante. A oportunidade de arbitragem entre uma opção e a sua correspondente ação por exemplo, surge em menos de um milisegundo. Então se eu não quero usar o GC porque eu acho que introduz latência no meu sistema o problema é estritamente meu, e não é porque vc falou com essa arrogância toda que eu vou achar que vc está certo. Um milisegundo pode ser a diferença que vai causar que eu perca aquela ordem para o meu concorrente ou para o próprio mercado.
Mas não te culpo por pensar assim, visto que até os caras que implementaram o Selector do Java leakam (vazam) iterator objects e um monte de Integers a cada iteração. Como eu faço muitas milhares de iterações por segundo, eu estou sim gerando um load desnecessário no meu GC. Ainda bem que temos o código fonte do Selector, então podemos fazer um patch ali para resolver isso.
Obrigado pelo elogio! Jakarta Commons Collections possuem coleções de primitivos. Num sistema onde a cada segundo estou adicionando e removendo milhares de entradas num Map<Integer, Object>, é ridículo ficar criando milhares de objetos Integers só para o GC ter que limpá-los depois. E nesse caso eu não quero encasulamento (eu sei o que é isso, CV). Nesse caso eu quero ou usar primitivos ou pelo menos reutilizar os objetos Integers (integer mutável ou int[]).
Antes de falar com toda essa arrogância, dá uma lida na documentação oficial sobre o GC: http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html
Se vc aceitar (ou permitir) que minha aplicação não pode PAUSAR e se vc ler a documentação do GC, vc vai entender sem precisar ser tão agressivo assim. Como ainda não dá para desligar o GC, então nós simplesmente não produzimos nenhum trabalho pra ele.
[quote=cv]
Estamos todos vivendo em sociedades com um nivel razoavel de liberdade de expressao, mas um dos problemas disso eh que todo imbecil eh livre pra falar bosta[color=red] [/color], e faz absoluta e maldita [/quote]
Você apela na revolta e violência de suas palavras, como um verdadeiro desequilibrado querendo ser uma pessoa passando por instruída.
VOCÊ É UM FARSANTE !!!
VOCÊ É UMA MENTIRA …
Carlos Villela [size=24] [/size]é um dos coordenadores do GUJ, trabalha com Java há 6 anos, e atualmente explora a JVM também com Ruby, através do projeto JRuby. Há três anos trabalha na ThoughtWorks de Londres, a conceituada consultoria que tem como seu cientista-chefe ninguém mais que Martin Fowler. Atualmente desepenhando o papel de arquiteto em grandes projetos, Villela vem falar um pouco sobre as velhas e as novas arquiteturas, os grandes mitos e metodologias ágeis.
Alugo o ringue e cadeiras para quantos espectadores? Porque daqui só vai sair porrada.
Calma com as ofensas, se você acha que é melhor do que ele, faça ou mostre que é.
Até!
Cada dia que passa tenho a impressão que programadores seniors têm fortes tendências
de se acharem deuses da computação e sairem pisando nos “seres inferiores”.
Eu admiro mesmo ver um programador senior com 15 anos de experiência dizer: “Eu ainda estou aprendendo”.
O foda eh que aprender alguma coisa aqui no GUJ ultimamente tem sido dificil. Mas a gente ta tentando…
[quote=cv][quote=jonataswingeter]
Cada dia que passa tenho a impressão que programadores seniors têm fortes tendências
de se acharem deuses da computação e sairem pisando nos “seres inferiores”.
Eu admiro mesmo ver um programador senior com 15 anos de experiência dizer: “Eu ainda estou aprendendo”.[/quote]
O foda eh que aprender alguma coisa aqui no GUJ ultimamente tem sido dificil. Mas a gente ta tentando…[/quote]
Por que vc assumiu que ele estava se referindo a vc?
Pode estar sendo difícil, mas pelo menos nesse tópico vc teve a humildade de aprender que o GC pausa a sua aplicação mesmo numa máquina com mais de um processador, e que evitar a criação de objetos xulos Integers quando vc pode simplesmente usar primitivos ou fazer um pool pode ser importante num ambiente de alta-performance.
E eu nem precisei falar que vc tinha uma deficiência mental… :thumbup:
O problema que quem se acha melhor, acaba se acomodando com suas idéias e ideais e no fim, mostra-se medíocre em seu conhecimento. Jamais verei verdadeiros mestres repudiando outros ou ofendendo. Quem sabe de verdade, também admite que erra e que tem muito a aprender.
O foda eh que aprender alguma coisa aqui no GUJ ultimamente tem sido dificil. Mas a gente ta tentando…[/quote]
Se acha que já sabe tudo ou que não tem algo a contribuir mais, então tornou-se “perfeito”. Será que estamos agora lhe dando com “deuses”?
[quote=saoj][quote=cv][quote=jonataswingeter]
Cada dia que passa tenho a impressão que programadores seniors têm fortes tendências
de se acharem deuses da computação e sairem pisando nos “seres inferiores”.
Eu admiro mesmo ver um programador senior com 15 anos de experiência dizer: “Eu ainda estou aprendendo”.[/quote]
O foda eh que aprender alguma coisa aqui no GUJ ultimamente tem sido dificil. Mas a gente ta tentando…[/quote]
Por que vc assumiu que ele estava se referindo a vc?
Pode estar sendo difícil, mas pelo menos nesse tópico vc teve a humildade de aprender que o GC pausa a sua aplicação mesmo numa máquina com mais de um processador, e que evitar a criação de objetos xulos Integers quando vc pode simplesmente usar primitivos ou fazer um pool pode ser importante num ambiente de alta-performance.
[/quote]
Você não descreveu um ambiente de alta-performance, mas sim um de RealTime programing. Alta performance está associada a throughtput alto e não baixa latência na resposta.
O que eu aprendi nesse tópico é que tem gente que gosta de de gabar em público de usar a ferramenta errada para resolver seu problema. Usar Java (e não RTJS) para qualquer coisa que exija tempo de resposta na casa de 1ms é burrice por definição, pois necessariamente vai falhar quase todo minutos em cumprir essa promessa - um exemplo é o GC do HotSpot que leva muito mais de um milisegundo só para fazer o stop-the-world, que é necessário em todo ciclo de minor collection*. Fora que se não estiver usando um RTOS qualquer coisa nesse sentido é pura M**d*, .
*O Hotspot usa a técnica de mapear uma página como read-only e causar um segfault em todas as threads do sistema. Em um sistema que não cria nenhuma thread são 3 ou 4 que precisam ser pausas e a latência disso é (3 ou 4) / número de cores + 1 ticks. Por exemplo, o Linux usa 250Hz por padrão, isso gera uma latência de 8millis em uma máquina com 4 cores.
Me desculpe, louds, ó Deus do computação! Onde eu trabalho só estamos fazendo M**d*. Deveríamos ter utilizado ERLANG ou ter contratado vc para fazer a coisa! Perdão ó mestre!
Leia de novo a documentação de GC oficial, que vc verá que ele só precisa PAUSAR as demais threads da aplicação SE e ONLY SE ele tiver alguma memória para liberar. Caso contrário isso é feito em paralelo. A gente é pobre mas pelo menos algumas máquinas com mais de 1 processador a gente conseguiu comprar.
De qualquer forma valeu pelo argumento. Tem coisas interessantes aí, apenas o jeito que vc se expressou conseguiu impressionar até o CV. Vamos ver se aparece mais um para competir com vc. :thumbup:
Assim, quando você usa Integers o autoboxing/autounboxing acontece com chamadas a Integer.valueOf( int ) que fazem pool dos integers que já foram criados. Deve ser melhor do que você mesmo fazer o seu pool, não?
Onde é que você está tendo essa criação de objetos xulos que são rapidamente coletados? Você anda criando integers chamando “new Integer(int)”?
Pessoal,
Se o Java faz autoboxing a todo momento, ou se a HotSpot pára a todo instante, não importa agora…
O que estou vendo aqui é uma discussão inútil, pois é duelo de forças.
Criem um tópico sadio, discutam os pontos, e com certeza vai agregar valor pra comunidade.
Vai uma sugestão:
HotSpot GC step-down ou Jikes GC Cyclic-Reference?
E sobre o meu comentário de humildade, foi pra todo mundo, inclusive pra mim…ou vocês acham que não dá uma tentação de “esbanjar” conhecimento?
[]'s,