Você está na página 1de 20

1

UNIDADE 1

O que é software de código


aberto?

Objetivos de aprendizagem
„„ Compreender o que é software de código aberto.

„„ Identificar as origens e características do software de


código aberto.

Seções de estudo
Seção 1 O minicomputador
Seção 2 O nascimento do Linux

Seção 3 O movimento Software Livre


Seção 4 Como é produzido o software de código aberto?
Seção 5 Quem produz o software de código aberto?

software_livre.indb 17 28/06/11 10:58


Universidade do Sul de Santa Catarina

Para início de estudo


Para iniciar o estudo, você terá oportunidade de verificar a
caracterização e as origens do software. É importante perceber
que a maior diferença entre um computador e outros inventos
humanos é a sua versatilidade: um computador pode ser utilizado
em incontáveis funções. Mas isto também faz dele o invento mais
dependente da imaginação e da habilidade intelectual.

O computador é composto de diversos componentes eletrônicos.


Estes componentes, por sua vez, formam a memória, unidade central
de processamento, os circuitos de entrada e saída, entre vários outros,
como é estudado em disciplinas que lidam com arquitetura de
computadores. Este conjunto recebe o nome de hardware.

O hardware sozinho, no entanto, não realiza nenhuma tarefa.


Para que o computador funcione, é necessário que ele seja
ensinado. Isto se dá por meio de instruções que são armazenadas
na memória e executadas pela unidade de processamento
central (CPU em inglês). No tipo de computador que usamos
normalmente, estas instruções fazem com que os dados de
entrada, como por exemplo, os que fazemos entrar pelo teclado,
sejam lidos, interpretados, processados e resultem em uma ou
mais saídas. Idealizar e escrever as sequências de instruções
que fazem o computador realizar suas tarefas é denominado
de programação; e o resultado final dela é o “programa de
computador”, ou software.

Você notará que, neste livro, será utilizada com


frequência a palavra inglesa software para representar
qualquer tipo de programa de computador, seja ele
um pedaço de código ou um sistema completo.

No início da era do computador, começo da década de 1950, não


existia distinção entre hardware e software, entre programador e
usuário, existia apenas o computador e o pessoal que trabalhava
com ele (WEBER, 2004). Nessa época, a IBM introduziu no
mercado o primeiro computador comercial, o modelo 701. Ele
não era vendido, mas alugado às empresas por aproximadamente

18

software_livre.indb 18 28/06/11 10:58


Software Livre

15 mil dólares mensais, uma quantia muito grande para a época,


impedindo que pequenas empresas tivessem acesso à máquina.
Um ano depois, a IBM começou a vender por cerca de 1,6
milhões de dólares o modelo 705, valor também impossível para
a maioria das empresas.

Também não havia ferramentas que ajudassem os programadores


a escrever seus códigos, e cada programa tinha de ser desenvolvido
do zero. Não havia as API’s (application programming interface) que
existem hoje, em que grande parte do trabalho de um programador
é “juntar” código já feito por outros ao seu sistema.

Naquela época, um programa para processar imagens


de radar continha até 80 mil linhas de código. Imagine
como era enorme o esforço de desenvolvimento, sem ter
nada para reaproveitar de outros programas similares.

As primeiras ferramentas de programação, como os


compiladores, foram escritas por profissionais que passavam
seu código de um para outro, sem nenhum compromisso com
remuneração ou proteção intelectual. Em outras palavras,
o software nasceu como um processo de colaboração entre
profissionais, e isto era incentivado pelas empresas fabricantes
dos computadores, pois, quanto mais programas se produzissem,
maior seria o potencial de uso da máquina pelo cliente,
incentivando seu aluguel ou compra – isto é, seu valor agregado.

As enormes máquinas daquela época deram origem ao termo


mainframe, que designa, hoje em dia, máquinas cujas principais
características são a confiabilidade, a alta capacidade de entrada/
saída de dados e a capacidade de “rodar” vários sistemas
operacionais, ou servidores, ao mesmo tempo. Uma máquina
destas fica ligada e operacional anos a fio, não parando nem
mesmo para manutenções.

Unidade 1 19

software_livre.indb 19 28/06/11 10:58


Universidade do Sul de Santa Catarina

