O papel da comunidade no Linux e no Software Livre

De quando em quando aparece alguém perguntando qual o papel da comunidade no Linux e no Software Livre. Esse tipo de reflexão feita de tempos em tempos é extremamente importante, uma vez que cada um de nós fazemos parte de algo maior, por menos que nos demos conta disso.
Em geral, quando pensamos em uma “comunidade do Software Livre”, pensamos em uma comunidade de desenvolvedores de software livre, certo? Bem, parece que as coisas estão mudando e mudando bem rápido, ao menos quanto ao Linux:

Linux: qual o verdadeiro papel da comunidade? | LonelySpooky’s Blog

Sim, é isso… estudos recentes da “The Linux Foundation” evidenciam o que muita gente já sabia: são as empresas que mandam no desenvolvimento do Linux. Pelas estatísticas, há mais de 1000 programadores dando duro em escrever o código do kernel e entre 70% e 95% desses desenvolvedores são pagos para fazê-lo e mais de 70% dessas contribuições são feitas por programadores que trabalham em grandes empresas.

O que é uma verdade. Mas antes que pensem que essas empresas são boazinhas ou “mecenas”, vamos aos fatos: nenhuma IBM, Sun ou Oracle é boazinha. Elas sabem que o jogo do software livre tem regras claras. Por tais regras, ela sabe o que podem ou não fazer ou deixar de fazer, de uma maneira muito mais clara do que as EULAs do software proprietário. Desse modo, fazer coisas que permitam a elas ganhar dinheiro não é apenas ético, mas simples e barato, pois o Software Livre é uma região “livre de advogados”.
Isso é um fato. As empresas realmente estão se conscientizando do valor do software livre. Agora, eu discordo ao menos em parte com essa idéia de que estão pegando desenvolvedores de graça:

Linux: qual o verdadeiro papel da comunidade? | LonelySpooky’s Blog

Muitas empresas inteligentes perceberam que abrir o código de seus produtos facilita o desenvolvimento porquê, verdade seja dita, não há nada como ter milhares (ou até milhões) de programadores trabalhando de graça para implementar melhorias ao seu produto.

OK… Como se diz, “não existe almoço grátis”. Na realidade, ao oferecerem seus códigos, essas empresas já estão pagando os desenvolvedores. Parece loucura?  Talvez sim. Mas é importante levar em consideração a característica de gift economy (ou economia da doação) envolvida no software livre, o que pode explicar e permitir um nexo “capitalista” nessa história toda. Pode-se imaginar inclusive que continuamos tendo um contrato aos moldes capitalistas, mas com uma moeda de troca diferenciada: o código passa a ser a moeda de troca.
Duvida? Vejamos o que David Wheeler, consultor do Departamento de Defesa Norte-Americano tem a nos dizer:

More than a Gigabuck: Estimating GNU/Linux’s Size

In particular, it would cost over $1 billion ($1,000 million – a Gigabuck) to develop this GNU/Linux distribution by conventional proprietary means in the U.S. (in year 2000 U.S. dollars).

traduzindo:

More than a Gigabuck: Estimating GNU/Linux’s Size

