Reúso e cultura do
software livre
Cristiano Carvalho Lacerda
Fernando Vinícius GIanini SIlva
Rafael Olivier Cardoso
Leonardo Kobe Choyoung Lim
"Abra seu celular. Suas redes
sociais, suas notícias, seus
registros médicos, seu banco:
todos usam código aberto e
livre."
Roads and Bridges - The Unseen Labor Behind Our Digital Infrastructure.Definição de software livre
Qualquer software que adere às 4 liberdades fundamentais:
● A liberdade de rodar o programa da maneira que você quiser, para qualquer propósito. (Liberdade 0)
● A liberdade de estudar como o programa funciona e adaptá-lo para fazer a computação que você deseja. (Liberdade 1)
● A liberdade para redistribuir cópias do software para que você possa ajudar seu vizinho. (Liberdade 2)
● A liberdade de distribuir cópias da sua versão modificada do programa. (Liberdade 3)
Free Software x Open Source
● Os dois conceitos se referem basicamente ao exato mesmo tipo de software e conjunto de licenças. Cada termo porém carrega filosofias e valores distintos.
“Open source is a development methodology; free software is a social movement.” - Richard Stallman
Free Software x Open Source
Bruce Perens - Criador da Open Source Initiative - 1998
Free Software x Open Source
● Ambiguidade do termo "Free".
● A mudança de nomenclatura não foi um simples acidente.
● Este esforço foi fundamental para a adoção em massa do open source ao se distanciar do “radicalismo” pregado pelo movimento do software livre - Free software, free society.
Como software livre é diferente de tudo, e
a promessa de uma sociedade livre
De muitas maneiras desenvolver software é como construir um prédio.
Uma construtora não fabrica os tijolos e o cimento que vai utilizar. Ao invés disso ele compra essa matéria prima de um fornecedor para reduzir custos e realizar o trabalho mais rápido.
Da mesma forma usar software livre para uma companhia como o Facebook é muito mais eficiente do que desenvolver todas as partes internamente.
É o equivalente a olaria, a fábrica de cimento e a loja de materiais de construção doarem de graça toda a matéria prima que construtora desejasse e continuar a oferecer suporte para a companhia.
Por que utilizar software livre?
● Confiabilidade e transparência:● Flexibilidade e suporte:
● Qualidade do software e boas práticas de desenvolvimento:
GitHub
● O uso do github mostra o seu crescimento exponencial.
● Em 2011, havia somente 2 milhões de repositórios ● Hoje (2016), GitHub tem 14 milhões de usuários e
aproximadamente 35 milhões de repositórios. Isto incluindo “forked repositories”.
● A contagem de repositórios únicos chegam perto de 17 milhões.
● Brian Doll notou que o primeiro milhão de repositórios levou quase 4 anos para serem criados; Do nono ao décimo milhão levou apenas 48 dias.
Como os projetos open source são mantidos e
construídos?
Por uma empresa
Por que as empresas abrem o codigo de seus softwares?
●
Menos trabalho;
●
Facilidade na contratação de talentos;
●
Fortalecer a marca e seus usuários;
●
Ideologia;
Porque alguém investiria em um novo negócio baseado em open source?
● Neste caso, quase sempre o modelo de negócios é o mesmo criado pela Red Hat: Venda de suporte e garantia.
● Apoio de capitais de risco, mesmo que não haja ganho direto envolvido; ○ Crescimento de todo o ecossistema: +open source = +startups
Por um novo negócio
Npm recebeu mais de USD 11M de investimentos da True
Ventures and Bessemer Ventures, entre outros. O modelo de negócio foca em funcionalidades pagas e suporte para privacidade e segurança.
O projeto Docker se tornou código aberto em 2013. A
Docker recebeu USD 180M com um valor de mercado estimado em USD 1B. O modelo de
negócios é baseado em suporte e planos sob demanda. O
faturamento era de apenas USD 10M
Por uma comunidade
Porque as pessoas colaboram com uma comunidade?
● Em muitos casos os desenvolvedores não são pagos diretamente
○ Construção de uma reputação
○ Mentalidade de ajudar o mundo
○ O trabalho é feito por amor
● Quase ⅔ dependem de um ou dois desenvolvedores apenas
○ “Cauda longa” de contribuições
○ Mantidos por “ditador benevolente para a vida”, core-team ou fundações ● Sucesso acidental de bons projetos
Por uma comunidade
- Steve Marquess, contribuidor do OpenSSL
Por uma comunidade
“Over six years ago, in December 1989, I
was looking for a ‘hobby’ programming project that would keep me occupied during the week around Christmas” -
Por uma comunidade
O Linux em números:
● Linhas de código: ○ 1991 (versão 0.01): 10.239 linhas ○ 2020 (versão 5.7): +33M linhas ● Contribuidores ○ 2005 - 2017: 15.600 contribuidores; +1.400 companhias ○ 2017: 4.300 desenvolvedores; 500 companhiasA Catedral e o Bazar
● O modelo Catedral
○ O código fonte está disponível para cada release do software
○ O código desenvolvido entre dois releases é restrito a um grupo de desenvolvedores exclusivo.
● O modelo Bazar
○ O código é desenvolvido de forma totalmente aberta e pública, utilizando a Internet
○ Raymond credita Linus Torvalds, líder do projeto Linux, como o inventor deste modelo
Reúso e software livre
Com a ferramenta de versionamento como git, o fork é uma forma mais
Famosos reúsos de software livre
● LibreOffice <- OpenOffice.org <- StarOffice
● MariaDB <- MySQL
● Ubuntu <- Debian
● neovim <- vim <- vi
● MATE <- GNOME2
● Edge, Opera <- Chrome
● FluentUI (Microsoft) <- React (Facebook)
Reúso em forma de pacotes
(data science /
Reúso em forma de frameworks
Exemplos de software livres utilizados para
fazer software
● Sistema de banco de dados: SQlite, MySQL, Postgres, Mongo, Redis
● Frameworks de aplicação: React, Angular, Vue, Express, Laravel, Django, Qt,
Gtk, Wxwidgets
● Bibliotecas de data science: Pandas, Scikit Leaning, Numpy, TensorFlow,
Keras
● Editores de texto e IDEs: Elipse, VS Code, Vim, Emacs
● Versionamento: Git, SVN, Mercurial
● Deploy: Docker, Jenkins, Kubernetes