Veredito parcial no caso Oracle vs. Google a respeito do Java x Android

[quote=Longino][quote=juliocbq]
C não precisa de api, Longino ela possui uma biblioteca standard. Primeiro porque é uma linguagem de médio nível e uma linguagem de sistema. O software escrito por ela precisa ser obrigatóriamente isento de maiores dependências.

O padrão ansi iso está aí para desmentir isso.


http://www.ansi.org/[/quote]

Querido Juliocbq,

Eu nem respondi o seu comentário anterior para evitar conflitos visto que praticamente tudo nele estava incorreto. Mas você quer de todas as formas criar confusão, não é? Você está errado novamente.

O padrão C não define funções para posicionar cursor na tela, fazer query do teclado, entre outras. Normalmente desenvolvedores usam bibliotecas não padrão, assim como conio.h ou curses, para providenciar esse tipo de controle.

Qualquer aplicativo texto mais complexo do que um Hello World precisará lidar com o SO.[/quote]

Isso não é verdade longino, além de você ter ignorado completamente o que acabei de postar. C é uma linguagem de médio nível e também linguagem de sistema, e novamente os programas compilados precisam ser isentos de maiores dependências. Mas o que você postou sobre ser impossível não está correto:

[quote=Longino]
Em outras linguagens, notoriamente o C, as APIs são ínfimas. É impossível sequer desenvolver um simples aplicativo de linha de comando de forma portável (e por isso existe a biblioteca curses).[/quote]

O padrão ansi usa caracteres de escape e você precisa usar a standard io para imprimi-los.

Olha a sua grande complicação, aliás impossível sem usar o sistema operacional(O que é uma grande besteira dita aqui no guj, porque a maioria das bobliotecas são escritas em assembly).

[code]

#include <stdio.h>

#define esc 27

#define cls printf("%c[2J",esc)

#define pos(row,col) printf("%c[%d;%dH",esc,row,col)

main()

{

cls; /* limpa a tela */

pos(9,28); /*posiciona o cursor em 9, 28 */

printf("**************");

return 0;

}[/code]

Eu não quero arrumar confusão, mas também não quero ler as besteiras que você posta. Eu não vou ficar te corrigindo mais já que você fica bravinho com coisas tão insignificantes.

[quote=juliocbq]
A google vai pagar as 9 linhas de infração da jvm, ou não dependendo do que o juiz decida sobre fair use.[/quote]

Numa boa? Independente do resultado os dois vão sair perdendo.

E graças ao hack do google temos uma solução 3x mais lenta que o Java real e um grande parceiro como a Oracle alienado.

Independente de qual seja sua posição sobre o caso você deve concordar que foi uma estupidez do google!!

[quote=Hermanoz][quote=juliocbq]
A google vai pagar as 9 linhas de infração da jvm, ou não dependendo do que o juiz decida sobre fair use.[/quote]

Numa boa? Independente do resultado os dois vão sair perdendo.

E graças ao hack do google temos uma solução 3x mais lenta que o Java real e um grande parceiro como a Oracle alienado.

Independente de qual seja sua posição sobre o caso você deve concordar que foi uma estupidez do google!!
[/quote]

Olha, no meu ponto de vista a estupidez foi da oracle pelo jcp perder a apache, que contribuía mais que as duas juntas. A oracle tinha e tem todo o direito de negar a licença para a apache por razões de mercado, mas a consequência é o android.

Sobre o desempenho, o artigo da wiki diz realmente que a dalvik(android) 2.2 é umas 2 ou 3x mais lenta, mas os cientistas dizem que processadores baseados em pilha(jvm) são inferiores aos baseados em registradores(dalvik). O benchmark no artigo foi feito pela Oracle.

Julio, não precisa de benchmark pra perceber que aparelhos com Android são mais lentos que a concorrência.

[quote=Hermanoz][quote=juliocbq]

Olha, no meu ponto de vista a estupidez foi da oracle, pelo jcp perder a apache, que na minha opinião contribuía mais que as duas juntas. A oracle tinha e tem todo o direito de negar a licença para a apache por razões de mercado, mas a consequência é o android.

Sobre o desempenho, o artigo da wiki diz realmente que a dalvik(android) 2.2 é umas 2 ou 3x mais lenta, mas os cientistas dizem que processadores baseados em pilha(jvm) são inferiores aos baseados em registradores(dalvik). O benchmark no artigo foi feito pela Oracle.
[/quote]