Seção 1 – O minicomputador
A invenção do minicomputador mudou o cenário anterior,
pois além de baratear a máquina em si, também iniciou uma
revolução no campo do software - foi a partir deste ponto que as
universidades tiveram acesso ao computador para suas pesquisas,
permitindo a pesquisadores e alunos desenvolverem programas.

A primeira empresa a quebrar a supremacia da IBM, quase


monopolista, foi a Digital Research com seus minicomputadores
PDP, que custavam, em 1960, cerca de 120 mil dólares. Em
1965, o modelo PDP-8 já era vendido por 18 mil dólares. Um
marco em termos de capacidade foi atingido com a introdução do
modelo PDP-11, que por custar 11 mil dólares, era possível ser
adquirido por um número maior de universidades americanas.

Um dos problemas que foi atacado por pesquisadores dentro das


universidades era o fato de ser caro o tempo de utilização de um
mainframe, que só podia atender a um usuário ou departamento
de uma empresa por vez. Para dividir os custos, o tempo de uso
era otimizado e compartilhado pelo envio de tarefas (batchs). Os
departamentos de uma empresa enviavam para uma fila de espera
as tarefas a serem executadas, que aguardavam até seu momento
de execução pelo computador. Não existia, ainda, o conceito
de multitarefa (multitasking), no qual há a ilusão de que vários
usuários utilizam o computador ao mesmo tempo.

O primeiro sistema a apresentar esta característica foi o CTSS


(Compatible Time-Sharing System), desenvolvido no início
da década de 1960 pelo MIT (Massachusetts Institute of
Technology). Este sistema permitia o uso compartilhado de 30
usuários conectados por meio de modems.

Pesquisadores do MIT, junto com colegas dos laboratórios Bell


e da General Electric, começaram em 1964 o desenvolvimento
de um sistema sucessor, MULTICS, que deveria permitir o
compartilhamento de 1.000 usuários. Este sistema não foi em
realidade implementado, em parte, por não haver na época
tecnologia de hardware suficientemente desenvolvida para dar
suporte ao sistema. No entanto, as ideias serviram de base para o que
seria desenvolvido depois por Ken Thompson, denominado UNICS.

20

software_livre.indb 20 28/06/11 10:58


Software Livre

Ao iniciar o projeto sozinho, utilizando poucos recursos de tempo e


máquina, um PDP-7 desatualizado, Ken lançou as bases do sistema
operacional UNIX e seus derivados, que rodam no maior número
de plataformas até hoje e formam a espinha dorsal da internet.

É interessante notar que este processo de iniciar um projeto é o


mais comum no código aberto: apenas uma pessoa com uma ideia
e, geralmente, com poucos recursos.

Junto com Dennis Ritchie, o projeto foi continuado e introduziu-


se o mecanismo de pipe (de tubulação em inglês), em que a saída
de um programa pode ser canalizada para a entrada de outro,
facilitando a modularização do sistema UNIX e a consequente
escrita de programas para este sistema, uma vez que estes podem
ser combinados e reutilizados para a construção de algo novo. A
AT&T, onde trabalhavam, licenciou o novo sistema para várias
universidades.

Isto fez com que professores e estudantes, utilizando o UNIX,


idealizassem modificações, aprimoramentos e a escrita de
novas ferramentas. Da universidade de Berkeley surgiu o BSD
(Berkeley Software Distribution) em 1978, levando a outra
vertente de sistemas padrão UNIX.

O BSD teve um papel importante para o nascimento da Internet.


Em 1968, uma agência do governo americano patrocinou um
projeto denominado ARPANET, que tinha como objetivo
permitir comunicação e armazenamento de informação de
maneira não centralizada, de tal forma que, em eventual ataque
nuclear, os Estados Unidos não perdessem sua capacidade de
comando (RAND CORPORATION, 2007).

No decorrer da década de 1970, os equipamentos e a tecnologia


utilizada na ARPANET mostraram-se obsoletos, e era
necessário encontrar um outro sistema operacional para o suporte
da rede. Entre os requisitos, era necessário que este sistema fosse
fornecido com seu código-fonte. Um acordo entre a DARPA
(Defense Advanced Research Projects Agency) e a universidade
de Berkeley permitiu que o BSD evoluísse para dar suporte ao
nascimento da Internet, criando o protocolo TCP/IP, embutido
na versão 4.2BSD.

Unidade 1 21

software_livre.indb 21 28/06/11 10:58


Universidade do Sul de Santa Catarina

