Java X Software Livre (leiam)

25 respostas
marcelomartins

Escrevi num português muito errado e pelo tamanho nem revisei, mas foi como um desabafo contra o pessoal cego do software livre.

Fui escrevendo na ordem que as coisas vinham na minha cabeça e cuspindo com os dedos no teclado :twisted: :twisted: :twisted: (profundo isso)

Leiam por favor:

http://br-linux.org/noticias/003511.html#034382

Espero não ter colocado muitas inverdade :smiley:

25 Respostas

carloca

Já cancei de discutir com alguns “tipos” de pessoas que são defensores
ferrenhos do sofware livre, acho que não vale muito a pena quando a pessoa sai da discussão básica e entra em “paixões pessoais”.

Falta o básico "bom senso" para muitas pessoas verem que existem

necessidades diferentes e cada modelo pode encontrar o seu mercado.

Tomara que muitos projetos se beneficiem do modelo livre, quem trabalha

com programação a mais de 10 anos sabe a barra que era, vc não tinha como saber como as coisas funcionavam, muito menos modificar ou corrigir, para estudar, os únicos fontes eram dos “samples” das ferramentas.

Agora está muito bom, vc tem tanta coisa que falta tempo pra maioria

poder se divertir com 10% do que gostaria, mas mesmo assim o trabalho tem que ser entregue usando ou não software livre.

É fácil vc discutir teorias se não tem que produzir "busines value" que

é aquilo que as empresas te pagam pra fazer, quem tem que fazer isto sabe que na prática tem que usar o que é melhor para cada caso, se for tudo livre melhor, senão paciência :slight_smile:

Só fico chateado de ver a quantidade de energia gasta neste tipo de

discussão, energia esta que poderir ser usada de maneira mais produtiva.

Abraços a todos ;-)
Carlos.
Luca

Olá

Java precisa ser livre para ter vida longa independente da Sun e principalmente porque é uma boa linguagem. Se eu usasse algumas das limitadíssimas alternativas citadas nos comentários do link citado não conseguiria fazer nada melhor do que fazia há 10 anos atrás. Exemplo de linguagem que eu particularmente não conseguiria fazer nem 25% do que faço em Java no mesmo prazo: C

E sobre a questão jurídíca da Kodak trata-se da famosa questão de patentear idéias que existe por lá. E sob este conceito TODAS as linguagens interpretadas com auxilio de outra aplicação infringem as mesmas patentes da Kodak. Portanto para ficar exatamente dentro da lei americana sugiro que usem apenas lápis e papel pelo menos enquanto ninguém diz que já patenteou esta idéia.

[]s
Luca

pcalcado

Este é o ponto. A Sun não pdoe atachar sua vida e seus negócios à plataforma Java.

Python é livre. Java semrpe foi proprietária e isso não impediu J++ e a JVM(?) da Microsoft, nemt antos outros problemas.

Uma coisa não tem nada a ver com a outra… Minha apostas no futuro de Python é sua característica livre, e Java perde, e feio…

[]s

Luca

Olá

Uma dúvida: Consegue fazer com isto o mesmo que faz com Java no mesmo prazo?

E me parece que Python assim como VB, C# e quase tudo mais no mundo, também infringe a mesma patente da Kodak, principalmente sob o ponto de vista do juiz que deu ganho de causa para a Kodak. Diga-se de passagem que o juiz é do local da sede da Kodak, se ele fosse de Santa Clara a Sun teria ganho. A Justiça é cega só na estátua.

[]s
Luca

N
A Justiça é cega só na estátua.

Gostei!

P

Já tem uma linguagem que é a mistura de Java e Python, se eu não me engano é Jython o nome…

Rafael_Steil

Pq estao desenvolvendo mais outra jvm “livre”? pq nao pegam algum dos projetos ja existes nessa area e tao continuidade?

bah.

Rafael

Daniel_Quirino_Olive

“Rafael Steil”:
Pq estao desenvolvendo mais outra jvm “livre”? pq nao pegam algum dos projetos ja existes nessa area e tao continuidade?

bah.

Rafael

Pois é, mas o ego e o sentimento imbecil de brasilidade não permitem este tipo de atitude :stuck_out_tongue:

louds

