# Software livre/Importância

O software livre exerce influência das seguintes formas:
* Como Modelo de qualidade de software
* Como Fonte de recursos, pela quantidade de produtos lançados
* Pela Presença no mercado (aplicação dos produtos e quantidade de usuários)
* Pelas Atividades de suas comunidades (aglomeração de desenvolvedores )
* Como Modelo de organização institucional voluntária.
* Como fator de incremento a diversidade.

## Sinergia

A sinergia é a forma mais complexa que se manifesta o poder do movimento de Software Livre, e retrata a evolução do software. A integração de componentes e programas sofrem dos mais diversos problemas de compatibilidade: do hardware, do sistema operacional, da linguagem de programação e das licenças, conjugando problemas técnicos e políticos.
Inicialmente o software era restrito a uma plataforma muito bem determinada. Com a evolução dos computadores, linguagens de programação, sistemas operacionais e arcabouços, o software foi pouco a pouco se desvinculando da plataforma. Isto possibilita combinar softwares de origens diversas, o que aumenta a força do software. FLOSS e a torre de Babel
Software livre implica uma certa diversificação. Na apresentação de Cristian Reis para o Forum Internacional do Software Livre, 22% dos projetos são code-forks de outros projetos de software livre. Um exemplo clássico é a família BSD: "OpenBSD is a NetBSD fork, MicroBSD was an OpenBSD fork, Dragonfly BSD is a FreeBSD 4.x fork". Hendrik Scholz faz uma apresentação no Interz0ne IV, sobre a diversidade do software citando a quantidade de "shell" e gerenciadores de janelas. Olhando na Sourceforge, encontramos 501 projetos na categoria "Text Editors".
A diversidade é o céu e o inferno do software livre. No sítio da "Freshmeat", Marius Andreiana escreve sobre o problema no editorial: "Too Much Free Software"[3]?, o qual recebe várias respostas do público. O problema faz clara analogia à "Torre de Babel": várias pessoas estão tentando construir um grande edifício, mas as pessoas falam línguas diferentes e falham pela falta de comunicação entre as pessoas. No software livre, as diversas plataformas e protocolos funcionam como línguas diferentes, que impedem a integração dos softwares.
Mas, não é só a "distância" entre os softwares e as comunidades desenvolvedoras que provocam o surgimento de novos softwares (neste caso, as distâncias correspondem às circunstâncias referentes à criação do software). A incompatibilidade entre as plataformas é uma das causas do "retrabalho". E, a diversidade de opiniões e idéias da comunidade possui estreita relação à criação do software. Essas opiniões e idéias expressam parte da importância desses softwares.
Torre de Babel na Sourceforge Sistema Operacional Projetos OS Independent (Written in an interpreted language) 25702 OS Portable (Source code to work with many OS platforms) 1886 Other 796 Apple Mac OS Classic 434 BeOS? 430 SGI IRIX 246 Project is an Operating System Kernel 87 Project is an Operating System Distribution 85 SCO 63 AmigaOS? 57 Project is OS Distribution-Specific 42 Console-based Platforms 37 MorphOS? 27 Classic 8-bit Operating Systems (Apple, Atari, etc.) 13 OpenVMS? 5 All POSIX (Linux/BSD/UNIX-like OSes?) 29618 Linux 23396 OS X (Apple Mac OS X) 3453 All BSD Platforms (FreeBSD?/NetBSD?/OpenBSD?/Apple MacOSX?) 3272 Solaris (Sun Solaris (SunOS?)) 2155 FreeBSD? 1586 OpenBSD? 354 HP-UX 283 IBM AIX 231 NetBSD? 225 GNU Hurd 85 BSD/OS 82 All 32-bit MS Windows (95/98/NT/2000/XP) 20635 32-bit MS Windows (NT/2000/XP) 6554 32-bit MS Windows (95/98) 6480 WinXP? (Microsoft Windows XP) 5823 Win2K (Microsoft Windows 2000) 5410 MS-DOS (Microsoft MS-DOS) 624 Microsoft Windows Server 2003 197 IBM OS/2 159 Win98 (Microsoft Windows 98) 126 WinNT? (Microsoft Windows NT) 95 WinME? (Microsoft Windows ME) 77 Microsoft Windows 3.x 46 Win95 (Microsoft Windows 95) 32

## Sistemas Operacionais