Julio, não precisa de benchmark pra perceber que aparelhos com Android são mais lentos que a concorrência.[/quote]
tá ok, mas qual aparelho comparado com qual?

Meus 2 centavos:

1 - patente <> direito autoral. O Google perdeu no segundo.
2 - a Oracle não critica nem discute sobre problemas com a plataforma Java, mas com a linguagem Java. A questão é simples desde a época da Sun e não mudou: se não for write once, run anywhere, não é Java. Ou seja, se não for compatível com a especificação, chame de Lava, Bava, Quava, Jala, etc. Mas não será Java. Foi assim que a Sun derrotou a MS (e não a ver com plataforma). Por que a Google pode fazer isso? Só porque é boazinha?
3 - o código assumidamente copiado já foi substituído no Android 3.2 pra frente.

Isso não é portável e não é função C, tanto que pode ser feito de qualquer linguagem. Depende do terminal suportar ou não essas seqüências. Já tentei utilizá-las sem sucesso no Windows entre outros.

Além do mais, existem várias outras funções necessárias como por exemplo saber sobre algum input do teclado ou mouse sem travar o programa, etc.

[quote=juliocbq]
Eu não quero arrumar confusão, mas também não quero ler as besteiras que você posta. Eu não vou ficar te corrigindo mais já que você fica bravinho com coisas tão insignificantes.[/quote]

O problema é que você é muito cabeça dura. E por isso que o GUJ vira favela.

Se quer ser ignorante, azar o seu.

[quote=marcosalex]Meus 2 centavos:

1 - patente <> direito autoral. O Google perdeu no segundo.
2 - a Oracle não critica nem discute sobre problemas com a plataforma Java, mas com a linguagem Java. A questão é simples desde a época da Sun e não mudou: se não for write once, run anywhere, não é Java. Ou seja, se não for compatível com a especificação, chame de Lava, Bava, Quava, Jala, etc. Mas não será Java. Foi assim que a Sun derrotou a MS (e não a ver com plataforma). Por que a Google pode fazer isso? Só porque é boazinha?
3 - o código assumidamente copiado já foi substituído no Android 3.2 pra frente.[/quote]

Ok marcos, mas eu não consigo entender o seguinte:
O que é write once run anyware é a plataforma(Não faz sentido a linguagem rodar em qualquer lugar porque ela não roda nada). A linguagem não tem nada haver com isso:

É alegado que android não é java. Como se pode comparar a situação da microsoft com esse caso?

O item 3 são 9 linhas de código de um algoritmo comum que realmente foi copiado no meio de 15 milhões no total, o que diz 0,0000006 da dalvik.

A google não é boazinha(nem um pouco mesmo) mas não fez como a microsoft, por isso a justiça chegou nesse consenso. Já citei a questão da apache anteriormente.

[quote=juliocbq][quote=Jaba][quote=juliocbq][quote=fredferrao][quote=maior_abandonado]Júri decide: Google copiou código proprietário para usar no Android, mas só um pouquinho

o titulo dessa noticia me fez pensar em um advogado do google falando: “Foi sem querer querendo…”[/quote]

Me parece que o que foi decidido parcialmente foi que o método rangecheck(com super 9 linhas) havia sido copiado, em seu testemunho Josh Block(que foi quem criou o metodo, na epoca da SUN), disse que ele é bem simples e qualquer recém formado tem capacidade de faze-lo, disse tambem que após constatado ele foi removido, e ja não consta nas novas versões do android(não sei a partir de qual versão)[/quote]

Sim o próprio confessou até mesmo antes de ir pro juri. Mas essa questão das 9 linhas me parece que foi descartada. O x da questão é a linguagem e a api. E me parece que a google pediu “fair use”.[/quote]

Claro, e você continua sendo imparcial.[/quote]

Uai, mas se o juiz descartou quem somos nós para julgar? No meio de 15 milhões de linhas você possuir 9 semelhantes está dentro da estatística. Se você comparar o Torá e a Bíblia vai encontrar uma porcentagem semelhante também. O juiz julgou essa alegação de quebra de patentes ridícula( e é mesmo).[/quote]

[quote=Longino][quote=juliocbq]

[/quote]

Isso não é portável e não é função C, tanto que pode ser feito de qualquer linguagem. Depende do terminal suportar ou não essas seqüências. Já tentei utilizá-las sem sucesso no Windows entre outros.

Além do mais, existem várias outras funções necessárias como por exemplo saber sobre algum input do teclado ou mouse sem travar o programa, etc.