Vale lembrar algumas dados interessantes:

-A especificação do Java e da Java Virtual Machine são isentas de qualquer restrição, ou seja, a Sun não possui controle sobre o uso dessas especificações.

-O nome Java é propriedade da Sun, mas nada impede alguem implementar os 2 itens acima e chamar de guarana.

-O JCP é tão acessivel para meros mortais quanto Python, que tem o Guido Van Rossum como déspota vitalício ditando o futuro da linguagem.

-Java é uma plataforma constituida de uma penca de espeficicações. Rubi, entretando, é uma implementação de especificação alguma.

-Hoje existem pelo menos 3 vendedores de JVMs sem rabo preso com a Sun, ela não tem como impedir a distribuição por estas partes de JVMs.

-Python possui somente uma implementação, ela promove um “vendor-lock-in” no sentido que é impossivel criar uma implementação alternativa da plataforma sem criar inúmeras incompatibilidades intrinsicas ao fato de usarem o modelo “a implementação é a especificação”. Vide jython.

-Java não é uma linguagem legal, tão pouco elegante. Já sua plataforma é insuperavel.

-Existem mais implementações incompativeis de Scheme R5 que qualquer fonte seja capaz de catalogar.

-A GNU Classpath possui 67,25% da API do java 1.4 sem contar corba.

-O GCJ implementa de forma compativel 77,94% de toda api do java 1.4.

-A Jikes RVM é uma VM quase completa no sentido de suportar toda semântida da linguagem java, a ela só faltam as bibliotecas.

-No começo do ano os scores do GCJ e da Classpath não iam muito alêm dos 50%.

Sobre os números de compatibilidade:
http://www.kaffe.org/~stuart/japi/

Reclamem menos e contribuam* mais:
http://www.gnu.org/software/classpath/classpath.html

*Pessoas que concordaram com a SCSL, eu por exemplo, não podem legalmente contribuir.

B

O objetivo de se implantar Software Livre, ao contrário de muitos comentários que li em relação ao Java não é o de criar uma grande confusão movida por fanáticos da tecnologia. Mas o de oferecer opções ilimitadas.
O exemplo mais claro que prova a superioridade de implementações totalmente livres: o kernel do Linux. Alguma dúvida de que ele seja livre? Alguém já ouviu falar de alguma imcompatibilidade?
Agora, se a comunidade Java e a Sun têm se demonstrado incapazes de implementar um modelo de sucesso da JVM Livre. E oficial, que fique muito bem claro.
Também defendo que Java deveria ser administrada por um consórcio, não ser propriedade de uma empresa.
Querem um exemplo prático que seguiu tal modelo e se tornou um caos: o MS Windows. Apenas uma empresa desenvolve e aprimora. Modelo interessante? Tenho certeza que não.

O que quero dizer, é que sempre existe um modo inteligente de se administrar as coisas. Mas infelizmente não é o que está ocorrendo com o Java. A linguagem/plataforma está muito boa em termos técnicos/científicos. Mas em termos políticos/administrativos ainda há muito o que evoluir.

Rafael_Steil

“bruto”:
s.
O exemplo mais claro que prova a superioridade de implementações totalmente livres: o kernel do Linux. Alguma dúvida de que ele seja livre? Alguém já ouviu falar de alguma imcompatibilidade?

Na verdade, varias. Caso contrario, nao existiria “compativel com redhat”, “certificado para suse” e afins.

Rafael

louds

Na verdade eu nunca ouvi falar de compatibilidade com linux. Pelo menos com os padrões posix.

cv1

O Linux nao tem uma especificacao - nao tem ninguem especificando o Linux, pro caso de alguem querer fazer outro. Mesma coisa com Python, Perl, Tcl e mais um mooooonte de linguagens. A especificacao e a implementacao sao a mesma coisa, e nao se ve muito motivo pra separa-las. Entao, o argumento que voces estao travando aqui nao faz mto sentido, faz? :slight_smile:

Daniel_Quirino_Olive