Naquela época, a versão Unix da AT&T e o BSD


compartilhavam muito do seu código. Isto interessava à AT&T,
pois ajudava a desenvolver sua versão. Mas, a partir de 1983, este
arranjo teve de ser modificado, uma vez que a AT&T recebeu
licença para vender software, o que não era permitido por
motivos de regulamentação de mercado impostos à empresa.

Muitas universidades perderam o interesse, uma vez que as


licenças passaram a ser vendidas com valores em torno de
100 mil dólares até 250 mil dólares anos depois. O BSD foi
particularmente afetado, uma vez que muito do código fora
desenvolvido em conjunto.

A solução encontrada foi recriar todas as funcionalidades


existentes no BSD, que eram implementadas por código
pertencente à AT&T, e isto era uma tarefa enorme. Surge então
a formalização do processo de desenvolvimento distribuído, de
que o público foi convidado a participar, recebendo em troca
a publicação de seu nome na lista de créditos da nova versão.
As contribuições eram recebidas pela Internet, onde um grupo
pequeno de pessoas aprovava o código que chegava e o incluía
na distribuição do sistema operacional, caso este passasse em
critérios de excelência. Em um ano e meio, havia mais de 400
desenvolvedores participando. Em 1991, a tarefa estava completa.
O sistema era distribuído pela universidade por mil dólares, mas
qualquer um podia fazer uma cópia e passar adiante. O sistema
foi portado para a plataforma Intel 386, gerando o 386/BSD.
Este foi o primeiro sistema Unix para um computador pessoal a
ser distribuído pela Internet.

Com este esforço de criar o sistema BSD livre de código da


AT&T, consolida-se o que viria a ser chamada licença BSD.
Nesta licença, umas das mais liberais existentes, é possível
fazer praticamente tudo com o código, até mesmo incluir
em um software proprietário e vendê-lo. A única exceção é a
obrigatoriedade de incluir na documentação que o código foi
criado pela universidade de Berkeley e deixar inteira a nota de
propriedade no código-fonte.

22

software_livre.indb 22 28/06/11 10:58


Software Livre

Na década de 1990, a
Internet estava em seu
início e não existia ainda a
Seção 2 – O Nascimento do Linux WEB como a conhecemos
hoje. A divulgação de
informações era realizada
Em 1991, Linus Torvalds, um estudante de computação da por meio de grupos de
Universidade de Helsinki, comprou um PC com processador 386, discussão, num processo
4MB de memória, 40MB de disco e com o MS-DOS instalado. muito mais limitado do
Na universidade, Torvalds usava sistemas operacionais UNIX, o que as várias ferramentas
de comunicação e
que o levou a ter a ideia de escrever uma versão para sua máquina
compartilhamento que
de casa, já que versões comerciais do UNIX para PC eram muito temos hoje.
caras. Torvalds desconhecia o desenvolvimento do 386/BSD.

Unidade 1 23

software_livre.indb 23 28/06/11 10:58


Universidade do Sul de Santa Catarina

O ponto de partida foi o sistema operacional MINIX,


desenvolvido pelo professor Tanenbaum para suas aulas de
computação. A esta sua própria versão, Torvalds denominou
Linux. Um ano após publicar o código, mais de 100 pessoas
participavam de seu desenvolvimento. A maioria, contribuindo
com conserto de bugs (falhas nos programas), melhoria no código
e novas funcionalidades. Em 1994, a versão 1.0 foi oficialmente
lançada. Por volta do ano 2000, Linux era executado em mais
de um terço de todas as máquinas utilizadas como servidores
para a Internet. Este enorme sistema, de alta complexidade, foi
desenvolvido a partir de colaboradores ao redor do mundo, sem
o envolvimento de investimentos com fins lucrativos. Wheeler
(2007) estima que seriam necessários 612 milhões de dólares
para a reconstrução do Linux (só do kernel), tendo por base a
versão 2.6, se fossem usados parâmetros de desenvolvimento
utilizados para desenvolver produtos comerciais proprietários.

