:. O Linux vai fazer os programadores morrerem de fome? :-)

 Por Carlos E. Morimoto
 http://www.guiadohardware.net
 10/02/2003


Ontem eu vi a notícia de um site no estilo "eu odeio XXXX" desenvolvido por um programador extremamente bravo com o crescimento do software livre. Aparentemente ele programa em Visual Basic (cujo código até o momento não é portável para outras plataformas) e por isso já perdeu algumas oportunidades de trabalho em empresas que estão migrando seus sistemas para o Linux.

A idéia defendida por ele é que o crescimento do Linux e dos programas GPL vai diminuir as oportunidades de trabalho para os programadores, afinal ninguém vai querer pagar pelo desenvolvimento de um programa se pode encontrar outro similar gratuíto na Web.

Já escrevi alguns artigos defendendo as vantagens do uso do Linux em empresas e também por usuários domésticos, acho que é uma boa hora para abordar também a coisa do ponto de vista dos programadores.

Para as empresas a principal vantagem é a gratuidade dos softwares e o menor custo com suporte e manutençao dos equipamentos (menos reinstalações, menos vírus, maior estabilidade, etc.). Quem trabalha em alguma empresa de médio ou grande porte, onde existe um setor de TI sabe que o custo do hardware representa apenas uma pequena parte do custo dos equipamentos. Um PC rodando Windows, Office e mais algum programa profissional como o Corel Draw por exemplo pode ter um custo ao longo de dois anos de mais de 20.000 reais! Basta fazer as contas: o hardware custa 2 ou 3 mil reais e você vai gastar mais uns 3 ou 4 mil reais com os software. A partir daí você tem um gasto permanente com manutenção, afinal micros "dão pau" e precisam ser consertados. Você pode pagar R$ 50 - 100 a hora para um consultor ou manter alguns técnicos trabalhando na empresa, mas de qualquer forma o custo é sempre muito alto.

O uso do Linux provavelmente não vai reduzir os gastos com hardware, mas permite reduzir os gastos com software e, principalmente, com o custo de manutenção dos micros. Os Linux é mais estável, existem poucos vírus para a plataforma, as alternativas de backup são mais baratas, etc. Naturalmente existem custos de treinamento, migração e assim por diante, mas a longo prazo é possível economizar muito.

Outro ponto a favor do Linux é que usando software livre você não precisa mais perder tempo auditando seus software, nem ficar sujeito aos abusos de asociações como a ABES, que representam um grande custo mesmo para quem paga por todos os softwares que utiliza. Você precisa auditar suas licensas regularmente, tem que gastar com treinamentos e softwares de proteção para evitar que os funcionários instalem softwares nas máquinas, perder tempo estudando as licensas para evitar cair em alguma armadilha e assim por diante. Mesmo práticas como clonar HDs com o sistema instalado são proibidas. Sim, isso mesmo, você não pode criar uma imagem de um sistema configurado e copiar para os outros micros usando o Ghost, mesmo que tenha licenças para todos. A EULA da Microsoft proíbe a instalação de uma mesma cópia em várias máquinas e os "consultores" da ABES vão tratar de lembra-lo disto da próxima vez que baterem na sua porta.

Para os usuários domésticos o Linux traz a possibilidade de ter acesso a um número maior de softwares, sem precisar recorrer à pirataria e sem instalar versões "gratuítas" dos programas que vêm recheadas de spywares e outras pragas. Existem vantagens também do ponto de vista da privacidade e segurança. Muitos argumentam que o Linux é difícil para os usuários leigos, mas se esquecem da situação infernal em que muitos deles vivem, tendo que conviver com vírus, kidiez fuçando nos seus arquivos e pregando peças, telas azuis, sistemas de ativação e todo tipo de abuso.

Além disso, o Linux não precisa ser necessáriamente difícil de usar, veja o caso do meu Kurumin por exemplo.

É aqui que chegamos ao caso dos programadores. Veja que as vantagens que apontei acima para empresas e usuários são focadas justamente na gratuidade da maioria dos softwares. Isto parece uma ameça para os programadores, afinal, se os softwares são gratuítos como que eles vão conseguir receber pelo seu trabalho? Vendo deste ângulo o software livre pode parecer uma espécie de socialismo, que é bonito na teoria mas é bem diferente na prática.

Mas isso é só impressão...