Em particular, custaria mais de 1 bilhão de dólares (Gigabuck() para desenolver essa distribuição do GNU/Linux [no caso, é o Red Hat Linux 7.1, lançado no ano 2000] nos Estados Unidos usando os métodos tradicionais do Software Proprietário (segundo os custos no ano 2000)

Ou seja, o software livre, por meio do gift economy, faz circular conteúdos (no caso, software), cujo o valor para ser produzido segundo metodologias tradicionais seria enorme. Desse modo, podemos imaginar que, ao ceder seus códigos a desenvolvedores segundo licenças livres/abertas, uma empresa obtem como retorno um código de alta qualidade, ao mesmo tempo em que “paga” os desenvolvedores com código de alta qualidade e/ou interessante.
Parece bizarro? Outro trabalho seminal, esse de Eric S. Raymond, “A Catedral e o Bazar”, contém algumas respostas para isso:

A Catedral e o Bazar: O Correio Deve Ser Enregue

1. Todo bom trabalho de software começa colocando o dedo na ferida de um programador.

Talvez isto deveria ter sido óbvio (um antigo provérbio diz que “A necessidade é a mãe da invenção”) mas muitas vezes os programadores gastam seus dias buscando retorno em programas que eles não necessitam nem gostam. Mas não no mundo do Linux — o que pode explicar porque a qualidade média do software originada na comunidade de Linux é tão alta.

Assim, eu me lancei imediatamente com o ímpeto de codificar um novo cliente POP3 para competir com os existentes? De maneira alguma! Eu olhei com cuidado os utilitários POP que eu tinha à disposição, perguntando-me “qual deles é o mais próximo do que eu quero?”.

Porque…

2. Os programadores bons sabem o que escrever. O grandes sabem o que rescrever (e reusar).

Embora eu não me considere um grande programador, eu tento me passar por um. Uma importante característica dos grandes é a preguiça construtiva. Eles sabem que você ganha um `A’ não por esforço, mas por resultados, e é quase sempre mais fácil partir de uma boa solução parcial do que do nada.

Linus Torvalds, por exemplo, não tentou realmente escrever Linux do nada. Ao contrário, ele começou reusando código e idéias do Minix, um pequeno sistema operacional Unix-like para máquinas 386. Eventualmente todo o código Minix se foi ou foi completamente rescrito — mas quando estava lá, forneceu as bases para o infante que se transformaria no Linux.

Códigos bem-escritos ou interessantes são sempre uma boa “forma de pagamento” para programadores, uma vez que as necessidades são muitas e podem ser supridas por uma “boa alma” que precise ela própria de inovação e decida-se a “pagar” por bons desenvolvedores. Casos como o Mozilla Firefox, OpenOffice.org, MySQL, Apache, Websphere e outros comprovam isso. Desse modo, podemos perceber que (1) nenhuma empresa está nesse jogo como um “mecenas”, (2) todo desenvolvedor sabe que grandes empresas estão usando seus códigos para isso e (3) normalmente os desenvolvedores não esquentam a cabeça, pois já “receberam seu pagamento” na forma de bons códigos para estudo ou desenvolvimento de soluções necessárias às suas atividades.
Mas o fato de termos muitos programadores de Software Livre trabalhando para empresas acabou com o papel da comunidade? Eu acredito que não, como já disse várias vezes:

Os usuários estão no Linux… E nós, estamos prontos para isso? « Linux… e mais coisas

É importante que sempre nos lembremos que, um dia, todos fomos novatos, com dúvidas bobas sobre como montar um dispositivos, compilar um programa ou carregar o módulo de kernel para aquela placa de rede que não funciona nem a pau. Essas coisas são úteis nesse momento. É lembrarmos que mesmo Jesus Cristo foi humilde e nos lembrou sobre isso ao lavar os pés dos apóstolos.

Não estou defendendo que se preste consultoria de graça, mas acho muito importante lembrarmos que somos parte de uma comunidade. Qualquer besteira que fizermos, qualquer resposta ríspida que oferecermos, seremos nós que iremos pagar caro.

Ajudar as pessoas no início do GNU/Linux é difícil. Algumas vezes pode ser que nem mesmo nós saibamos as respostas para as perguntas (não, aqui “42″ não é uma resposta válida… :P). Não precisamos responder com coisas do tipo “RTFM” ou “Google is your friend“. Educação e respeito pela “novatice” alheia pode ser uma coisa muito mais util para o GNU/Linux do que ser um über-hacker.

Auxiliar as pessoas é uma característica do ser humano: é parte de nossa própria natureza. Esse é um trabalho que a comunidade pode e deve exercer com certeza. A idéia de ser parte de um grupo nesse caso é tão fundamental que, na série (muitas vezes esquecidas) dos Linux HOWTOs (parte do Linux Documentation Project), existe o Linux Advocacy mini-HOWTO (traduzindo, o mini-guia de Como Defender o Linux). nele, temos várias dicas sobre como defender o Linux. Algumas que acho interessantes:
  • Compartilhar experiências boas e ruins com o Software Livre;
  • Se disponibilizar para fazer apresentações sobre Software Livre;
  • Mostrar para as pessoas que existem softwares livres bastante maduros para vários tipos de necessidades;
  • Distribuir CDs e livros de Linux qunado você não mais os usar.

Além disso, nem só de desenvolvimento vive o software livre. Vejamos algumas formas de ajudar:

  • É bom em inglês e/ou outros idiomas? Traduções são sempre bem vindas.
  • Tem boa redação? Muitos software sofrem de uma carência de boa documentação e aqui você pode ajudar.
  • É bom com desenho? Muitos softwares precisam de logos e artes para divulgação.
  • Gosta de “viver desafios”? Bug-tracking (descoberta e divulgação de bugs) é algo bastante importante. E isso vale para todos: qualquer bug pode acontecer a qualquer momento e isso pode ajudar a aumentar a qualidade do software.
  • Precisa de recursos específicos? Sugira-os! Os desenvolvedores podem achar uma boa idéia e os implementar.
  • É bom com o público? Seja um evangelista do software livre! Divulgue o software e mostre que ele é bom!
  • Ofereça apoio financeiro a projetos interessantes. Programadores podem não precisar de Ferraris, mas precisam de feijão e arroz;
  • É experiente? Proponha-se a ensinar software livre, a instalar e configurar e ajudar novos usuários.
  • Teve um bom caso com algum hardware novo? Divulgue. Divulgue todos os procedimentos para o fazer funcionar, scripts que tornem fácil seu uso, etc…

Acho que cada vez mais precisamos lembrar que o software livre depende sim de uma comunidade em sintonia, que auxilie na divulgação e que aprecie as contribuições uns dos outros.
E você, o que está fazendo?

Powered by ScribeFire.

Sobre Fábio Emilio Costa
Linux, Free Software, EMACS, Rugby, Indycar, Doctor Who, Harry Potter... Yep, this is me!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s