Para contextualizar!
A catedral e o bazar
Em seu livro The Cathedral & the Bazaar, Raymond
(1998) descreve duas formas de desenvolver software.
A primeira, denominada forma catedral, supõe que
um software só deve ser liberado para o público após
um grande trabalho de aprimoramento e correção
de bugs, realizado pelos desenvolvedores de uma
maneira fechada ao público. Em contrapartida, o
desenvolvimento denominado Bazar é bem mais
participativo, e a prática é liberar o máximo de versões
o mais cedo possível para apreciação do público. Esta
segunda forma de desenvolvimento foi o que tornou o
Linux um sucesso. Com isto, Linus Torvalds conseguiu
atrair uma grande quantidade de participantes ao
processo de desenvolvimento, aproveitando o fato de
que quanto mais usuários, mais bugs são descobertos
e relatados. Outros fatores fundamentais foram sua
capacidade de engenharia e desenvolvimento. Com a
liberação de novas versões quase que diariamente nos
estágios iniciais do projeto, a Internet foi fundamental
para atrair e manter os usuários na participação do
desenvolvimento do Linux.
(Obs.: O Linux em si é apenas o kernel, mesmo assim é
uma peça de software de enorme complexidade.)

24

software_livre.indb 24 28/06/11 10:58


Software Livre

Como visto nesta unidade, no início não havia uma distinção


do que era hardware/software. Somente com o passar do tempo
e o aumento da complexidade dos sistemas operacionais e
aplicativos é que surgiu a necessidade de tratar o software de
maneira separada. Este distanciamento levou à escrita de sistemas
operacionais que funcionavam em diferentes plataformas.
Paulatinamente, o custo do hardware caiu e o do software subiu.
Com o barateamento da eletrônica, atualmente o software é
muito mais caro do que a própria máquina.

O nascimento do PC
Em 1981, nasce o PC. A IBM tomou um passo que modificou
a relação que existia entre o custo software/hardware.
Diferentemente do que faziam as empresas de computadores da
época, alguns empregados de uma divisão da IBM lançaram mão
de componentes de “prateleira” e montaram o IBM PC. Com
uma arquitetura aberta, empresas grandes e pequenas, conhecidas
e desconhecidas, não demoraram a copiar a nova máquina. Como
naquela época o software existia apenas para vender as máquinas,
o sistema operacional para a nova máquina foi encomendado para
a desconhecida e minúscula Microsoft. Com um golpe de mestre,
a Microsoft fez a IBM assinar um contrato, estabelecendo que
cada cópia de seu PC deveria usar seu sistema operacional MS-
DOS e nenhum outro. A partir deste ponto, nasce a Microsoft,
resultado do desconhecimento do potencial que a IBM tinha
em suas mãos, lembrando que o hardware ainda era o foco das
atenções e a parte mais cara do binômio software/hardware.

Bill Gates, além de cofundador da Microsoft, também


teve um papel importante no nascimento da indústria
de software proprietário, quando veio a público
censurar a troca livre de software que faziam os
primeiros experimentadores de microcomputadores.
Este relato e outros sobre o início da era dos
microcomputadores podem ser lidos no livro
Impérios Acidentais, de Robert Cringely (1995).

Unidade 1 25

software_livre.indb 25 28/06/11 10:58


Universidade do Sul de Santa Catarina

Seção 3 – O movimento Software Livre


Com o passar do tempo, o valor relativo do software foi
aumentando, o que fez com que as empresas protegessem seus
investimentos ao produzi-lo. O que era antes passado de um
programador para outro, mesmo entre empresas diferentes,
principalmente porque o que interessava era fazer funcionar
o hardware e este era o centro das atenções, transformou-se
em diferencial competitivo para as empresas. O que era antes
produzido e compartilhado entre empresas e por estudantes e
professores em universidades passou a ser produzido em “linhas
de montagem” dentro das empresas. As universidades passaram a
perder seus pesquisadores para as empresas.

Código aberto X software livre


O Software Livre é um tipo de software de código
aberto. As duas coisas não são sinônimas. Na prática,
Software Livre é um movimento, é o tipo de software
produzido sob a licença GPL e derivadas. Já o
produto de código aberto é aquele em que existe,
à disposição do usuário, o código do produto em
linguagem de programação, de forma gratuita ou
a custos razoáveis. Estes detalhes são analisados na
unidade sobre licenças.

Perceba que este estado de coisas afetou o MIT, importante


centro de produção de novas tecnologias em computação
desde o começo da década de 1960, pois, a partir deste ponto,
seus empregados foram obrigados a assinar contratos que
os impediam de transferir para outras empresas tecnologias
desenvolvidas no MIT. A situação incomodou especialmente um
desenvolvedor - Richard Stallman.

