OSS Software de código aberto

O código aberto é disponível para a visualização, modificação e utilização, podendo ser utilizado por terceiros para fins comerciais.

Categoria de Tecnologia

Postado em 03 julho 2022

Atualizado em 03 julho 2022

Palavras-chave: open,source,code,código,aberto,fechado,privado,público,oss,tecnologia

Visualizações: 1864



Todo software que utilizamos possui algoritmos para seu funcionamento. Ao colocarmos esses algoritmos em prática, o código-fonte é gerado.

O código-fonte não passa de um conjunto de comandos escritos em alguma linguagem para fazer o software operar. Esse código pode ser vendido pelo indivíduo que possui os direitos autorais.

O preço do código irá depender da renda e dos ativos que abrangem o software. Esse código pode ser aberto ou fechado.

O que é código (source code) na computação?

O código é um sequência de comandos escritos por um programador com o intuito de fazer um software operar.

Existem várias linguagens de programação que podem ser escolhidas pelo programador para obter um melhor desempenho no produto final.

No final, essa linguagem irá ser compilada em código binário para que a máquina possa entender as instruções escritas pelo programador.

O que é código fechado (closed source) na computação?

O código fechado proíbe qualquer pessoa de visualizar, modificar ou utilizar o código-fonte de um software. Esse código só estará disponível para usuários autorizados.

código fechado

Vários softwares utilizam o código fechado. Alguns exemplos são:

  • Microsoft Windows
  • Photoshop
  • Skype

Vantagens de ter um código fechado

Um código fechado necessita de foco para ser continuado, trazendo vantagens como:

  • Melhor interação com usuários, tornando-se mais amigável
  • Melhor suporte aos usuários, tendo respostas mais rápidas em relação a bugs

O código fechado é mais focado no lucro que um software traz para uma empresa. Esse lucro permite o pagamento de salário de programadores que podem continuar focados no melhoramento do software e suporte aos usuários.

Desvantagens de ter um código fechado

Por possuir uma menor quantidade de programadores que podem acessar o código, há mais chances de brechas passarem despercebidas, como dia zero (zero-day).

O código fechado pode possuir um custo elevado em relação a manutenções e atualizações de software.

O que é código aberto (open source) na computação?

Código disponível para visualização, acesso e modificação. Porém, atos como revender código aberto não são permitidos. Alguns exemplos de códigos abertos são:

  • Linux
  • Firefox
  • Wordpress

Softwares criados com código aberto, na maioria das vezes podem ser vendidos sem a necessidade de citação ou referência do código utilizado. Para ter certeza, é sempre recomendável ler os termos de uso do código aberto.

Vantagens do código aberto

Um código aberto é disponível para que qualquer usuário possa melhorar ou reparar o código atual.

Apesar de aceitar novas modificações, não significa que qualquer pessoa pode modificar o código-fonte. O código aberto é gerenciado por um conjunto de usuários que possuem a permissão para modificar e aceitar modificações.

Quanto mais famoso é um software com código aberto, mais usuários irão contribuir para o seu melhoramento.

Esse melhoramento é feito de forma voluntária, não possuindo custos. Isso é vantajoso para os donos e para os usuários do código-fonte.

Desvantagens do código aberto

Quando um código aberto não é muito famoso, este não possui muitos contribuintes. Pelo fato do código aberto não ser focado no lucro, há grandes chances de cair no esquecimento, sendo abandonado pelo seus autores.

Conclusão

O código aberto é disponível para a visualização, modificação e utilização, podendo ser utilizado por terceiros para fins comerciais.

O código aberto pode ser usado para estudo, adaptação de novos softwares e extensão. Isso torna o código-fonte ainda mais valioso, uma vez que este é a base para todas essas extensões.

Projetos práticos

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Desenvolvendo o campo de visão de um personagem em um plano 2D

Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Criando um jogo de guerra nas estrelas em javascript usando a biblioteca p5.js

Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.

Veja também

Os bancos estão sendo substituídos pelos robôs em transações online

As criptomoedas mudaram totalmente o modo das pessoas pensarem. Usar robôs para autentificar transações online, custa muito menos comparado com os bancos em relação às taxas...

Pessoas sem um endereço não podem utilizar os correios. Dispositivos sem um endereço não podem acessar a internet.

Quando nos conectamos à internet, nós recebemos um endereço IP. O endereço IP é o nosso endereço virtual que vai servir como localização para a transferência de dados na internet

Aprendizagem adaptativa

Método de ensino digital que ajusta o nível de dificuldade conforme a capacidade, nível e conhecimento do indivíduo que utiliza o sistema.

RPA Automação robótica de processos

Automatiza tarefas repetitivas no lugar de humanos, podendo ser integradas com os softwares e serviços que são utilizados para a realização de tarefas.

Variáveis na programação

As variáveis são elementos responsáveis por armazenar informações temporariamente ou perpetuamente durante a execução de um programa ou algoritmo.

Princípio aberto fechado - Open-Closed Principle

O código deve estar aberto para extensões e fechado para modificações. Podemos mudar o comportamento de uma classe adicionando mais código.