Comercializar um software feito em Java - quais os cuidados a serem tomados no desenvolvimento?

Olá amigos, tudo bem?

Essa é minha primeira postagem no Fórum. Já faz alguns meses que estou aprendendo Java (vim do Visual Basic 6 e Access/MySql) e estou gostando muito, apesar da luta inicial de entender e se adaptar à programação OO.

Agora que já estou começando a caminhar melhor com as próprias pernas, surgiu uma dúvida que há alguns dias não consigo sanar direito. Vejamos. Suponhamos que eu tenha uma empresa de software, onde eu desenvolvi um programa todo em Java. Então eu quero vender esse software para uma empresa qualquer. Sabemos que Java é free, bem como alguns banco de dados como MySql ou Firebird. Todavia, lendo esses dias sobre gerenciadores de layout, me deparei com a informação de que alguns deles não permitem que você comercialize um software que tenha usado aquele gerenciador. Então fiquei preocupado: geralmente usamos muitos componentes em nossos softwares, por exemplo, gerenciadores de layout, frameworks, IDE, look and feels, imagens para icones, etc.

Pesquisando sobre GPL e LGPL tanto aqui no fórum quanto no site FAQ do Gnu.org, não consegui encontrar resposta para as questões abaixo:

  1. Que cuidado devo ter ao fazer um programa em Java que eu vou comercializar? Por exemplo, a gente tá acostumado a usar Swing, AWT, etc. Mas podemos mesmo usá-los para fazer um programa que será comercializado depois?

  2. Posso vender programas que tenham usado as licenças LGPL ou GPL? Sou obrigado a disponibilizar junto os fontes?

Por enquanto são apenas essas questões. É que fiquei assustado quando fiquei sabendo do uso restrito de gerenciadores de layout: você vai usando, vai aprendendo a manipulá-los em livros, etc, e ninguém fala que não pode usar se for pra uso comercial. Se isso ocorre até com gerenciadores de layout básicos, fiquei pensando, deve ocorrer também com outras zilhões de ferramentas que usamos na programação todo dia e nem sequer damos conta disso. Migrei pra Java justamente pra não ter esse tipo de dor de cabeça e eis o que encontrei!

Um abraço, fiquem com Deus,
Gabriel.

Pessoal, pesquisando agora sobre o assunto, eis que achei um link muito interessante e que aborda o tema. Acho que servirá de ajuda para todos. Ei-lo: http://www.gnu.org/philosophy/java-trap.html

Vejamos alguns trechos.

[quote]But the major source of this problem today is Java, because people who write free software often feel Java is sexy. Blinded by their attraction to the language, they overlook the issue of dependencies and fall into the Java Trap.

Sun’s implementation of Java is nonfree. The standard Java libraries are nonfree also. We do have free implementations of Java, such as the GNU Compiler for Java (GCJ) and GNU Classpath, but they don’t support all the features yet.[/quote]

Traduzindo:

[quote]Mas a maior fonte desse problema hoje é o Java, porque as pessoas que escrevem software livre frequentemente acham Java atraente. Cegos por sua atração pela linguagem, eles ignoram a questão das dependências (todo software depende de outros) e caem na armadilha-Java.

A implementação do Java da Sun não é livre. As suas bibliotecas padrões também não são. Sim, nós temos implentações Free em Java, como as GCJ e GNU Classpath, mas elas ainda não suportam todos os recursos.[/quote]

Isso me preocupa ainda mais. Vejamos o trecho a seguir:

Traduzindo:

Gente, acho isso sério, porque depois de passar vários meses lendo tutorais, livros (inclusive Deitel Como Programar e Use a Cabeça, Java!), só agora fico sabendo disso.

Vou continuar pesquisando sobre o assunto e qualquer novidade volto a postar. Recomendo, contudo, que vocês leiam o link do Java Trap que passei acima na íntegra, tem muita coisa boa.

Abraços, fiquem com Deus,
Gabriel.

cara, muito estranho isso.
Se você pesquisar aqui no forum notará que isso já foi discutido diversas vezes.
Você pode sim comercializar seus projetos java sem problema…

Na verdade eu até ignoro o que o pessoal da free software foundation fala(sry pessoal), eles são muito paranóicos e pirados(uhahuahuauh), principalmente o Stalmann(fundador) esse é pirado MESMO, apesar de suas contribuições.

É que tipo, pro Stalmann todo mundo é livre pra escolher que quer, desde que essa escolha seja a escolha dele.
Olha essa bizarrice:
http://meiobit.com/forum/internet-e-redes/geral/a-liberdade-segundo-stallman

A então, a fsl estava falando sobre o source do java, não sobre softwares escritos em java.

http://www.fsf.org/news/fsf-welcomes-gpl-java.html

Acessando o link acima (da própria Free Software Foundation), vi que, pelo menos em 2006, o quadro que o texto que citei acima pintou parecia estar mudando. Alguém melhor informado poderia nos explicar se o “compromisso publico” feito pela Sun de fato tem se cumprido desde então.

Um abraço, fiquem com Deus,
Gabriel.

De boa, eu ignoro a fsf, é muito xiitismo e hipocrisia.

Entendo. E quanto às questões da minha primeira postagem?

Bom dia,

Isso já foi discutido aqui no forum.

Não há nenhum problema com o uso (comercial ou não) das plataformas JAVA (JavaEE , JavaME, JavaSE).

http://www.gnu.org/philosophy/java-trap.html
Este articulo e de antes 2006 : April 12, 2004
Headnote :
Thus, the Java language is no longer a trap.
Assim, a linguagem Java não é mais uma armadilha.

13 Nov 2006 ; Sun Open Sources Java Platform and Releases Source Code Under GPL License Via NetBeans and Java.net Communities …
http://technology.findlaw.com/articles/01135/010405.html

