Uma receita de bolo livre

Dia 17
Na tentativa de explicar como são feitos os programas de computador e como funciona os programas de código fonte livre (também chamados de código fonte aberto), eu pensei em uma analogia.
Toda analogia tem suas falhas. A ideia é explicar algo técnico para os leigos.
Imagine uma receita de bolo. Imagine que não seja possível comer os ingredientes separadamente e só quando o bolo está pronto ele se torna comestível. Assim acontece com o computador. Ele só entende instruções quando elas estão na forma binária, ou seja, quando são uma quantidade gigante de '1's e '0's. Só que nós, seres humanos, precisamos de linguagens de alto nível para escrever essas instruções, os código fonte.
A receita de um bolo (assim como um código fonte) são instruções para que um cozinheiro (chamamos de compilador) transforme a receita (o código fonte) em um bolo (o programa binário).
O seu computador, seu celular, tablet são compostos por conjunto de programas. Cada aplicativo do seu celular é um programa binário. O sistema (Windows, MacOS, Linux, Android, IOS) é um programa binário que gerencia programas binários(os aplicativos).
Em geral, toda receita é feita com uma licença. Uma das receitas livres mais famosas é a GPL que define 4 leis:
- A liberdade de comer bolo "como quiser" (usar o programa para qualquer objetivo)
- A liberdade de estudar a receita e adaptá-la às suas necessidades
- A liberdade de distribuir cópias das receitas
- A liberdade de melhorar a receita e poder liberar essa receita publicamente para que todo mundo se beneficie das melhorias
Alguns tipos de licenças de bolo:
- Licenças proprietárias - você precisa pagar para comer o bolo e tudo que fizer com o bolo tem que estar de acordo com o que o proprietário quiser
- Licenças Shareware - você pode comer por um período de tempo, mas depois de um tempo tem que pagar pra poder continuar comendo
- Licenças Freeware - você pode comer sem pagar, mas não vai poder ver a receita
- Licenças livre - você pode comer, melhorar a receita, fazer o seu bolo e distribuir seguindo as 4 leis
- Possibilidades com uma receita usando uma licença GPL
- Você quer comer um bolo e vai a uma confeitaria onde as receitas são livres. Se você (como eu) não sabe cozinhar, vai comprar o bolo. Por ser livre, a receita vai vir junto com o bolo. Você pode tentar fazer o bolo você mesmo ou dar pra alguém fazer por você. Se você sabe cozinhar, pode apenas pegar a receita e fazer você mesmo. De acordo com as leis o confeiteiro não é obrigado a te dar o bolo, mas se ele te der (ou vender), ele é obrigado a te dar a receita. De posse da receita, você pode então distribuí-la para quem quiser. Pode fazer alterações e então vender o bolo feito com as suas modificações (que devem também conter a receita junto).
Mas e se alguém mal intencionado fizer modificações maliciosas na receita? Só as pessoas que confiam nesse alguém vão comer o bolo dessa receita. Não é possível contaminar outras receitas de terceiros com as suas modificações. Cada um segue a receita que confiar e come o bolo feito por quem confiar.
Do mesmo jeito, mesmo sendo possível modificar os programas e por códigos maliciosos, só quem confia nesses códigos alterados vão usar esses programas estragados.
Com todas as receitas sendo modificadas e repassadas junto com os bolos, todos se beneficiam das modificações e melhorias. Ao mesmo tempo cada um pode incrementar sua receita e comer o seu bolo feitos seguindo as receitas que mais lhe agradar.
Até amanhã.