Em primeiro lugar, quando uma empresa paga pelo desenvolvimento de uma determinada solução, ela não está interessada em saber quanto trabalho o programador precisará trabalhar para desenvolvê-la, mas sim na utilidade que ela terá. Você pode trabalhar 10 horas para desenvolver um programa que todo mundo precisa e ficar rico vendendo-o ou pode passar anos desenvolvendo um software que ninguém quer e no final acabar abandonando o projeto sem ganhar um tostão.

A questão dos softwares gratuítos também não se limita ao Linux. Existem milhares de programas gratuítos para Windows. O Office custa mais de mil reais, enquanto o 602 é gratuíto, mas mesmo assim o Office tem mais de 90% do mercado. O simples fato de ser gratuíto não faz com que um software elimine seus concorrentes.

É aqui que chegamos na questão do software livre. A GPL permite que você utilize qualquer outro software GPL para desenvolver suas soluções mas em troca exige que você disponibilize o código fonte, incluindo suas alterações. Você não é obrigado a distribuir o software gratuitamente na Internet como muitos pensam, pode comercializá-lo apenas em CDs ou da forma que quiser, desde que distribua junto o código fonte e não impeça que os compradores façam cópias ou instalem em mais de uma máquina.

Naturalmente ninguém é obrigado a desenvolver sob a GPL. Você pode muito bem desenvolver software proprietários para Linux, BSD ou qualquer outra plataforma e comercializa-los da forma que quiser, impondo as restrições que quiser. Caso o seu software seja útil você pode encontrar um bom nicho para ele.

A grande vantagem em desenvolver sob a GPL é que o programador pode reaproveitar código de outros programas, diminuindo brutalmente o tempo de desenvolvimento de seus aplicativos. Dando uma olhada rápida no Sourceforge (http://sourceforge.net/), Freshmeat (http://freshmeat.net/) e no CodigoLivre (http://codigolivre.org.br/) você pode notar que existem projetos em quase todas as áreas e podem ser utilizandos e combinados para desenvolver de tudo, desde pequenos programas de controle de caixa até grandes projetos de distribuições completas.

Isto permite que o programador concentre seus esforços em adicionar funções e adaptar o programa às necessidades do programa e não em ficar reescrevendo todas as funções básicas a cada novo projeto. O desenvolvimento de programas GPL não se limita unicamente ao Linux, existem vários projetos também para o Windows, OS X e outras plataformas. Naturalmente, que só sabe programas em VB vai ter que estudar alguma outra linguagem, pois o VB não é muito popular entre os programadores de código aberto :-)

As linguagens mais populares são o C e C++ (usados em conjunto com alguma biblioteca gráfica, como o GTK do Gnome ou QT do KDE), PHP (para o desenvolvimento de aplicativos Web em geral, geralmente usado em conjunto com o MySQL) e, mais recentemente também o Kylix que além de ter funções muito parecida, gera código compatível com o Delphi.

Se você prefere uma linguagem visual, o Kylix/Delphi é uma boa opção. Você pode começar lendo as duas dicas escritas pelo AValle:
http://www.guiadohardware.net/linux/dicas/38.htm
http://www.guiadohardware.net/linux/dicas/42.htm

Mesmo que você queira programar em C++ não é necessário aprender a usar o Emacs, você pode utilizar o Kdevelop, um IDE gráfico e com muitos recursos que faz parte do KDE:

A pagina oficial, com o manual, tutoriais, exemplos e vários outros recursos pode ser encontrada em: http://www.kdevelop.org/

Existe um grande espírito de cooperação entre os desenvolvedores de código aberto, que facilita bastante a obtenção de informações e ajuda. Se você também contribuir com alguns projetos no seu tempo livre, ou divulgar o código de alguns de seus programas, mais portas se abrirão com o tempo. As pessoas que forem de alguma forma ajudadas pelo seu código também tenderão a ajuda-lo de alguma forma no futuro, o que os desenvolvedores chamam de karma.

Ao contrário do que pode parecer à primeira vista, participar de alguns projetos voluntários é uma excelente forma de aprendizado, sobretudo quando você estiver aprendendo uma determinada linguagem. É mais ou menos como fazer exercício, se você encontrar algum esporte que você realmente goste vai acabar fazendo mais exercício e por mais tempo e no final vai acabar tendo resultados muito melhores. Contribuindo em projetos você terá a chance de obter a ajuda de outros desenvolvedores e trabalhar no desenvolvimento de algo que goste, fazendo algo útil desde o início ao invés de ficar apenas repetindo exercícios chatos.