Em um momento de frustração por não poder ter acesso ao


código de um driver para uma impressora, Stallman sentiu que a
produção de software feita de uma forma colaborativa começara a
ruir. Isto o levou a pensar em uma saída.

26

software_livre.indb 26 28/06/11 10:58


Software Livre

Em 1984, ele deixa o MIT e cria a Fundação Software Livre -


Free Software Foundation - e o movimento Software Livre. Sua
intenção era preservar o livre compartilhamento de software, e evitar
que este fosse modificado e incluído em produtos proprietários,
deixando de contribuir para sua evolução em um retorno à
comunidade. Denominada cláusula viral, Stallman imaginou uma
licença em que havendo o uso do código em um produto, seja este
modificado, ou não, este produto também tem de ter seu código
aberto. Este é um entre outros detalhes da licença GPL (General
Public License), que será estudado no capítulo sobre licenças.

Ao fundar o movimento, Stallman tinha o projeto de criar um


sistema operacional completo, partindo dos componentes do
sistema até atingir o kernel. O projeto foi batizado de GNU,
em uma brincadeira com as palavras em inglês GNU is Not
Unix. O esforço em criar e manter os aplicativos acabou por
retardar a criação do sistema operacional em si, ou kernel. Com
o desenvolvimento do Linux, houve uma integração entre um
projeto e outro, o que cancelou a necessidade de um kernel.

Até este ponto, é possível notar a existência de duas formas de


distribuição de código aberto: o estilo BSD, em que pode ser
feito quase tudo com o código; e o estilo software livre (GPL),
em que, uma vez usado o código, este contamina o produto final
e o transforma em código aberto.

Esta tensão entre as duas formas de licenciar software de


código aberto e as consequências sobre sua produção lançaram
as bases para o que viria a ser feito nesta área, da década de
1990 até o presente dia. Novas licenças foram criadas para
resolver limitações da coexistência de código aberto com código
proprietário, o que influenciou bastante o desenvolvimento do
Linux, já que este, no início de seu desenvolvimento, dependeu
de coexistir com partes proprietárias.

O que é o Kernel?

Unidade 1 27

software_livre.indb 27 28/06/11 10:58


Universidade do Sul de Santa Catarina

Um sistema operacional completo é constituído de várias


camadas. A camada com a qual o usuário interage é geralmente
denominada interface gráfica com o usuário (GUI). Esta interage
com os aplicativos, como por exemplo, um editor de textos. Já os
aplicativos, para que tenham acesso a outras partes da máquina,
como memória, teclado, discos, CPU etc, precisam de uma camada
que coordene estes, de modo que todos os aplicativos e sistemas
funcionem ao mesmo tempo. Esta camada é denominada kernel.
Trata-se da camada mais próxima ao hardware.

Analise a figura a seguir para contextualizar melhor a explicação!

Figura 1.1 – Camadas


Fonte: do autor (2008).

Quando falamos de Linux, por exemplo, estamos falando


do kernel de um sistema operacional. No universo do código
aberto, é comum termos pedaços de várias origens para montar
um sistema operacional completo. No Linux, temos todos os
aplicativos do projeto GNU, mais uma camada de interface com
o usuário, como por exemplo, Gnome ou KDE. No OS X, temos
o Mach e o FreeBSD como códigos que compõem o kernel, mais
outras camadas até a interface com o usuário, denominada Aqua.

28

software_livre.indb 28 28/06/11 10:58


Software Livre

Seção 4 – Como é produzido o software de código aberto?


O software de código aberto, antes de tudo, é um modo de
produção que tem seu foco na colaboração entre pessoas. O
advento da internet é, em grande parte, a mola impulsionadora
da produção e divulgação do software de código aberto, uma vez
que consegue juntar pessoas de empresas diferentes e dos lugares
mais distantes. O potencial da internet é enorme, pois, atingindo
milhões de pessoas, consegue “pescar” para os mais diferentes
projetos pessoas que compartilham interesses comuns. Raymond
(1998) sugere que um dos segredos do software de código aberto
é “tratar os usuários como codesenvolvedores”.

O exemplo do nascimento do servidor Apache ilustra bem


