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: 1952



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

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.

Criando um sistema de mini garagem automatizada integrada com um sistema de monitoramento independente

Desenvolvimento de um sistema de monitoramento que exibi todos os eventos que acontecem na garagem automatizada, como abertura de portões ou ocupação de vagas.

Usando dados fornecidos pelo TSE para simular o gráfico das eleições presidenciais de 2022

Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.

Caixa eletrônico usando arquitetura limpa

Usando JavaFX e arquitetura limpa para criar um aplicativo de caixa eletrônico extremamente simples.

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.

Veja também

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

A maioria dos sistemas atuais usam a nuvem para o armazenamento e o acesso de dados

A nuvem pode ser uma boa alternativa de substituição da memória atual. Além de fazer a cópia de segurança dos dados, pode ser acessível de qualquer lugar.

Biometria em sistemas

Pode melhorar a segurança de um sistema em alguns aspectos, porém a principal vantagem é o melhoramento da experiência do usuário.

Linguagem de programação

A linguagem de programação é um conjunto de instruções que possuem um padrão de escritas, sendo um intermediário entre o programador humano e a máquina.

TDD Desenvolvimento orientado por testes

Método de desenvolvimento em que os testes são a base da implementação. Eficiente para mitigar bugs de forma automática.

Sistema embarcado

Mini-computador fixado a um circuito elétrico integrado com outros componentes essenciais, como memória, componente de entrada e saída