Sei não, Carlos.
Não dá para comparar Python e Java, neste caso. O caso do Java é mais sensível porque existem várias empresas que dão suporte a Java e que são loucas para adicionar alguma funcionalidadezinha não-padrão. E sabemos que empresa é esta (aquela lá da conspiração alienígena!). No caso do Python, este interesse por se criar forkzinhos próprios não existe.
No caso do Linux, não existem incompatibilidades muito grandes, mas que elas existem, sim, elas existem. Tirando a famosa história das diversas versões de RPM que existem por aí, os mecanismos de configuração costumam variar muito de distro para distro (basicamente os arquivos de configuração do Slackware não são os mesmos do RedHat que, por sua vez, são diferentes do Debian…).

B

Então provavelmtne você nunca compilou um kernel Linux, nem instalou um driver ou coisa parecida. Quantos kérneis oficiais do Linux existem: 1. www.kernel.org Quando me referi a questão de compatibilidade, me refiro a casos de softwares com padrões totalmente livres e abertos que funcionam assim. O Kernel do Linux é um exemplo, você realmente não tem um kernel para cada distribuição, e um driver feito pra linux, pro exemplo, funcionará em qualquer uma delas. Digo isso porque eu já vi por mim mesmo.
Já que estamos falando de APIs, vou dar um exemplo livre: a biblioteca gráfica GTK, para C e tem também uma versão pra C++. Entre no site www.gtk.org e você verá por si mesmo. Algum problema quanto à compatibilidade?

Como já disse, o kernel do Linux é único, e existem especificações sim:

http://www.linuxbase.org/

Quanto à plataforma gráfica, o protocolo X é tido como padrão:
http://www.x.org/

Agora, você não obrigado a seguir nada disso. Se você gostaria de não ter a escolha de usar uma tecnologia ou não, isso é problema seu.
Eu não gostaria.

F

Oi Marcelo,

Gostaria de levantar apenas uma bandeirinha quanto ao que você falou de sistemas de janelas no java. O Swing é lerdo pois ele foi mal implementado, há como se implementar sistemas gráficos em java com ótima performance, por ai existem algumas apis para serem usadas.

Não lembro onde li que “swing é uma ótima idéia com uma péssima implementação”.

Não querendo me meter muito na discussão geral… Hoje existem tantos projetos livres por ai que com o tempo fica complicado você se manter atualizado. As empresas de desenvolvimento procuram consultores que ja dominem a tecnologia X, mas você se matou de trabalhar no projeto anterior e nem teve tempo pra fazer um Hello World. E quando você fizer seu Hello World pode apostar que existem mais um 3 projetos surgindo por ai utilizando frameworks diferentes deste ai. Claro que não gostaria que fosse algo engessado a la .Net, mas a salada de frameworks de hoje ta começando a virar zona, e é por isso que existem N projetos muito mal implementados, nessa bagunça tem muita gente que não consegue se preparar direito e faz uma nhaca de código, não podemos exigir que todo mundo tenha a mesma aptidão e visão com relação a programação que a maioria aqui tem (pelo que venho observado), é muito comum no mercado você encontrar um cara que programa java a um bom tempo e nunca leu a api porque não sabe inglês, quanto mais um help do hibernate, ww2, struts…

É isso ai, apenas o ponto de vista de mais um desenvolvedor. Seria legal ter uma comissão forte aqui no Brasil apontando para as empresas de desenvolvimento nacionais as tendências do mercado e o que seria melhor usar hoje em termos de ferramentas provendo alguns documentos de referência. Se houvesse apoio de algumas gigantes do mercado isso poderia dar uma organizada no nosso cenário atual e ajudar todos os programadores, principalmente os que estão entrando agora nessa bagunça.

Ironlynx

O negócio eh convencer essas gigantes a investirem nisso…a maioria está tão cega no lucro imediato que não vê os benefícios (óbvios)q isso poderia lhes trazer no futuro… :roll:

F

Eu andei pensando nisso a um tempinho, eu conheço 1 empresa de porte no mercado (forte em web) que sei que se interessaria, mas o que não podemos é fazer tudo na empolgação.

Você esta certo que eles só vêem os lucros, por isso que se o pessoal daqui apoiar essa iniciativa teriamos que ter tudo organizado pra provar por A + B que seria melhor pra eles. Isso numa visão gerencial não de desenvolvedor.

Rubem_Azenha

isso sim seria missão impossivel…

louds