isto. Diferentemente de muitos projetos, o Apache não nasceu
da ideia de uma pessoa, mas de um grupo de usuários que
decidiu abandonar um “fornecedor” (NCSA) e partir para
o desenvolvimento de uma ferramenta que satisfizesse suas
necessidades e estivesse sob seu controle.

A maioria dos projetos recebe contribuições tanto de usuários


como de desenvolvedores. Um usuário pode participar oferecendo
sugestões ou mesmo publicando suas dúvidas em uma lista de
discussão do projeto. Com isto, os desenvolvedores, ao responder,
tentarão resolver o problema, seja elucidando algum ponto
de não entendimento do usuário ou mesmo consertando ou
implementando uma nova funcionalidade no sistema.

Desde a década de 1980, os projetos em código aberto utilizam


sistemas armazenados em servidores na web para controlar
e permitir a manutenção e participação dos programadores.
Denominados Revision Control Software, eles permitem
armazenar em um servidor as várias versões que vão sendo
criadas e permitem “voltar” a versões anteriores do software,
quando necessário. Também são armazenados a documentação e
arquivos de configuração do sistema que está sendo desenvolvido.

O Linux foi desenvolvido, inicialmente, utilizando o CVS


BitKeeper, que, posteriormente, passou a ser um produto
comercial. O CVS (Concurrent Versions System) é um exemplo de
sistema de revisão em código aberto (GPL) muito utilizado. Ele
permite que vários programadores participem do desenvolvimento

Unidade 1 29

software_livre.indb 29 28/06/11 10:58


Universidade do Sul de Santa Catarina

de um projeto ao mesmo tempo. Cada desenvolvedor copia o


projeto para si e submete suas modificações ao servidor para serem
incorporadas à versão do projeto mais recente. Periodicamente,
cada desenvolvedor deve buscar a última versão para ter uma cópia
com as modificações incorporadas de outros desenvolvedores. A
numeração das versões é criada automaticamente.

Outra forma de colaboração que tem crescido é o uso


de ferramentas de documentação, como a Wikipedia.
Voluntariamente, as pessoas escrevem a “documentação do
sistema”, baseadas no que estudaram dele e em sua prática de
uso. Esta forma de colaboração tem sido usada por empresas de
toda sorte, fazendo com que a dúvida ou o conhecimento de um
usuário seja útil ao outro. Verdadeiras bases de conhecimento sobre
produtos são criadas em torno de usuários comuns a um sistema.

WIKI
Uma wiki é uma ferramenta de colaboração.
Considerada padrão WEB 2.0, a Wikipedia (<www.
wikipedia.org>) é o maior exemplo de seu uso. Nela
é possível criar novos links para definir uma ou mais
palavras, no estilo de uma enciclopédia. Neste tipo
de ferramenta, dependendo das regras criadas,
uma colaboração é enviada na forma de um novo
texto ou de complementação ou correção de um
existente. Cada contribuição é registrada em um
histórico e pode ser revertida, caso a comunidade
ache necessário. Cada autor é, ao mesmo tempo,
moderador das contribuições. Contando com um
conjunto pequeno de ferramentas, a edição de um
texto é muito fácil. Podem ser incluídas figuras, e,
geralmente, os índices são criados automaticamente.

30

software_livre.indb 30 28/06/11 10:58


Software Livre

Seção 5 – Quem produz o software de código aberto?


Um estudo conduzido pelo Boston Consulting Group (2002)
sobre os desenvolvedores que mantinham projetos no sítio
SourgeForge concluiu que as duas maiores motivações para
desenvolver software de código aberto é por ser esta uma
atividade estimulante intelectualmente e também por aumentar
as habilidades de quem participa.

Muitas empresas contribuem com horas de trabalho de seus


funcionários, outras desenvolvem o produto sem cobrar por ele,
mas sim pelo suporte ao usuário. Este é um modelo de negócio
muito comum no desenvolvimento do software de código aberto
(adiante há mais sobre isto no livro). Isto faz com que o produto
em si seja um chamariz para atrair clientes de uma forma ou de
outra e vender consultoria sobre o uso do produto. De acordo
com Spolsky (2002), a maioria das empresas que gastam grandes
somas de dinheiro em projetos de software de código aberto estão
fazendo isto, pois se trata de uma boa estratégia para elas. Um
bom exemplo é o caso da IBM, que investe muito em software
de código aberto, especialmente em Linux. Como um todo, a
estratégia da IBM tem sido transformar-se em uma empresa que
vende serviços, muito mais na forma de consultoria, do que de
hardware. Tanto é assim que ela se desfez recentemente de sua
divisão de notebooks.