Existiu uma controvérsia quando ORACLE “comeu” a SUN, e em torno do G1 (Garbage First), mas ja foi resolvido.

Richard Stalman que eu tive o privilégio de encontrar 3 vezes, disse que ele não era Karl Marx. Ele não é contra o capitalismo.
Richard Stallman’s Personal Home Page : http://stallman.org/

Best regards

Gabriel, você está confundindo um pouco as coisas. Embora eu não conheça a fundo o assunto, já que sou mais da área técnica que comercial, te passo as experiências que tenho em relação a isso, pois quando a empresa lança um produto eu que avalio o que usar conforme necessidades e as licenças.

Na verdade o Java é opensource, e isso é fato. Porém há alguns componentes que ainda não são livres, por exemplo, o codec da Sun para gerar Base64. Porém a própria Sun indica que você use o commons-codec da Apache, que é licenciado pela Apache Licence.

A briga da FSF com a Sun é porque nem tudo do Java ainda é opensource. Ainda há alguns componentes proprietários, que estão nos pacotes sun.* e sunw.*. Na verdade isso não significa que você não pode comercializar seu software com isso. O que a FSF quer é que a Sun libere os fontes, porém a Sun não liberou o fonte de alguns componentes. Para a FSF mesmo que um software seja gratuito e haja um acordo formal de nunca cobrar por isso, se não for opensource a FSF não aprova.

Mas voltando as licenças, eu tenho hoje alguns projetos que vendo comercialmente. Sempre que vou usar algum componente eu leio a licença do mesmo e se for compatível com a licença comercial dos meus projetos eu uso. Você deve notar também que alguns componentes usam dupla licença, nesse caso se você fazer um software comercial a licença é outra e normalmente exige que você pague royalties para o desenvolvedor. As licenças que uso nos meus projetos comerciais são MIT e Apache, pois você pode empacotar tudo no seu projeto e não precisa sequer anunciar que você está usando.

Abraços

Bom dia,

Na verdade, existem muitas plataformas e componentes em JAVA (JavaCard, JavaEE, JavaME, JavaSE, Java-Processor(Jazilla), ANDROID (Dalvik)...).

Então é um pouco mais complicado do que dizer que Java é Livre ou Open Source.

garcia-jj : {… Ainda há alguns componentes proprietários, que estão nos pacotes sun.* e sunw.*. …}

Quais exatamente? Java sound API foi re-escrito

Open JDK é totalment libre e aberto.
Fonte : http://www.sun.com/software/opensource/java/faq.jsp

//-------------------- Free Software Foundation : http://www.fsf.org/ -------------------------------

Richard Stallman, ele distingue:
software privador de liberdades (Proprietary) do software livre(Free) e software open source(OpenSource)

Não se deve misturare tudo: software livre(Free) e software open source(OpenSource) não é a mesma coisa !!

A primeira coisa a compreender é o papel do software em nossas vidas de todos os dias, e na sociedade em geral.

software livre(Free) : Pode ser resumido em três palavras: liberdade, igualdade, fraternidade

Liberdade : 4 liberdades: para usar e modificar software
Igualdade : não há um ser humano(desenvolvedor) acima dos outros
Fraternidade : Cada desenvolvedor tem a oportunidade de compartilhar e colaborar com os outros

//---------------------------------------------------------------------------

Informação sobre o licenciamento do Java EE.

GlassFish é a implementação de referencia de Java EE 6 :

The majority of GlassFish v3 code is available under a Dual License consisting of the Common Development and Distribution License (CDDL) v1.0 and GNU Public License (GPL) v2 for both the source and binary forms.

http://wiki.java.net/bin/view/Projects/GlassFishCodeDependencies

Observe alguns módulos têm uma licença Apache outros CDDL + GPLv2.

Por exemplo JXTA.jar (licença Apache) e shoal-gms.jar (GPLv2 + CDDL)

//-------------------------------------------------------------------------------------

Data : 13 Nov 2006

  • Java SE, Java ME e Java EE estão agora disponíveis sob a licença GPLv2

  • Sun acrescentou uma exceção Classpath, como a licença permite, que qualquer pessoa para executar programas em Java sob a licença da sua escolha

  • Eles também continuarão a estar disponíveis na licença de negócio atual

  • Glassfish é licenciado GPLv2 e CDDL

  • Estão agora disponíveis em código aberto:

  • Tecnologia HotSpot,
  • O compilador Java,
  • Utilitário e JavaHelp
  • Sun JDK espera fornecer uma “Edificabilidade” para o 1 º trimestre 2007
  • O projeto é chamado OpenJDK
  • Haverá, necessariamente, passar o TCK para usar o nome Java
  • O TCK é licenciado Open Source
  • A JCP está no lugar. E continuam a ser usada para adicionar funcionalidade para plataformas Java
  • Ele vai assinar um Acordo de Contribuição Sun, se você quiser que o código a ser integrado no JDK / JRE
  • O código fonte será primeiro disponível através do Subversion ler mais tarde através Mercurial
  • O código fonte está disponível como projetos do NetBeans.
  • 2 endereços:
    http://sun.com/opensource/java
    http://openjdk.java.net/

Abraços

JxtaNode, não lembro todas de cabeça, pois não costumo a me preocupar com isso. Os pacutes java e javax são todos opensource. Os pacotes sun e sunw são todos de propriedade da Sun e não possuem licenciamento igual ao do Java. Se você ler a licença de uso das APIs proprietárias da Sun verá isso. Aliás, vocẽ tem o código fonte de alguma API da Sun que esteja nos pacotes sun ou sunw?

Completando, os pacotes sun e sunw possuem licença que permite você usar, porém você não pode modificar e redistribuir, ao contrário da licença dos pacotes java e javax.