Oi bruto.

Então provavelmtne você nunca compilou um kernel Linux, nem instalou um driver ou coisa parecida. Quantos kérneis oficiais do Linux existem: 1. www.kernel.org Quando me referi a questão de compatibilidade, me refiro a casos de softwares com padrões totalmente livres e abertos que funcionam assim. O Kernel do Linux é um exemplo, você realmente não tem um kernel para cada distribuição, e um driver feito pra linux, pro exemplo, funcionará em qualquer uma delas. Digo isso porque eu já vi por mim mesmo.

Bom, eu tenho pouca experiência com linux, afinal, uso ele apenas desde 98. Mas vamos aos fatos. Compatibilidade binaria no mundo linux ainda é lenda, mas já passou a fase da piada jocosa.

Da época que o gcc mudava a ABI a cada minor release e ficavamos com sistemas incompatíveis até o osso (versões 2.95, 2.96-aborto_da_redhat, 3.0, 3.1, 3.2…hoje).

Do kernel do linux, que trocar por uma versão com step diferente (2.4.x → 2.4.y, com y = x + 1, por exemplo) quebra todos drivers binarios.

Sem falar das bibliotecas que costumam mudar a API no meio de uma minor release.

“bruto”:

Como já disse, o kernel do Linux é único, e existem especificações sim:

http://www.linuxbase.org/

Quanto à plataforma gráfica, o protocolo X é tido como padrão:
http://www.x.org/

Agora, você não obrigado a seguir nada disso. Se você gostaria de não ter a escolha de usar uma tecnologia ou não, isso é problema seu.
Eu não gostaria.

Vejamos, voce fala em padrões de bibliotecas e coisas que não tem muita relação com um sistema operacional.

O linux tenta ser um clone do unix. Existem padrões que regem como uma implementação compativel de unix deve ser, essa padrão é o posix, regido pelo open group. Os principais unixes proprietarios possuem certificação de compatibilidade. O linux é incompativel com todas partes do padrão, seja por falta de algumas funções ou por comportamento diferente.

Mas talves meu convivio com comiters do kernel não seja suficiente para me manter atualizado de novivades e isso tenha mudado recentemente.

Daniel_Quirino_Olive

Ouch!

Ok, vamos lá. Antes que alguém quebre uma garrafa e comece a ameaçar o outro, vamos voltar ao que interessa.

  1. Java não é Python. Podem falar o que quiser a respeito da liberdade que o Python oferece em relação ao seu licenciamento, mas Python não tem um mercado de empresas que tentam comer as concorrentes com cebola no café da manhã do dia seguinte usando toda a sorte de táticas possíveis. Alguém aí tem dúvidas de que a IBM/Oracle/Bea/<empresa-X> tem interesses em se criar extensões proprietárias para suas versões de “plataforma Java” (como eles fizeram com o mundo J2EE). Logo, a transição de um modelo fechado para um modelo aberto, no caso do Java, tem que ser muito bem pensado. Até lá, eu vou sou favorável pela gratuidade do processo de certificação para projetos open-source e pela criação de uma licença-padrão (BSD-like) para distribuição destes projetos pós-certificação.

  2. Java é regido pela JCP, todo mundo sabe. Mas, é ilusão achar que esta “orquestra” funciona em sintonia durante toda a apresentação. Muitas vezes o “maestro” intervem e muita vezes intervem ao seu favor, o que não é muito democrático. Mas, ainda assim, é bem melhor do que um modelo fechado ou um modelo altamente promíscuo e existe uma preocupação constante na busca da melhoria deste modelo.

  3. Ninguém usa Linux. Ou você usa SuSE, ou você usa Red Hat ou, se você for mais purista, você usa Slackware ou Debian. Isso porque simplesmente não existe “O Linux”. O que existe é um zoológico de distribuições, cada uma com suas peculiaridades. A RedHat é famosa por estas particularidades (o louds deu um bom exemplo acima).

Ironlynx

Esse é o maior benefício e o pior problema do Linux.As diferentes distros permitem o ingresso de diferentes usuários(como o Kurumim para newbas,e o Gentoo,para nerds++)nesse mundinho outrora só dos muito nerds mesmo…por outro lado,a universalização do Windows,e sua facilidade,o tornam “stupid-prone”,pois qquer animal usa.(até um dos meus gatos jah ensaiou uma “arte-abstrata” no Paint…huahau)
Mas as coisas estão mudando…(felizmente!) :smiley:

