Código aberto: significado, vantagens, exemplos e mais
Software de código aberto ou OSS para abreviar é um termo que define software de computador, que é oferecido junto com seu código-fonte. Tal pacote permite que os usuários leiam, modifiquem e redistribuam como desejarem.
A cultura OSS tem suas raízes nos primórdios da programação de computadores. Programadores compartilharam alegremente seus códigos e isso possibilitou aprender uns com os outros e evoluir seu conjunto de habilidades.
Outro objetivo de disponibilizar código de software é torná-lo melhor, pois qualquer pessoa com as habilidades certas é bem-vinda para modificá-lo e redistribuí-lo. Isso leva a um software melhor no final, que muitas vezes também é barato ou gratuito.
Este post analisa o software de código aberto em geral, incluindo os primeiros dias do movimento, suas conquistas e como ele impactou a indústria de engenharia de software.
A internet como todos a conhecemos é baseada principalmente em software de código aberto. Então, sem OSS, teríamos uma web totalmente diferente.
De servidores web como apache e Nginx para ambientes de script como PHP, JavaScript e Python. E mesmo servidores de banco de dados pesados como MySQL, os frutos do movimento de código aberto estão em toda parte na rede.
O software livre e de código aberto possibilitou que pequenos jogadores usassem ferramentas poderosas que antes eram reservadas para grandes corporações com bolsos profundos. Isso, por sua vez, ajudou a abrir a porta para desenvolvimentos ainda mais empolgantes.
O software de código aberto também ajudou os usuários a economizar cerca de US$ 60 bilhões por ano, de acordo com este relatório de 2008. Esses clientes satisfeitos incluem todos, desde indivíduos a pequenas empresas, empresas de internet, agências governamentais e até instituições financeiras.
A história do software de código aberto
Você pode rastrear o movimento do código aberto desde os primeiros dias da programação de computadores e da cultura hacker da década de 1970. À medida que os primeiros programadores compartilhavam seus trabalhos com colegas hackers por outras razões que não os interesses corporativos.
O primeiro grande movimento, entretanto, começou em 1983, quando Richard Stallman lançou o GNU Projeto. Ele também fundou a Free Software Foundation em 1985 para apoiar esse movimento crescente. Este movimento de Software Livre formou a espinha dorsal de tudo, desde Linux até MySQL e a maioria das outras tecnologias que impulsionam a web hoje.
A maioria dos programadores privados ou hackers, naquela época, se contentava em criar e distribuir software livre para quem se importasse. Eles também detestavam muitas corporações de software e sua ganância. Então, criar uma versão gratuita de qualquer software proprietário importante foi um truque legal.
Por essas razões, a maioria das corporações se distanciou do Movimento Software Livre aparentemente anticapitalista até fevereiro de 1998. Foi quando a Netscape lançou seu então popular navegador “Netscape Communicator” como software livre, dando origem ao mozilla.org e Firefox. Dois projetos que também ajudaram a moldar a história da Internet.
Muitas corporações não gostaram da abordagem da Free Software Foundation e do termo “software livre”. Muitos desses fornecedores de software até queriam liberar parte de seu software como programas gratuitos, enquanto mantinham outros como projetos proprietários, então tinha que haver uma alternativa.
A iniciativa de código aberto
Bruce Perens e Eric S. Raymond, o autor de “Catedral e o Bazar”, também fundaram a Open Source Initiative em 1998, inspirados pelo lançamento de seu código de navegador pela Netscape.
Esta iniciativa já dirige o código aberto.org website e foi fundamental na divulgação do termo “software de código aberto”, bem como na utilização de tais programas.
A Open Source Initiative é vista como uma organização mais politicamente correta. E assim, atraiu mais projetos, desenvolvedores e suporte corporativo ao longo dos anos. Eles variam de Linux a WordPress, Wikimedia, Mozilla e muitas outras grandes organizações.
O OSI usa uma definição de 10 pontos para determinar se qualquer pacote de software é de código aberto ou não. E esses pontos são os seguintes:
- Redistribuição gratuita – Não deve exigir royalties para venda.
- Código fonte – O programa deve incluir seu código-fonte.
- Trabalhos Derivados – Modificações e a distribuição das mesmas, devem ser permitidas
- A integridade do código-fonte do autor - Autoexplicativo
- Nenhuma discriminação contra pessoas ou grupos - Autoexplicativo
- Nenhuma discriminação contra campos de esforço - Autoexplicativo
- Uma licença não deve ser específica para um produto - Autoexplicativo
- Uma licença não deve restringir outro software - Autoexplicativo
- A licença deve ser neutra em termos de tecnologia - Autoexplicativo
Software livre versus código aberto
Dependendo de quem você perguntar, você pode obter definições diferentes para software de código aberto. Alguns dirão que significa software livre, enquanto outros se concentram nos méritos ou valor derivado do desenvolvimento de código aberto.
Tal como está, você pode ter um software de código aberto que não é gratuito, pois não é necessário pagamento. Assim como o software livre, que não é de código aberto.
O movimento de software livre da FSF, no entanto, foca na liberdade do usuário com o software. Isso é muitas vezes referido como “liberdade como na liberdade de expressão”, não como “cerveja grátis”. Isso deve permitir que qualquer pessoa interessada copie, modifique e distribua o software.
Em geral, você encontrará frequentemente o termo “FOSS” (Free & Open Source Software) sendo usado. Isso funciona como uma definição guarda-chuva para programas que atendem às quatro liberdades da FSF, e são elas:
- A liberdade de executar o programa como quiser e para qualquer finalidade.
- A liberdade de estudar como funciona e modificá-lo. Isso precisa de acesso ao código-fonte.
- A liberdade de redistribuir o software para quem você quiser.
- A liberdade de redistribuir sua versão modificada para outras pessoas.
Vantagens do software de código aberto
A abordagem de código aberto tem suas vantagens e desvantagens. Mas o primeiro provou superar o último ao longo dos anos, levando mais pessoas, organizações e governos a se juntarem ao movimento.
Aqui estão algumas das principais vantagens do software de código aberto:
- Mais olhos estudando e modificando o código levam a um software de melhor qualidade no final
- Mais testadores encontram e relatam mais bugs
- O código aberto oferece um ótimo recurso de aprendizado para novos programadores
- Melhor segurança no longo prazo, à medida que todos se unem para resolver problemas
- Software de código aberto mantido ativamente apresenta menos bugs
- Permite a continuidade dos projetos, mesmo após a aposentadoria do autor original
- O código aberto combate o monopólio e outros comportamentos antiéticos de fornecedores de software
As desvantagens do software de código aberto
O software de código aberto também tem algumas desvantagens, como:
- Pode ser difícil obter suporte de nível comercial
- Ser de código aberto potencialmente cria vulnerabilidades de segurança, pois os hackers também estudam o código
- Problemas de compatibilidade de hardware com sistemas não suportados
- Pacotes com manutenção menos frequente geralmente apresentam bugs e desafios de segurança
Software de código aberto vs software proprietário
- Menor ou nenhum custo – A maioria dos programas de código aberto são gratuitos ou têm preços muito justos. Isso torna possível para uma ampla gama de pessoas e empresas a pagar.
- Freedom – O software de código aberto oferece mais possibilidades de personalização, mais opções de privacidade e, em geral, mais liberdade para fazer o que você gosta.
- Segurança – Muitas vezes você encontrará backdoors intencionais em software proprietário, o que geralmente resulta em brechas de segurança. O software de código aberto é facilmente examinado e todos os problemas de segurança são erradicados.
- Melhor Eficiência – O software de código aberto geralmente é projetado para seus usuários e sem fins lucrativos, como é o caso do software proprietário. Isso o torna mais eficiente em termos de valor criado.
- Comece pequeno – Muitas empresas podem começar pequenas usando software de código aberto gratuito. Em seguida, eles podem atualizar para versões corporativas quando estiverem prontos.
Projetos de código aberto notáveis
A lista de projetos de código aberto é vasta, com mais e mais sendo desenvolvidos e lançados. Aqui, no entanto, está uma lista de alguns notáveis.
- Linux – O SO de código aberto mais popular do mundo.
- LibreOffice - Produtividade suíte, bifurcada do OpenOffice. Inclui planilha, gravador e gerenciamento de banco de dados.
- Mozilla Firefox – Navegador popular e seguro que respeita sua privacidade.
- OS Android – SO móvel baseado em Linux que conquistou o mundo.
- Joomla e Drupal - Sistemas de gerenciamento de conteúdo
- WordPress – CMS mais popular e Blogging plataforma
- PHP – Linguagem de script do lado do servidor
- Apache HTTP Server – O servidor web mais popular da Internet
- Asterix – PBX de código aberto e VoIP plataforma
- Lula – Plataforma escalável de cache, DNS e proxy da web
- CloudStack e OpenStack – Plataformas para criar e gerenciar nuvens de computadores
Licenças de software de código aberto
Muitas organizações criaram licenças diferentes que incorporam a filosofia de código aberto. A maioria dos projetos também usa essas licenças, em vez de criar uma totalmente nova.
Você pode ler mais sobre essas licenças aqui. Os mais populares são:
- A GNU General Public License (GPL)
- MIT License
- Licença Apache
- Licença BSD
- Licença Pública Mozilla
Adoção do governo
Muitos governos e agências governamentais em todo o mundo adotaram software de código aberto de uma forma ou de outra ao longo dos anos. Para alguns, como a cidade bávara de Munique, na Alemanha, significa economia de custos na casa dos milhões de euros. Enquanto segurança, propaganda e integridade cultural são mais importantes para os outros.
Aqui está uma lista de adoções notáveis em todo o mundo:
- China – O Ubuntu Kylin é uma co-criação da Canonical e do governo chinês, projetado para usuários chineses e suas forças armadas.
- Rússia – O Astra Linux foi desenvolvido para atender às necessidades do exército russo, incluindo recursos de gerenciamento de dados “Top Secret”. É usado pela Gazprom, Russian Railways e em usinas nucleares russas e chinesas.
- Holanda – A Rede de Pesquisa e Investigação da Internet da Polícia Holandesa opera 2,200 estações de trabalho Ubuntu e usa apenas FOSS desde 2013.
- Roménia – As bibliotecas públicas do país funcionam em IOSSPL (Integrated Open Source System for Public Libraries).
- Estados Unidos – A Casa Branca dos EUA mudou seu site para servidores Linux em 2009. Também é mantido usando Drupal. Além disso, uma política de 2016 exige uma política de software de código aberto de 20% para projetos governamentais.
- França – A força nacional da Gendarmerie francesa mudou para o OpenOffice em 2005 e continuou suas atividades de migração com o GendBuntu Linux, influenciando outras agências governamentais ao longo do caminho.
- Alemanha – A cidade de Munique iniciou sua conversão de 15,000 máquinas para o LiMux baseado em Debian em 2013. O Schwäbisch Hall também migrou 400 estações em 2002 e o escritório federal de empregos roda o openSUSE Linux.
- Brasil – As agências estaduais e federais brasileiras funcionam principalmente em software de código aberto.
- Itália – Os militares italianos iniciaram uma transição de mais de 6,000 máquinas para o LibreOffice em 2015.
- Peru – O governo peruano votou em 2005 para adotar totalmente o software de código aberto.
Conclusão
É fácil ver até que ponto os movimentos de software livre e de código aberto chegaram e o quanto eles enriqueceram nossas vidas.
Ainda assim, isso pode ser apenas o começo. À medida que mais rupturas de mercado podem estar a caminho, alimentadas de uma forma ou de outra, por software livre ou de código aberto.