Os sistemas operacionais estão nas raízes do movimento do software livre e de código-aberto. O livro "The Daemon, the GNU and the Penguin" do Dr. Peter H. Salus evidencia a importância do Unix na cultura hacker e por conseqüência o movimento de "software livre". O Unix serviu de inspiração para diversos outros sistemas operacionais, por sua capacidade de comunicação e por sua "superioridade evolutiva" ("The Unix-Haters Handbook" publicado pela IDG Books compara o Unix com um vírus: pequeno, portátil e de rápida mutação). A forma com que foi divulgado segue a idéia primal do software livre: transferência de conhecimento, cooperação, adaptação e redistribuição. Bill Joy, co-fundador da Sun Microsystems diz que a Sun tem suas raízes na distribuição UNIX BSD [7]? que foi lançado por sob uma das primeiras licenças de código-aberto. No ManifestoGNU?, Richard Stallman fala sobre sua intenção de criar um completo sistema operacional compatível com o Unix. Também são estes sistemas operacionais as bases para campanhas de adoção do software livre dada sua importância num sistema de computadores (Sem um sistema operacional, o uso do hardware de um computador não seria "proveitoso"[5]?) .
Finalmente, os núcleos dos sistemas operacionais estão na lista dos projetos que aglomeram maior número de código e que recebem os maiores investimentos. De acordo com a Sun Microsystems (http://www.sun.com/software/solaris/), o Solaris é resultado de um investimento de 500 milhões de dólares. Como também o Linux seria resultado de semelhante investimento se fosse produzido no modelo tradicional.[6]?
* Linux
* OpenSolaris
* Família BSD
* Darwin
* [HURD]?

## Ferramenteiros

Um dos substratos na produção de software eventualmente é um conjunto de bibliotecas e ferramentas de desenvolvimento. Isto se dá pela modularidade da aplicação, planejada ou obtida pela refatoração . Por exemplo: o commons-validator do projeto Jakarta da fundação Apache é resultado de uma refatoração do arcabouço Struts. Já o GTK+ é um conjunto de bibliotecas desenvolvidas para a produção do Gimp (de fato, GTK significa Gimp ToolKit?).
Algumas vezes, essas ferramentas são produtos primários dos desenvolvedores. A FSF (Fundação Software livre) estava inicialmente interessada na confecção dessas ferramentas, como é possível observar no trecho abaixo do anúncio original do Projeto GNU, escrito por Richard Stallman em 1983:
"To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on-line and hardcopy documentation."
"Para começar, GNU será um Núcleo mais todos utilitários necessários para escrever e executar programas em C: editor, shell, compilador C, linker, montador, e algumas outras coisas. Depois disso, nós adicionaremos um formatador de texto, um YACC, um jogo de império, uma planilha eletrônica, e centenas de outras coisas. Nós esperamos abastecer, eventualmente, todas as coias úteis que normalmente vêm com um sistema Unix , e qualquer outra coisa útil, incluindo documentação on-line e local."
Ainda hoje, uma das principais questões da fundação é a liberdade das ferramentas como se pode observar na preocupação de Richard Stallman, no artigo "Free But Shackled - The Java Trap" (em http://www.gnu.org/philosophy/java-trap.html).
* Free Software Foundation e o Projeto GNU
* TrollTech, QT framework e o KDE
* GNOME Foundation, GTK+ e o GNOME desktop
* [Novell e Ximian]?
* Userland
** XFree86 e X.Org Foundation
** Mozilla Foundation e o Projeto Mozilla Firefox
** OpenOffice

## Projetos de Agregação,Distribuição e Portabilidade
### Distribuições

Antes da primeira distribuição Linux, um suposto usuário Linux deveria ser algo como um especialista de UNIX, não somente conhecer quais bibliotecas e executáveis eram necessários para reinicializar o sistema com sucesso e colocá-lo em funcionamento, mas também pensar sobre detalhes de configuração e localização dos arquivos do sistema.
As distribuições Linux começam a aperecer logo depois que o primeiro Kernel do Linux foi usado por pessoas que não fossem desenvolvedores do Linux, uma vez que essas pessoas estavam mais interessadas no desenvolvimento do sistema operacional do que de programas aplicativos, interface para o usuário ou um sistema de empacotamento conveniente.
As distribuições levam aos usuários programas de seu interesse e servem como um centralizador desses recursos. Dessa forma é possível provê-los com valores adicionais tais como: aferição de interoperabilidade, aferição da segurança do sistema, disponibilidade de recursos e padronização da instalação destes.
* Debian
* Gentoo
* [FreeCD]?
* [Red Hat]?

## Projetos de Integração

* [Wine e ReactOS]?
* [MingW]?

## Arquitetura Open Source

A arquitetura da internet está fortemente relacionada aos projetos open source. A netcraft mostra que o Apache é usado em 70% dos servidores web. O acrônimo LAMP (Linux, Apache, Mysql, php/perl/python) é conhecido como uma das arquiteturas mais populares em portais Web. Empresas como Google inc. e Yahoo inc. já utilizam amplamente arquiteturas de código aberto. E as arquiteturas de código-aberto dispontam como os servidores de alta confiança e dos supercomputadores em grid.
Buscas no sítio de busca, www.google.com fornecem os seguintes resultados:
* 82.800.000 para python
* 105.000.000 para perl
* 569.000.000 para java OR jsp
* 685.000.000 para php
* 748.000.000 para asp

## LAMP

O acrônimo LAMP se refere ao conjunto de programas de software comumente usados de forma combinada para executar sítios dinâmicos Web ou servidores:
* Linux, o kernel do sistema operacional;
* Apache, o servidor Web;
* MySQL?, o sistema de gerenciamento de banco de dados (ou servidor de banco de dados);
* Perl, PHP, e/ou Python, linguagens de script.
Apesar de os criadores desses programas open source não os terem projetado para trabalharem especificamente uns com os outros, a combinação se tornou popular por causa do seu baixo custo e da onipresença de seus componentes (que se apresentam no mesmo pacote da maioria das distribuições Linux atuais). Quando usados de forma combinada representam uma pilha de soluções de tecnologias que comportam servidores de aplicação. Outras dessas pilhas são o Apple Computer's WebObjects?, o Java/J2EE e a arquitetura Microsoft's .NET.
O componente de script da pilha LAMP se origina nas interfaces Web CGI que se tornaram populares no início dos anos de 1990. Essa tecnologia permite que o usuário de um navegador Web execute um programa no servidor e assim receba tanto conteúdo dinâmico como estático. Programadores usaram linguagens de script com esses programas por causa da habilidade que têm de manipular seqüências de texto de maneira fácil e eficiente, mesmo quando elas se originam de fontes totalmente diferentes. Por essa razão, "desenvolvedores" de sistemas frequentemente se referem a esses sistemas de script como linguagens de cola.
Michael Kunze cunhou o acrônimo LAMP em um artigo para a German computing magazine em 1998 (12/98, página 230). O artigo focava em mostrar que um pacote de software livre poderia fornecer uma alternativa viável para substituir pacotes comerciais. Sabendo do gosto que o mundo de TI tem por acrônimos, Kunze criou LAMP como um termo de marketing para popularizar o uso do software livre. O'Reilly e MySQL? AB popularizaram o termo entre os falantes da língua inglesa. De fato, MySQL? AB tem desde então baseado alguns dos seus esforços de marketing na popularidade da pilha LAMP.
* Apache Foundation
* [Bancos de dados]? (MySQL?, Postgree)
* Scprits (Perl Foundation/ PHP/ Python)

## Java

Java ganhou enorme popularidade desde de sua primeira aparição. Sua rápida ascenção e larga aceitação podem ser apontados por ses design e caracterísitcas, particularmente na promessa que você pode escrever um programa uma vez e executá-lo em qualquer lugar. Java foi escolhido como a linguagem para redes de computadores e foi recebido como um "front end" para banco de dados empresariais. Como citado pela Sun Microsystems: "Java é simples, orientado a objetos, distribuído, interpretado, robusto, seguro, portável, dinâmico, com tratamento nativo de múltiplas linhas de execução e arquitetura neutra.
De acordo com o artigo de Mark Stone na NewsForge?, a adoção de Java pela comunidade "Open Source" deve-se a três motivos de caráter pragmáticos:
* Crescimento do Mercado
* Penetração do Mercado
* Previsão do Mercado
"The open source code that is written in a language is often more important than the open source status of the language itself."
De fato, a plataforma Java tem recebido volumosas contribuições de empresas de midleware, tais como a IBM, BEA e a própria SUN. Como uma linguagem voltada para o mercado empresarial, a linguagem Java é apoiada pelo principais fornecedores de banco de Dados (Oracle,. Sybase), bem como forncedores de arquiteturas de servidores (como a Red Hat). Refletindo essa recepção do mercado, a linguagem Java é a mais utilizado entre os projetos da Sourceforge (seguido de perto pelas linguagens C++ e C). Language Projects Java 16796 C++ 16767 C 15969 PHP 12228 Perl 6221 Python 4552 C# 2905 JavaScript? 2797 Visual Basic 2195
* [Java Comunity Process]?
* Projeto Jakarta
* JBoss Corp., JBoss AS e Hibernate
* Eclipse

## Referências

Colisão do Nexenta com o Debian United We Stand [Not]?? - Steve Holden http://www.artima.com/weblogs/viewpost.jsp?thread=7351 Cristian Reis - Torre de Babel http://www.async.com.br/~kiko/FISL2003/babel/0.html Marius Andreiana, "Too Much Free Software" - Editorials (freshmeat) http://freshmeat.net/articles/view/774/ Silberchartz , Sistemas Operacionais - Conceitos Robin Cover, Sun Releases Solaris Operating System and 1600 Patents under CDDL Open Source License. http://xml.coverpages.org/ni2005-01-27-a.html