B

Também não quero fugir do mérito da questão. Vou apenas contar o que eu passei:
Estudo Linux há dois anos, e programo nele também, principalmente C/C++.
Todos os programas que desenvolvi até hoje rodaram perfeitamente em todas as distribuições Linux que usei. Nunca tive problemas de compatibilidade.

Quantos aos drivers, alguém consegue instalar perfeitamente os mesmos drivers em todas as versões do Windows? (tido aqui como um sistema livre desses problemas)

Você citou problemas com APIs nativas. Sabe por que ninguém aqui teve provavelmente algum problema assim no Windows? Porque no Windows não existem APIs nativas que você usa o tempo inteiro para gerar binários (não no sentido de que você irá encontrá-las no CD de instalação do SO). Praticamente tudo o que é usado já vem pré-compilado, é só rodar. Assim, você provavelmente não teria grande desses problemas se rodasse apenas softwares pré-compilados no Linux.

Quanto á RedHat e afins, eu não as uso (já usei), nem recomendo. São uma opção, e respeito isso, mas por serem “diferentes”, acabam criando esse tipo de problema.

Não quero criar flames ou coisas do tipo. Apenas achei um tanto exagerado dizer “Na verdade eu nunca ouvi falar de compatibilidade com linux. Pelo menos com os padrões posix.” e “O Linux nao tem uma especificacao”.

Quanto ao Java, sei que ninguém é obrigado a usar a JVM da Sun, apenas acho que seria interessante que a JVM fosse uma implementação totalmente livre. E já que o Linux foi citado, anda creio que seja um caso de SL que deu certo, devido, inclusive, à sua derivação: o Unix. Esse, sendo proprietário, fez com que uma implementação livre fosse criada para atender os anseios de uma comunidade de usuários. E deu certo, o Linux cresce muito mais que qualquer Unix hoje.
Talvez o mesmo possa acontecer com a Sun e a JVM. Não me parece interessante um modelo e especificação centralizado. Por exemplo, a Sun não implementou o Java3D para Linux, nem o JAI (entre as implementações atuais estão a BlackDown, que inclusive é livre). Mas o problema é que a JVM livre sempre está atrás da Sun, porque tem que “copiar” depois do lançamento. Isso é um problema sério, que poderia ser resolvido com uma implementação livre.

O Software Livre em si veio para resolver problemas, e não criá-los. Eu participo do projeto de SL na minha universidade, a UEMS, e apesar de estarmos no começo, nossas projeções são realmente muito boas. E é em nome do que eu conheço que faço tais afirmações.

R

“bruto”:
Quantos aos drivers, alguém consegue instalar perfeitamente os mesmos drivers em todas as versões do Windows? (tido aqui como um sistema livre desses problemas)

o unico problema q tive foi com o driver p/ fazer uploads p/ meu cel…mas eh pq ainda nao tem uma versao oficial p/ WinXP…de resto…no problem…

Windows = user friendly… :twisted: :twisted: 8) 8)

louds

Não é um exagero isso. É a grande verdade.

Linux é o SOO mais distante de padrões que qualquer outro SO no mercado.

Solaris, Tru64, AIX, HPUX são todos SOs certificados com unix98. FreeBSD, pelo visto, é compativel com unix95, apesar de ninguem ter certificado.

O linux não tem como passar nem no posix.3!!!

O windows não entra nessa historia já que ele segue o modelo “implementação é especificação”.

Quanto a módulos binarios de kernel no linux, é fato mais que conhecido que o kernel não garante qualquer forma de compatibilidade que não seja exclusivamente com a versão usada para compilá-lo.

E eu não falo com voz de estudo, eu trabalho com linux a mais de 3 anos e apenas estou relatando o dia-a-dia.

Não entendi. APIs para gerar binarios? Eu desconheço qualquer API no linux para isso. Um compilador não é uma API.

Criado 6 de outubro de 2004
Ultima resposta 20 de out. de 2004
Respostas 25
Participantes 15