Mas, voltando para a discussão do aspecto profissional, existe uma cláusula na GPL que especifica que você não é obrigado a distribuir o código fonte em casos em que o software não é distribuído. Ou seja, se você for contratado para desenvolver um sistema para uma determinada empresa e ele for usado apenas dentro da mesma, não existe nenhuma necessidade de divulgar o código. Ou seja, nestes casos mantemos a vantagem de poder reutilizar código sem praticamente nenhuma desvantagem. Isso pode significar uma grande vantagem para o desenvolver, que por ter menos trabalho poderá cobrar menos e com isso conseguir mais clientes.

Mesmo que você pretenda distribuir comercialmente o seu software, existem formas de ganhar dinheiro sem desrespeitar a GPL. A alternativa mais clássica é vender seu software apenas em CD-ROM, sem a opção de download gratuíto. Isso está plenamente de acordo com a GPL, desde que você inclua os fontes dentro do CD. A desvantagem em usar a GPL nestes casos é que você não pode impedir os compradores de instalarem o CD em várias máquinas, mas você pode compensar isso com a venda de suporte, que ao contrário do software pode ser cobrado por máquina ou por hora.

Outra possibilidade é distribuir o software gratuitamente para quem quiser baixar e ganhar dinheiro vendendo planos de suporte e versões personalizadas do programa. Isto permite que você conquiste rapidamente um número bem maior de usuários e beneficie-se da propaganda boca a boca. A idéia é que por já ter uma base pronta e já conhecer bem o código, você pode adicionar novos recursos ao seu programa a um custo muito mais baixo do que qualquer programador poderia cobrar para desenvolver um aplicativo do zero.

Um exemplo de empresa que trabalha dentro desta idéia é a Namesys (http://www.namesys.com/ que desenvolve o sistema de arquivos ReiserFS, incluído na maioria das distribuições atuais. O fato do sistema ser largamente usado e reconhecido como extremamente robusto serve como uma excelente propaganda para Namesys que lucra desenvolvendo versões personalizadas do ReiserFS. Uma empresa desenvolvendo um aplicativo de banco de dados por exemplo pode pagar os desenvolvedores para cuidar da parte do sistema de arquivos a um custo muito mais baixo que teria ao desenvolver tudo do zero. Também existem vários planos de suporte, que vão desde um sistema onde se paga US$ 25,00 para ter qualquer pergunta respondida a até a possibilidade de contratar um desenvolvedor por US$ 5.000 /mes.

Você pode também usar seu projeto GPL para tornar-se mais conhecido e a partir daí conseguir clientes com mais facilidade.

As empresas não procuram programas "gratuítos" na hora de implantar seus sistemas mas sim programas que funcionam e possam ser adaptados às suas necessidades. Sistemas proprietários como o Windows e o Office perdem neste sentido pois além de caros não podem ser personalizados. A empresa é que precisa se adaptar ao programa.

Isto abre um grande nicho para programadores especializados em adaptar programas livres para para a realidade de cada cliente. Como o Linux é gratuíto, o programador pode cobrar um valor justo pelo seu trabalho e ainda assim oferecer um preço mais baixo que uma instalação clássica do Windows + Office.

Se você desenvolver um sistema em Access para ser usado em 20 máquinas por exemplo e cobrar R$ 5000 por ele, o cliente terá um custo total de quase 45.000 reais, pois terá que pagar pelas licenças do Windows e Office. Se, por outro lado você desenvolver um sistema em PHP + MySQL que rode sobre o Linux você poderia cobrar R$ 15.000 pelo trabalho e ainda assim o cliente sairia ganhando. Em outras áreas isto é chamado de "eliminar o atravessador".

Enfim, estes são apenas alguns exemplos. Existem muitas outras possibilidades a explorar. Grandes softwares comerciais apenas diminuem o espaço de trabalho dos programadores autônomos e os obrigam a cobrar cada vez menos pelo seu trabalho. O software livre é a resposta para este problema, a chance de concorrer de igual para igual com empresas como o IBM ou Microsoft na hora de conquistar clientes.




Copyright 2002 Carlos E. Morimoto, http://www.guiadohardware.net - Todos os direitos reservados