Sempre que eu ouço a frase “Fábrica de Software” meus ouvidos doem bastante. Outro dia,
conversando com algumas pessoas, havia um colega que não entendia muito bem a minha aversão por essa tal de “Fábrica de Software”. Após explicar que software é um trabalho criativo, ficou uma dúvida entre algumas pessoas. Afinal de contas, qual a diferença entre criar e fabricar?
Passeando um pouco pelo dicionário, algumas definições me chamaram um pouco a atenção:
- Criar: inventar; imaginar; dar existência a; desenvolver;
- Fabricar: executar ou fazer executar certos produtos por processos mecânicos; manufacturar; construir;
É difícil perceber a diferença? Acho que não …
Se formos na Wikipedia podemos encontrar algumas informações ainda mais relevantes. Vejamos parte do texto:
… trabalhadores manufaturam bens ou supervisionam o funcionamento de máquinas que processam um produto, transformando-o em outro. A maioria das fábricas atuais têm grandes armazéns e depósitos com equipamentos pesados, utilizados na produção da linha de montagem …
Oito anos atrás, Fowler escreveu sobre isso, explicando claramente que a parte de “fabricar” o software é geralmente uma simples task do ant ou um goal do maven ou alguma coisa no rake, etc.
Já foi falado zilhões de vezes nos foruns de tecnologia que fábrica presupõe trabalho repetitivo, fazer o mesmo produto várias vezes (você faz o mesmo software várias vezes ou quando precisa de uma cópia simplesmente faz um cp arquivo1 arquivo2?), desenvolvimento em fazes (i.e. waterfall). Portanto, não faz sentido comparar nosso trabalho com trabalho de fábrica.
O trabalho do desenvolvedor é criar o software, fazer design do código em todo o tempo, assim como
os arquitetos da contrução civil fazem no autocad, ou no bom e velho papel. A diferença é que nós temos a condição de construir (i.e fabricar) o nosso software com custo “zero”. Não precisamos de pedreiros, tijolos, vigas, argamassa, etc. Agente usa o Ant, Maven, Rake, Make ou wathever ora bolas. É tudo de graça. O resultado do trabalho deles é físico, o nosso são bits e bytes.
O erro sempre foi fazer a associação: desenvolver = construir/fabricar. A associação mais correta é desenvolver = projetar/arquitetar/desenhar.
Até a próxima …
Aqui em casa funcionou. Quando chegou o novo micro aqui em casa, eu instalei o ubuntu e falei para a minha mãe (ultra-leiga, diga-se por sinal) que era a versão nova do Windows.
Ela está usando o Ubuntu a alguns meses e está se virando super bem
A divulgação está muito boa, mas para o usuários leigos mesmo, que apenas usam o PC para coisas triviais, esses é que tem que serem tratados com carinho por nós da comunidade GNU/Linux, e não esculaxados em fóruns como eu mesmo já presenciei.
Mas nada muda o fato de que poucas distros poderosas seriam bem melhores, tanto para a divulgação quanto para o desenvolvimento do que várias distros que quase ninguem usa.
Existe um grupo de interfaces gráficas que tentam copiar ou imitar o windows. Ao meu ver é interessante para ajudar na transição de usuarios de uma plataforma para a outra, da mesma forma que o cygwin me ajuda a usar o XP sem dar ls no prompt de comando.
Porém outras interfaces seguem outras ideias, e essa é uma riqueza sensacional do mundo linux/bsd, open source em geral. Interfaces como o fluxbox, window maker, enlightenment, cada uma com um propósito diferente. Temos muitos problemas ainda pela frente e precisamos de alguns focos no mundo open-source. Um deles é a divulgação que, com tantos blogs, planets, listas e foruns acho que estamos no caminho certo, porém ainda existem iniciativas isoladas para transmitir conhecimento como as palestras do Tchelinux, as install fests, etc.
Uma hora chegaremos lá!
Ainda há programadores que, por ter aprendido algo, pensam que já nasceram sabendo, e não ajudam novos usuários, que às vezes são mal-tratados e decepcionam ainda mais com o Linux.
Espero que posssamos nos juntar para criar e desenvolver aplicativos para desktops, ou o Linux vai ficar sendo conhecido como o sistema operacional para servidores, com usuários programadores e administradores.
Re-inventar a roda é pura perda de tempo, a não ser que se tenha uma necessidade extremamente específica (o que normalmente não é o caso).
[ ]s, gc
Agora se as pessoas soubessem como é fácil resolver esse problema.
Para construir pacotes trivialmente basta usar o build service do OpenSuse, que permite empacotar para os principais formatos e distros.
http://build.opensuse.org/
Uma vez com os pacotes em mãos, juntar todos eles em uma distro com Suse Studio é razoavelmente simples.
http://studio.suse.com/
Criar distros inteiras é um esforço descomunal, custa, no mínimo, uma dúzia de engenheiros em tempo integral só para juntar os pedaços e, no final, entregar algo que não é melhor que as principais existentes.
Tonismar
kroiner.wordpress.com
A verdade porém é que 99% destas distros, e sim eu acabei de inventar este numero, terão a sorte de não ter mais que um ou dois usuários. Pois fazer uma distribuição que sobreviva ter milhares, ou até mesmo milhões de usuários é dificil e acaba por forçar o distribuidor a fazer decisões arbritárias que provavelmente irão trazer a ira de uma boa porcentagem destes usuários dos quais quem sabe um ou dois não resolvem se juntar e criar a sua própria distro e…