Nota: Open Source te direciona para este artigo. Se procura o álbum musical do guitarristaKiko Loureiro, vejaOpen Source (álbum).
Ilustração do termo Open-Source
Código aberto (do inglêsOpen Source) é ocódigo-fonte que é disponibilizado gratuitamente para consulta, examinação, modificação e redistribuição.[1] Os produtos incluem permissão para usar ocódigo-fonte,[2] documentos de design ou conteúdo do produto. O modelo de código aberto é um modelo de desenvolvimento de software descentralizado que incentiva a colaboração aberta.[3][4] Um princípio importante dodesenvolvimento de software de código aberto é aprodução por pares (do inglêspair production), com produtos comocódigo-fonte, projetos edocumentação disponíveis gratuitamente ao público. O movimento decódigo aberto no software começou como uma resposta às limitações docódigo proprietário. O modelo é usado em projetos detecnologia apropriada[5] e na descoberta e pesquisa de medicamentos.[6][7]
O termo "código aberto" foi popularizado pelaOpen Source Initiative (OSI),[8] que difere de umsoftware livre por não seguir as quatro liberdades definidas pela Fundação de Programas Livres (do inglês:Free Software Foundation - FSF),[9] que eram também compartilhadas pelo projetoDebian. Qualquerlicença de software livre é também uma licença de código aberto (open source), mas o contrário não é necessariamente verdade.[9]
Enquanto a FSF usa o termo "Software Livre" envolta de um discurso baseado em questões éticas, direitos e liberdade, a OSI usa o termo "Código Aberto" sob um ponto de vista puramente técnico, evitando (propositadamente) questões éticas. Esta nomenclatura e este discurso foram cunhados por Eric Raymond e outros fundadores da OSI com o objetivo de apresentar osoftware livre a empresas de uma forma mais comercial evitando o discurso ético.
O compartilhamento de informações técnicas é muito anterior àInternet e aocomputador pessoal. Por exemplo, nos primeiros anos do desenvolvimento doautomóvel, um grupo demonopolistas de capital possuía os direitos de umapatente demotor a gasolina de 2 tempos originalmente depositada porGeorge B. Selden.[10] Ao controlar essapatente, eles foram capazes de monopolizar a indústria e forçar os fabricantes de automóveis a cumprir suas exigências, ou arriscar umaação judicial.
Em 1911, a montadora independenteHenry Ford venceu um desafio à patente de Selden. O resultado foi que a patente de Selden se tornou virtualmente inútil e uma nova associação (que eventualmente se tornaria aAssociação de Fabricantes de Veículos Automotores) foi formada.[10] A nova associação instituiu um acordo de licenciamento cruzado entre todos os fabricantes automotivos dos EUA: embora cada empresa desenvolvesse tecnologia e registrasse patentes, essas patentes eram compartilhadas abertamente e sem troca de dinheiro entre todos os fabricantes.[10] Quando osEUA entraram naSegunda Guerra Mundial, 92 patentes daFord e 515 patentes de outras empresas estavam sendo compartilhadas entre esses fabricantes, sem qualquer troca de dinheiro (ou ações judiciais).[10]
O compartilhamento de código-fonte na Internet começou quando a Internet era relativamente primitiva, com software distribuído viaUUCP,Usenet,IRC eGopher. OBSD, por exemplo, foi primeiramente distribuído amplamente por postagens no comp.os.linux na Usenet, que também é onde seu desenvolvimento foi discutido.Linux seguiu neste modelo.
Como a diferença entre o movimento "Software Livre" e modelo "Código Aberto" está apenas na argumentação em prol dos mesmossoftwares, é comum que esses grupos se unam em diversas situações ou que sejam citados de uma forma agregadora através da sigla"FLOSS" (Free/Libre and Open Source Software).
Os defensores do modelo Open Source sustentam que não se trata de algoanticapitalista ouanarquista, mas de uma alternativa ao modelo de negócio para a indústria desoftware. O modelo colaborativo de produção intelectual oferece um novoparadigma para odireito autoral. Algumas grandes empresas comoIBM,HP,Intel eDell também têm investido nosoftware de código aberto, juntando esforços para a criação doOpen Source Development Lab (OSDL), instituição destinada à criação de tecnologias decódigo aberto.
A definição do Open Source foi criada pela Open Source Iniciative (OSI) a partir do texto original dasDebian Free Software Guidelines[14] e determina que um programa de código aberto deve garantir:
O programa deve incluir seu código fonte e deve permitir a sua distribuição também na forma compilada. Se o programa não for distribuído com seu código fonte, deve haver algum meio de se obter o mesmo seja via rede ou com custo apenas de reprodução. O código deve ser legível e inteligível por qualquer programador.
A licença não pode restringir o código fonte de ser distribuído em uma forma modificada mesmo se a licença permitir a distribuição de arquivospatch (de atualização) com o código fonte para o propósito de modificar o programa no momento de sua construção pois a restrição ao código–fonte significa transformar o software livre emsoftware proprietário. A licença deve explicitamente permitir a distribuição do programa construído a partir do código fonte modificado. Contudo, a licença pode ainda requerer que programas derivados tenham um nome ou número de versão diferentes do programa original.
A licença não deve restringir qualquer pessoa de usar o programa em um ramo específico de atuação. Por exemplo, ela não deve proibir que o programa seja usado em um empresa, ou de ser usado para pesquisa genética.
Os direitos associados ao programa devem ser aplicáveis para todos aqueles cujo programa é redistribuído, sem a necessidade da execução de uma licença adicional para estas partes.
Os direitos associados ao programa não devem depender que o programa seja parte de uma distribuição específica de programas. Se o programa é extraído desta distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos direitos que aqueles que são garantidos em conjunção com a distribuição de programas original.
A licença não pode colocar restrições em outros programas que são distribuídos juntos com o programa licenciado.[15] Isto é, a licença não pode especificar que todos os programas distribuídos na mesma mídia de armazenamento sejam programas de código aberto.
No contexto daTransformação Digital de Governos pelo mundo,[16][17] o código aberto é considerado essencial para promoção da colaboração, padronização e otimização das tecnologias desenvolvidas pela e para a gestão pública.
Nesse cenário, diversos movimentos cívicos comoRede Livre,Ciudadania Inteligente,Code For America,My Society eG0v, atuam na promoção da cultura de governos, dados e códigos abertos, mobilizando profissionais, cidadãos e agentes governamentais em eventos e redes comunitárias, que geram ou maximizam o impacto na sociedade através da adoção e prática de códigos abertos e governança colaborativa nos governos e na sociedade.