Olá, como você está? Pokemaobr aqui novamente. Hoje, traremos um tema que é bem interessante de falarmos e importante para que as pessoas Devs entendam. Iremos falar sobre alguns tipos de código: código aberto, código fechado, software livre, software proprietário, freeware e algumas de suas respectivas licenças.

É comum a gente pegar alguns códigos (bibliotecas, snippets, frameworks), principalmente no github e colocar nos nossos projetos. Porém, você sabia que dependendo do tipo de licença desses códigos você não pode comercializar um software que tenha eles como dependência? É o que vamos ver no artigo de hoje.

Vamos começar entendendo um pouco sobre os principais tipos e softwares, códigos e suas licenças:

Navegue pelo índice

    O que é um software com código aberto (open source)?

    Primeiramente, é interessante a gente entender o conceito de open source. Um software open source (código aberto) é aquele pelo qual não é necessário pagar para ter acesso ao código fonte, além do seu código ser de fácil acesso.

    Você pode usar o código fonte, modificar e na maioria dos casos distribuir essa modificação do código fonte, respeitando as licenças de software atribuídas ao software.

    Mesmo tendo o código fonte de fácil acesso, nem todo software open source é gratuito. Ou seja, ter acesso ao código fonte não quer dizer que você possa distribuir o código fonte de qualquer maneira. Em alguns casos, você poderá pagar pelo uso do software ou pagar pela distribuição do código fonte. Iremos entender melhor sobre isso quando falarmos das licenças de software.

    As vantagens de se ter um código open source (código aberto) é que a comunidade de Devs pode auxiliar e muito na detecção de bugs, na melhoria da tecnologia utilizada, na adaptação do projeto à necessidade de mais pessoas, entre outras coisas.

    O que é um software com código fechado (closed source)?

    Ao contrário de um software open source (código aberto), um software closed source (código fechado) é aquele que o acesso, utilização, modificação ou redistribuição do código fonte, em quaisquer casos, são proibidos por quem tem os direitos sobre o código. Ou seja, você deverá ter a permissão de quem criou para poder utilizar o código fonte para quaisquer fins.

    Ultimamente, temos visto bem menos softwares com código fechado. Porém, algumas empresas e pessoas ainda utilizam desse tipo de desenvolvimento tendo em vista que algumas regras de negócio não deveriam ser expostas para uma grande quantidade de pessoas.

    O que é um software livre (free software)?

    De acordo com a página do gnu em português “Por “software livre” devemos entender aquele software que respeita a liberdade e senso de comunidade dos usuários. Isso significa que os usuários possuem a liberdade de executar, copiar, distribuir, estudar, mudar e melhorar o software.

    Assim sendo, “software livre” é uma questão de liberdade, não de preço. Você pode ter pago dinheiro por suas cópias de software livre, ou você pode tê-las obtido a custo zero, mas independentemente de como você conseguiu suas cópias, você sempre deve ter a liberdade para copiar e mudar o software, ou mesmo para vender cópias.

    O que é um software proprietário?

    Do mesmo modo que no software closed source para você acessar, utilizar, modificar ou redistribuir o código fonte você deverá ter permissão de quem tem os direitos sobre o código. No software proprietário o acesso, utilização, modificação ou redistribuição só poderá ser realizado caso você tenha permissão para tal. Ou seja, você deverá ter a licença do produto.

    O que é um software freeware?

    Um software freeware é um programa, onde, mesmo que você não tenha acesso ao código fonte ou que o software seja protegido por algum tipo de direitos autorais, está disponível para utilização sem nenhum custo. Você pode baixar, instalar e utilizar sem precisar pagar nada.

    Existem softwares onde as principais funcionalidades são gratuitas, porém, existem funcionalidades extras que são pagas. A esse modelo de utilização chamamos freemium. Onde temos a funcionalidade free e as demais premium.

    Mas, embora a maioria dos softwares open source sejam freeware, nem todos são e também é bom salientar que não é porque o software é freeware que ele é open source.

    código aberto código fechado tipos de licenças

    Quais são as licenças de softwares livres e código aberto?

    As licenças de código aberto concedem permissão para qualquer pessoa usar, modificar e compartilhar software licenciado para qualquer finalidade, sujeito às condições que cada uma delas traz.

    Como disse acima, o que varia na utilização de softwares livres e/ou open source é o tipo de licença. Agora que sabemos um pouco sobre esses tipos de software, vamos verificar a diferença entre algumas licenças de software livre / open source.

    Confia abaixo os tipos de licença de software livre e código aberto, na ordem de menos permissiva para a mais permissiva:

    1) GNU AGPLv3

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso de patente
    • Uso privado

    Condições

    • Divulgar fonte
    • Licença e aviso de direitos autorais
    • Distribuição para usuários da rede
    • Mesma licença
    • Mudanças na licença deverão ser documentadas

    Limitações

    • Responsabilidade
    • Garantia

    2) GNU GPLv3

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso de patente
    • Uso privado

    Condições

    • Divulgar fonte
    • Licença e aviso de direitos autorais
    • Mesma licença
    • Mudanças na licença deverão ser documentadas

    Limitações

    • Responsabilidade
    • Garantia

    3) GNU LGPLv3

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso de patente
    • Uso privado

    Condições

    • Divulgar fonte
    • Licença e aviso de direitos autorais
    • Mesma licença (biblioteca)
    • Mudanças na licença deverão ser documentadas

    Limitações

    • Responsabilidade
    • Garantia

    4) Mozilla Public License 2.0

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso de patente
    • Uso privado

    Condições

    • Divulgar fonte
    • Licença e aviso de direitos autorais
    • Mesma licença (arquivo)

    Limitações

    • Responsabilidade
    • Uso da marca registrada
    • Garantia

    5) Apache License 2.0

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso de patente
    • Uso privado

    Condições

    • Licença e aviso de direitos autorais
    • Mudanças na licença deverão ser documentadas

    Limitações

    • Responsabilidade
    • Uso da marca registrada
    • Garantia

    6) MIT License

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso privado

    Condições

    • Licença e aviso de direitos autorais

    Limitações

    • Responsabilidade
    • Garantia

    7) Boost Software License 1.0

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso privado

    Condições

    • Licença e aviso de direitos autorais

    Limitações

    • Responsabilidade
    • Garantia

    8) Sem Licença

    Permissões

    • Uso comercial
    • Distribuição
    • Modificação
    • Uso privado

    Limitações

    • Responsabilidade
    • Garantia

    Para você entender melhor sobre as licenças de softwares acima, bom como ver cada licença completa você poderá ir direto no site da Choose a Licence.

    Bem, desejo que você tenha entendido um pouco de cada conceito que permeia os softwares livres e de código aberto. Quaisquer dúvidas, pode colocar aqui nos comentários ou me enviar um e-mail no contato@pokemaobr.dev.

    Abraços e até a próxima!

    Com a VPS Locaweb o seu projeto tem a garantia da melhor performance!

    CONFIRA
    O autor

    Rodrigo Cardoso (Pokemaobr)

    Conhecido como Poke, é Streamer (Live "Coder") na Twitch, Web Developer e apresentador do talk show "The Velopers". Com bacharelado em Matemática e MBA em SOA, Poke atua como desenvolvedor e organizador de eventos de TI. É evangelista PHPSP e criador do PokePHP, focando em disseminar conteúdos técnicos e humor para a comunidade de desenvolvedores. Nas horas vagas, ele adora se conectar com a comunidade e compartilhar seu conhecimento de maneira divertida e informativa.

    Veja outros conteúdos desse autor