Grande parte dos desenvolvedores de software de código


aberto são profissionais de TI que doam seu trabalho voluntário
aos projetos. Isto influencia a forma com que os times de
desenvolvimento se criam e como trabalham. Como os
desenvolvedores participam tendo como base o seu interesse
no produto, o gerenciamento dos projetos é muito diferente do
praticado por empresas comerciais. Uma participação voluntária
envolve um comprometimento diferente daquele pago. Um
programador em um projeto de cunho comercial pode não estar
muito interessado no que está desenvolvendo. Já o desenvolvedor
voluntário escreve código por estar emocionalmente envolvido
com o projeto, querer que este seja o mais bem feito e por ter
orgulho do que produz.

Unidade 1 31

software_livre.indb 31 28/06/11 10:58


Universidade do Sul de Santa Catarina

Os projetos de software de código aberto tendem a liberar


as primeiras versões dos sistemas para os usuários bem cedo.
Esta prática é denominada “libere cedo e sempre” (modelo de
desenvolvimento Bazar). O consenso é que isto produz código
de melhor qualidade. Se, por um lado, os desenvolvedores criam
e testam os programas baseados no que pensam que deve ser o
sistema em uso, por outro lado, os usuários fazem uso e mau uso
deles, de maneiras inesperadas pelo desenvolvedor. Isto faz com
que o código seja testado e corrigido para atender a uma grande
parcela das expectativas de todos.

Como o código fonte está disponível e o desenvolvimento se dá


por um grande número de pessoas com diferentes perspectivas
em mente, há um ritmo muito grande de conserto de bugs e um
incremento na qualidade do software. Já o desenvolvimento de
código proprietário tende a atender padrões de mercado, em que
são implementadas funcionalidades para vencer a concorrência
em lugar do que realmente o usuário precisa.

A liberação constante de versões para absorver sugestões dos


usuários é uma das características do software de código aberto,
sendo um dos fatores de criação da comunidade. O tamanho e a
atividade de uma comunidade em torno de um projeto é um dos
aspectos a ser levado em consideração no momento de escolha de
um software de código aberto. Sítios como SourceForge e Fresh-
Meat apresentam o grau de atividade de cada projeto e o número de
participantes em seu desenvolvimento para que se possa medir isto.

Como em toda comunidade, no desenvolvimento de software


de código aberto também existem desentendimentos entre seus
participantes, demora na tomada de decisões, imaturidade de
participantes e discussões intermináveis, muitas vezes sobre
assuntos não relacionados ao projeto. Toda esta interação se dá
por meio de troca de e-mails e fóruns de discussão, mas sempre
mantendo o sentido da produção colaborativa, o centro do
desenvolvimento do código aberto.

- Leia, a seguir, a síntese da unidade, realize as atividades de


autoavaliação e aprofunde seus conhecimentos consultando o saiba mais!

32

software_livre.indb 32 28/06/11 10:58


Software Livre

Síntese

Como foi visto nesta unidade, o mundo do software tem origem,


de certa forma, no código aberto, onde os programadores
de diversas empresas colaboravam entre si para desenvolver
ferramentas que ajudavam a todos. E isto era de interesse das
fábricas de computadores, que conseguiam agregar mais valor a
eles, fazendo valer o aluguel ou a compra de um mainframe.

Mas, com o passar do tempo, o preço do hardware caiu e o do


software subiu, o que acabou por transformar a produção de
software em uma indústria, na qual a Microsoft é o expoente
máximo. Coube às universidades responderem com outra visão, a
de que a produção de software poderia ser feita por colaboração e,
mesmo assim, atingir resultados de excelência.

Neste caminho, dois projetos importantes foram concebidos:

„„ o projeto GNU, com seu desenvolvimento catedral,


criando vários componentes para um sistema operacional;

„„ o Linux, desenvolvendo um kernel por um processo de


produção revolucionário, posteriormente denominado bazar.

Na junção destes dois projetos nasceu o que hoje é denominado


GNU/Linux. Para isto, foi necessária a criação de mais um
tipo de licença, a uma que permitisse a coexistência de software
proprietário e software de código aberto.