[quote=juliocbq]
Eu não quero arrumar confusão, mas também não quero ler as besteiras que você posta. Eu não vou ficar te corrigindo mais já que você fica bravinho com coisas tão insignificantes.[/quote]

O problema é que você é muito cabeça dura. E por isso que o GUJ vira favela.

Se quer ser ignorante, azar o seu.[/quote]

Esse programa segue o padrão ansi(Não é essa a nossa discução?). O que não é default no windows 7.
O problema aí é o seu terminal e não esse pequeno programa que segue a norma ansi.

Todos os caracteres de escape ansi, que fazem o que você procura estão documentadas aqui:

você nem se deu o trabalho de pesquisar e procurar saber antes de postar.

pode configurar o padrão usando Device=ansi.sys no config.nt

Eu sou cabeça dura porque sei do que estou falando, você é cabeça dura porque não sabe o que fala.

Se a linguagem não seguir a spec, não roda na virtual machine então não é linguagem java.

Android é SO. A Oracle nunca questionou o SO, a VM ou a plataforma. Ela questiona a LINGUAGEM, e a Sun processou porcausa da plataforma E da LINGUAGEM. E na documentação do Google cita que a LINGUAGEM é java, mas não é. A discussão jamais entrou sobre alegação da Dalvik ser o que não é também não proibiu ninguém de fazer VMs não certificadas. Tem muitas por aí, mas nenhuma usa código da Oracle sem desrespeitar os direitos autorais.

Como você mesmo disse, quem somos nós pra questionar o juíz, que decidiu que o Google copiou sim o código alheio e não respeitou os direitos autorais, coisa que o pessoal negava que pudesse ter acontecido. E decidiu que o Google chupou até documentação apenas dando um replace onde tinha Sun/Oracle para Google. Se o código era importante ou não, se a documentação poderia ser copiada ou não, é outra questão.

Mas que o Google tinha negado ter feito e depois admitido que copiou, creio que ninguém pode contestar.

Eu só acho absurdo o seguinte:
eu trabalho 6 anos numa empresa, e desenvolvo uma classe Helper, que me ajuda a fazer conversões, ordenar listas, esse tipo de coisas.
Aí vou pra outra empresa e tenho que fazer minha classe helper de novo, sem copiar e colar.
O cara que fez as duas classes é o mesmo cara, esse cara (eu) tem a mesma lógica, claro que algumas coisas mudam na vida, eu caso, engordo, fico careca. Mas a chance de eu escrever um metodo igual é muito grande.
Isso quer dizer que sobraram 20,50,300 linhas de código igual de uma empresa pra outra e a segunda empresa copiou código?
quer dizer q após trabalhar numa empresa, eu sendo programador, sou imprestável?
não posso mais utilizar a lógica que aprendi em outros lugares?

Essas leis e processos são todos ridiculos.

Errado. O Google criou a plataforma de software para smartphones mais utilizada (e portanto, mais bem sucedida) no planeta. :wink:

De novo errado. O Google criou o ANDROID e o que todo usuário sabe é que existe um ANDROID instalado no seu celular. Se ele usa Java ou não, poucos sabem e isso, no final das contas, não faz a menor diferença (a não ser que vc seja a Oracle e que queira ganhar uns trocos com algo que o cocorrente fez melhor do que vc).

O Google ta acostumado a fazer isso. Copiar produtos de terceiros e colocar disponível gratuitamente. No caso do Android eles tiveram o mérito de responderem rápido ao iPhone, mas o crescimento do Android foi mais porque os competidores estão atrasados e o mercado está em forte expansão.

Mas não da pra dizer que o Google ganhou nada ainda, eu prevejo que quando esgotar os trouxas que pagam 2k num aparelho os problemas para o Android vão começar a se manifestar.

No que isso o Android se diferencia do iPhone?
Por acaso o iPhone tem opções low-end de 200 reais?

pagar 2 k bota trouxas nisso!!!

A mesma bagunça que a google tá fazendo com o java, já fizeram com a linguagem C, que convenhamos é uma coisa de louco. E sem essa de ANSI C, na prática é igualzinho ao ANSI SQL, todos falam de Ansi, mas criam suas próprias coisas.

Pau que bate Chico, bate em Francisco.

Agora, o povo do Mono está insatisfeito com o desempenho da dalvik e querem criar uma VM melhor para rodar NET.

