O software de código aberto é desenvolvido e mantido por meio de colaboração aberta. Ele está disponível para que qualquer pessoa possa usar, examinar, alterar e redistribuir como quiser, geralmente sem custo.
O código aberto contrasta com as aplicações de software proprietário ou de código fechado, como Microsoft Word ou Adobe Illustrator, por exemplo. O criador ou detentor dos direitos autorais vende o software proprietário ou de código fechado para usuários finais, que não têm permissão para editar, aprimorar ou redistribuir o produto, exceto conforme especificado pelo detentor dos direitos autorais.
O termo "código aberto" também se refere, de forma mais geral, a uma abordagem baseada na comunidade para criar qualquer tipo de propriedade intelectual, como software, por meio de colaboração aberta, inclusão, transparência e atualizações públicas frequentes.
Saiba mais sobre os principais problemas enfrentados pelos clientes que a IA pode resolver, quais recursos estão disponíveis hoje e como o IBM Z é a plataforma ideal para IA.
Cadastre-se para o relatório de analistas sobre segurança quântica.
Até meados da década de 1970, o código de computador era visto como algo implícito ao funcionamento do hardware, e não como propriedade intelectual única, sujeita à proteção por direitos autorais. As organizações programavam seus próprios softwares e a troca de códigos era uma prática comum.
A Comissão de novos usos tecnológicos de obras protegidas por direitos autorais foi estabelecida em 1974 e concluiu que o código de software era uma categoria de trabalho criativo adequado para proteção por direitos autorais. Isso impulsionou o crescimento da publicação de software independente como um setor, com o código-fonte proprietário como a principal fonte de receita. À medida que a computação pessoal trouxe aplicações para os escritórios e muitos lares, o mercado de software tornou-se intensamente competitivo e os editores de software tornaram-se cada vez mais atentos às violações de seus direitos de propriedade.
Uma espécie de rebelião contra as restrições e limitações do software proprietário começou em 1983. O programador Richard Stallman se incomodou com a noção de que os usuários não podiam personalizar o software proprietário da maneira que achassem adequado para realizar seu trabalho. Stallman acreditava que "o software deveria ser livre, como a liberdade de expressão", e defendia a ideia de que o software deveria estar livremente disponível para personalização.
Stallman fundou a Free Software Foundation e impulsionou o desenvolvimento de uma alternativa de código aberto ao sistema operacional Unix, de propriedade da AT&T, entre outras aplicações. Ele também inovou com a primeira licença de software copyleft, a GNU General Public License (GPL), que exigia que qualquer pessoa que aprimorasse seu código-fonte publicasse sua versão editada livremente para todos.
O ensaio de Eric S. Raymond, de 1997, intitulado "The Cathedral and the Bazaar" é visto como outro marco no movimento de software livre. Raymond comparou a abordagem fechada e top-down, típica do desenvolvimento de software proprietário, onde todo o desenvolvimento era conduzido por um grupo central (que ele chamou de "Catedral"), com o desenvolvimento aberto e livremente compartilhado pela internet ("Bazar"). Logo depois, a Netscape Corporation lançou o código do navegador Mozilla como código aberto, e o movimento ganhou legitimidade.
Como muitos acreditavam que o termo "software livre" de Stallman enfatizava inadequadamente o "gratuito" como o principal valor do software, o termo "código aberto" foi adotado em 1999. A Open Source Initiative foi criada para defendê-lo; a organização também estabeleceu regras básicas para o setor por meio da definição de código aberto e hospeda licenças de código aberto compatíveis. Hoje, os termos software livre, software de código aberto, software livre e de código aberto e software open source referem-se todos à mesma coisa: software com código-fonte disponível para uso público e personalização.
O software de código aberto agora desempenha um papel vital na computação, com tecnologias de código aberto fornecendo a base da internet, da computação empresarial e da computação pessoal. Praticamente todos os dispositivos de computação agora contêm código aberto de vários tipos, geralmente adotado por desenvolvedores para realizar operações fundamentais e, muitas vezes, funções mais avançadas.
Alguns dos softwares de código aberto mais prevalentes incluem:
O sistema operacional Linux®, uma alternativa de código aberto ao sistema operacional Unix
Mozilla Firefox, um navegador web originalmente baseado no Netscape Navigator
LibreOffice, um pacote de aplicativos de produtividade de escritório que rivaliza com o Microsoft Office
GIMP (GNU Image Manipulation Program), uma alternativa de código aberto ao Adobe Photoshop
VLC Media Player, um aplicativo multiplataforma para assistir vídeos
Programas de código aberto também são amplamente utilizados em redes, computação empresarial e computação em nuvem. As categorias de software de código aberto citadas por profissionais de TI como as mais comuns nas implementações de suas organizações incluem:
Linguagens de programação e frameworks
Bancos de dados e tecnologias de dados
Sistemas operacionais
Repositórios públicos baseados em Git
Frameworks para inteligência artificial, aprendizado de máquina ou deep learning
As razões para escolher software de código aberto podem variar significativamente de pessoa para pessoa e de organização para organização. Em muitos casos, os usuários finais desconhecem completamente quais são os programas de código aberto em seus computadores ou dispositivos móveis. Também é comum que os usuários baixem uma aplicação gratuita como o navegador Mozilla Firefox ou um aplicativo Android. Esses usuários querem apenas a funcionalidade do software, sem intenção de reescrever ou até mesmo olhar o código-fonte.
Uma empresa, por outro lado, pode escolher software de código aberto em vez de uma alternativa proprietária pelo baixo (ou nenhum) custo, pela flexibilidade para personalizar o código-fonte ou pela existência de uma grande comunidade que apoia a aplicação. Programadores profissionais ou amadores podem se voluntariar para projetos de código aberto, frequentemente para melhorar sua reputação e se conectar com outros na área. Hoje é comum que empresas ofereçam funcionários pagos para trabalhar em projetos de código aberto, apoiando a vitalidade do desenvolvimento de software de código aberto e ajudando a garantir produtos de alta qualidade.
Enquanto produtos de código aberto podem poupar as empresas dos custos de licenciamento, eles podem incorrer em outros custos, como para integração de rede, suporte ao usuário final e suporte de TI, além de outros serviços que normalmente acompanham o software proprietário. No entanto, muitas empresas consideram o software de código aberto empresarial tão confiável e seguro quanto o software proprietário e se sentem mais à vontade com as soluções de código aberto porque podem inspecionar o código do programa e entender exatamente o que estão adicionando à sua infraestrutura de TI.
O modelo de desenvolvimento open source cobre um espectro completo. Um grande número de programas de código aberto foi originado por programadores individuais ou pequenas equipes de programadores. Por exemplo, Guido van Rossum disse que começou a trabalhar na popular linguagem de programação Python porque tinha tempo livre durante o Natal em 1989. Da mesma forma, o servidor web Apache começou com um pequeno grupo de programadores trabalhando juntos para aprimorar o software de servidor originalmente escrito por Robert McCool, quando era estudante de graduação em um programa de supercomputação.
À medida que esses e outros projetos de código aberto como eles amadureceram, eles envolveram milhares de programadores que contribuíram com incontáveis linhas de código, testaram o software, escreveram documentação, construíram o site do projeto, entre outras atividades.
No outro extremo do espectro, a plataforma de orquestração de contêineres Kubernetes foi iniciada por engenheiros do Google, como uma implementação de código aberto de uma tecnologia originalmente criada internamente para equilibrar as cargas de trabalho dos servidores. O Google trouxe o projeto para a comunidade de código aberto por meio da criação de um novo consórcio dentro da Linux Foundation chamado Cloud Native Computing Foundation. Desde então, milhares de desenvolvedores trabalharam no kernel em evolução, incluindo representantes de grandes empresas de informática.
Com o tempo, um ecossistema se desenvolveu para apoiar projetos de software de código aberto. Serviços de hospedagem de código, como GitHub, Bitbucket, SourceForge e Google Code, fornecem repositórios centrais, controle de versão e outras funções que permitem que grupos de trabalho diversos e distribuídos colaborem e gerenciem projetos de código aberto. O GitHub sozinho já registrou 83 milhões de desenvolvedores e mais de 20 milhões de repositórios de projetos abertos, com cada repositório representando um ramo único de um projeto de código aberto.
Diversas organizações sem fins lucrativos surgiram para apoiar e financiar a manutenção contínua de projetos de código aberto, como a Free Software Foundation e a Open Source Initiative. E existem muitas fundações específicas de aplicativos, como a Linux Foundation, que apoiam programas de código aberto específicos e projetos relacionados que sustentam essas tecnologias.
"Código aberto" e "proprietário" representam abordagens alternativas à propriedade intelectual incorporada em uma aplicação. Com o código aberto, a propriedade intelectual é destinada a beneficiar o público sem uma motivação de lucro associada. Em contraste, o software proprietário monetiza o valor da propriedade intelectual cobrando uma assinatura ou taxa de licença proprietária.
A ideia por trás do software de código aberto, no entanto, não é, em sua essência, uma mensagem contrária ao lucro ou anticapitalista, mas sim que, nas mãos de sua comunidade de usuários, o software atingirá naturalmente seu maior potencial ao fornecer mais valor para um maior número de usuários. O internet foi o maior projeto de código aberto da história, e, originalmente, foi usada para compartilhar artigos acadêmicos; tudo além desse caso de uso restrito é resultado de inúmeras mentes imaginando e implementando novas possibilidades.
Embora o software de código aberto seja disponibilizado gratuitamente ao público, ele não está em domínio público, uma categoria legal de propriedade intelectual desprovida de quaisquer direitos de propriedade. Por meio de uma reviravolta engenhosa no direito autoral tradicional, os criadores de software de código aberto originaram o que chamaram de "copyleft", que permite o uso público, alteração e redistribuição ilimitada do código-fonte, mas impede que outros transformem obras baseadas no código em software proprietário e protegido por direitos autorais. No entanto, hoje existem mais de 100 tipos diferentes de licenças de software de código aberto, algumas das quais permitem que obras derivadas baseadas no código aberto sejam protegidas por direitos autorais e vendidas. Isso expande as oportunidades comerciais para quem cria software de código aberto.
A GPL de Stallman estipulava que qualquer pessoa poderia reescrever seu software da maneira que quisesse, desde que o código resultante fosse publicado gratuitamente para todos usarem. Dessa forma, a licença copyleft da GPL criou uma nova forma de propriedade intelectual quase de domínio público, mas com restrições legalmente aplicáveis impostas pelo titular original dos direitos autorais, para proteger contra reivindicações posteriores de propriedade restritiva por parte de outros.
Desde então, diversas licenças de software de código aberto foram desenvolvidas; a Open Source Initiative lista mais de 100 licenças de código aberto aprovadas. Algumas dessas licenças permitem que produtos proprietários sejam criados a partir de código aberto.
As licenças de código aberto às vezes são categorizadas como "permissivas", ou seja, permitindo que os usuários protejam seus próprios trabalhos por direitos autorais, ou "protetoras", como o copyleft. As licenças de código aberto MIT e BSD são as permissivas mais comumente usadas, enquanto a GPL continua sendo uma das licenças copyleft protetivas mais comuns. Diversas licenças alternativas são compatíveis com a GPL ou MIT, o que significa que o código-fonte escrito sob essa licença pode ser usado em outra aplicação que use a licença GPL ou MIT.
Embora pareça que a criação de software de código aberto seja um empreendimento até mesmo beneficente, há trabalho envolvido na criação, na manutenção e na evolução desse software, e realizar esse trabalho envolve dinheiro. Felizmente, existem várias maneiras pelas quais projetos de código aberto (e empresas construídas ao redor deles) podem prosperar.
Um caminho é por meio de doações para fundações. As corporações têm interesse em apoiar o software de código aberto, pois ele oferece uma funcionalidade significativa com grandes economias de custo. Elas frequentemente contribuem com fundos e até dedicam funcionários assalariados para trabalhar em projetos de código aberto. No entanto, isso atende principalmente à manutenção de longo prazo da tecnologia e não gera lucros para o projeto de código aberto.
Um modelo de negócios mais comum é cobrar dos clientes por suporte e experiência. Em 1993, a Red Hat® começou a vender sua redistribuição empresarial do sistema operacional Linux, cobrando dos clientes por suporte e recursos adicionais voltados especificamente para resolver problemas que uma empresa pode encontrar ao implementar um sistema operacional não selecionado e continuamente atualizado. Em 2012, a Red Hat se tornou a primeira empresa de software de código aberto a superar 1 bilhão de dólares em receita; em 2019, a IBM Corporation adquiriu a Red Hat por 34 bilhões de dólares, a maior aquisição de software da história.
O WordPress, originalmente uma plataforma de blogs, agora é amplamente utilizado para construir, gerenciar e hospedar sites. O WordPress opera como uma plataforma em nuvem ou software como serviço, e cobra dos clientes taxas de assinatura escalonadas para hospedagem na web, suporte e funcionalidades adicionais para sites (por exemplo, capacidade de e-commerce ou ferramentas de SEO).
Outros criadores de software de código aberto não cobram nada por seu software, mas geram receitas significativas devido ao tráfego que seu software gera. Por exemplo, o GitHub gera receitas com base nos anúncios que aparecem em seu site; o Mozilla Firefox gera receitas a partir dos motores de busca que ele suporta.
As soluções da IBM e Red Hat podem aumentar a produtividade, reduzir custos e melhorar os resultados empresariais.
O LinuxONE é um servidor Linux de nível empresarial que une a experiência da IBM na construção de sistemas empresariais com a abertura do sistema operacional Linux.
O sistema operacional Linux na plataforma de mainframe IBM Z oferece privacidade de dados e segurança cibernética em uma multinuvem híbrida.
Com o Enterprise Linux no IBM Power, você pode ampliar os benefícios da tecnologia de código aberto, como confiabilidade, segurança e escalabilidade, com as opções de implementação nativa em nuvem líderes do setor.
De blockchain a contêineres, passando por IA e sistemas operacionais, nossos desenvolvedores estão criando projetos emergentes de código aberto e cercando-os com código, documentação e materiais de suporte.
Melhorar sua cadeia de fornecimento de software pode minimizar significativamente o risco de ser comprometido.
Desenvolvedores, arquitetos e administradores de sistemas escolhem produtos baseados em código aberto como o IBM watsonx para representar suas necessidades em comunidades estratégicas de código aberto. Descubra as principais tecnologias de código aberto que tornam a plataforma de IA da IBM uma solução de alto desempenho nativa da nuvem.