Foi visto, também, como o software de código aberto é criado, o


que são as ferramentas de colaboração existentes e quem são os
desenvolvedores e algumas de suas motivações.

Muitos gerentes de TI inicialmente são relutantes em usar um


produto que depende de organização tão informal. Há um
sentimento de que as comunidades que produzem software de
código aberto não têm um comando hierárquico e uma estrutura
formal. Isto leva à conclusão errônea de que, saindo alguma coisa
errada, não há de quem cobrar resultados.

Unidade 1 33

software_livre.indb 33 28/06/11 10:58


Universidade do Sul de Santa Catarina

Mas contar com um desenvolvedor proprietário também não é


garantia de continuidade de um produto e de suporte imediato.
Muitos softwares são descontinuados, e o usuário se vê obrigado
a partir para soluções que, muitas vezes, envolvem custos maiores
e renovação de hardware.

Mas a produção de software de código aberto, como visto nesta


unidade, tem passado por muita evolução; e esta evolução vem
transformando-se em soluções sérias, que têm penetrado no
mundo corporativo. Parte disto advém da adoção de soluções
em código aberto por empresas líderes, como a IBM, Sun
Microsystems e a Apple.

Mesmo empresas de produção de código proprietário, como


a Microsoft, têm criado internamente produtos utilizando o
desenvolvimento comum à produção no universo do código
aberto, como ocorreu com a criação da linguagem ASP Net
(O’REILLY, 2004), em que alguns desenvolvedores criaram
um fork interno e, posteriormente, mostraram o produto ao
presidente da empresa.

O quadro 1.1 a seguir resume algumas das diferenças entre o


produto proprietário e o produto código aberto.

Comercial Open Source


Fornecedor Uma empresa A Comunidade

Desenvolvimento do produto Guiado por forças econômicas Guiado pela funcionalidade


necessária
Número limitado com Varia de pequenos a grandes
Desenvolvidores conhecimento do produto grupos de desenvolvedores
Novas funcionalidades são Novas funcionalidades são
Estabilidade incorporadas, se houver incorporadas se estas beneficiam
incentivo econômico os usuários
O usuários se agrupam em
Geralmente não se agrupam, comunidades virtuais, discutindo
Usuários contactando o fornecedor de entre si e os desenvolvidores o
forma individual futuro do produto.

Quadro 1.1 - Comparação entre produto proprietário e código aberto


Fonte: Adaptado de Duijnhouwer e Widdows (2003).

34

software_livre.indb 34 28/06/11 10:58


Software Livre

Atividades de autoavaliação
1.) Examinando o seu dia a dia, levante três exemplos de Software de
Código Aberto que você usa ou observa em uso na sua empresa.

2.) Você vai comprar um computador PC de mesa e posteriormente


uma cópia do MS-Office com Windows Vista Home Edition para esta
máquina. Faça um levantamento do custo destes componentes e veja
qual é a relação entre o custo de software/hardware.

Unidade 1 35

software_livre.indb 35 28/06/11 10:58


Universidade do Sul de Santa Catarina

Saiba mais
Para ter uma boa visão sobre a história da microcomputação, leia
o livro Impérios Acidentais: como os garotos do vale do silício
ganharam milhões, de Cringely, publicado em 1995. Além de
mostrar como muitos dos fatos se desenrolaram, também é um
livro muito divertido, pois apresenta muitas curiosidades sobre os
bastidores de todo este desenvolvimento.

Uma comunidade brasileira muito ativa em relação ao código


aberto pode ser visitada em<http://www.softwarelivreparana.
org.br/modules/news>. Esta comunidade tem forte ligação com
o governo do Paraná e tem projetos muito interessantes de
aplicação dos produtos de código aberto em todo o estado.

A revista ComputerWorld traz sempre muitas notícias sobre o


panorama nacional e internacional dos produtos de código aberto
e assuntos relacionados. Entre no site da revista e faça uma busca
utilizando “software livre” e “código aberto” como elementos de
procura.

Em <http://listas.softwarelivre.org>, estão disponíveis várias


listas de discussão sobre software livre. Vale também visitar o
sítio <http://www.softwarelivre.org/>. Este portal mantém muitas
notícias e informações sobre o tema.

A revista Linux Magazine também mantém informações com


relação a produtos de código aberto.

36

software_livre.indb 36 28/06/11 10:58

Você também pode gostar