Esse povo sempre gostou de uma baguncinha.

A oracle tem mesmo que zelar pela fidelidade do java, entenda-se nome java que engloba, LINGUAGEM, API e VM
e se violar um desses que arque com as consequências.

'Propaganda Enganosa não !!!, em google". Ou é java ou não é !!!, porque não usaram aquela linguagem deles chamada “GO”.

o marcosalex disse tudo, posso estar errado, mas acho que o google está de gaiato nessa história toda.

[quote=marcosalex][quote=juliocbq]
Ok marcos, mas eu não consigo entender o seguinte:
O que é write once run anyware é a plataforma(Não faz sentido a linguagem rodar em qualquer lugar porque ela não roda nada). A linguagem não tem nada haver com isso:
[/quote]
Se a linguagem não seguir a spec, não roda na virtual machine então não é linguagem java.
[/quote]

Entendeu agora, juliocbq ?

[quote=j-menezes][quote=marcosalex][quote=juliocbq]
Ok marcos, mas eu não consigo entender o seguinte:
O que é write once run anyware é a plataforma(Não faz sentido a linguagem rodar em qualquer lugar porque ela não roda nada). A linguagem não tem nada haver com isso:
[/quote]
Se a linguagem não seguir a spec, não roda na virtual machine então não é linguagem java.
[/quote]

Entendeu agora, juliocbq ? [/quote]

A coisa toda é muito confusa.

O que roda na Dalvik VM é bytecode dalvik e não bytecode Java, claro porque a dalvik NÃO é uma JVM, e nunca disse que era, blz.

A linguagem usada para programar para android é Oracle Java, até aqui eu acho que não problema algum, se houvesse problema o google ja teria retirado isso aqui do site: [quote] The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language

http://developer.android.com/guide/basics/what-is-android.html:[/quote]
OK.

Entao o Android SDK disponibiliza as API(as libs) com os classes especificas do android, tipo Activity, Services, Broadcast e por ae vai.

Bom até aqui acho que não foge do normal, estamos no eclipse, usando o JDK, com as lib do android desenvolvendo um app java normal, tirando a api do android o resto é tudo do JDK, int, String, ArrayList, etc, até aqui continuo achando que não tem problema algum.

Agora tu manda ele fazer o build, aqui começa a coisa toda, ai ele pega teus .class e converte para .dex, que é bytecode dalvik, depois compacta tudo num .apk, semelhante a um .jar, estes .dex é que vao executar na dalvik, a dalvik tem que ter a implementação de tudo que tu usou, List, String, ArrayList etc, e é aqui que acho que a confusão começa, no código fonte da dalvik, pois os caras tiveram que implementar tudo, poderiam ter chamado de DalvikArrayList, mas parece que usaram os mesmos nomes de classes e pacotes, apesar de apenas o rangeCheck ter código identico.

Mas a questão não é o google dizer que tu programa em java para android, isto esta certo e a oracle não esta reclamando disto, ela esta reclamando da implementação da Dalvik, que usou a mesma estrutura de pacotes e nomes de classes do JDK, alem de ter copiado o rangeCheck.

Em momento algum do processo eu vi alguma menção da Oracle dizendo que o google não poderia dizer que se programa em android, o que esta la pra todos verem é a questão de copyright(estruturas as API’s, pacotes e classes, alem de copia de código fonte), e agora na segunda etapa do processo, vem a questão de patente, que se restaram duas, e mais uma vez, eu não vejo nada haver com usar o nome java:

[quote]The two remaining patents ? U.S. Patents 6,061,520 and RE38,104, aka ?520 and ?104 ? are related to the underpinnings of the Java virtual machine, a piece of software that runs applications written in the Java programming language…
As the two sides battle over patent ?104 ? which describes a ?method and apparatus for resolving data references in generated code? ? the arguments will revolve around the term ?symbolic reference? and how this applies to software compilation, the process of turning programming code into executable software. A ?symbolic reference? tags data with a name rather than its numeric memory location, and the two are then dynamically resolved. Google will argue that it does not use symbolic references, Jacobs said, but Oracle will argue otherwise. ?The evidence is the source code,? he said.

The ?520 patent describes a ?method and system for performing static initialization.? Basically, this is a way of consolidating classes of files, allowing virtual machines to execute less code than they otherwise would. Here the key term is ?simulated execution.? Oracle claims Google uses simulated execution with Dalvik, while Google says it doesn?t simulate ? it merely parses files.[/quote]