Experiencias de um desenvolvedor de software livre (2005)

1.684 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.684
No SlideShare
0
A partir de incorporações
0
Número de incorporações
933
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Experiencias de um desenvolvedor de software livre (2005)

  1. 1. Propósitos ● Divagar um pouco sobre a história do Unix/Linux; ● Falar sobre o conceito de Software Livre; ● Mostrar através das casos práticos, como se faz software livre; ● Mostrar a trajetória de um software livre através de exemplos; ● Como divulgar um projeto em software livre; ● Modelos de Negócio; ● Algumas estatísticas; pablo@php.net 2
  2. 2. O que é Software Livre ? Software Livre é qualquer programa de computador que ofereça: 1) A liberdade de executar o software, para qualquer uso; 2) A liberdade de estudar o funcionamento de um programa e de adaptá­lo  às suas necessidades; 3) A liberdade de redistribuir cópias; 4) A liberdade de melhorar o programa e de tornar as modificações públicas  de modo que a comunidade inteira beneficie da melhoria. Richard Stallman pablo@php.net 3
  3. 3. Sistema Operacional ● O Maior Software Livre do mundo é um Sistema Operacional; ● Conjunto de ferramentas para que o computador possa ser utilizado; ● ● Composto por um núcleo (conhecido como kernel) e um conjunto de  softwares básicos e aplicativos (sistema de arquivos, editores de texto,  manipuladores de imagem, ferramentas de áudio/vídeo, ferramentas de  programação, etc); Hoje os mais utilizados são: – – – Windows (Microsoft); GNU Linux (Comunidade); Mac OS (Apple); pablo@php.net 4
  4. 4. Hackers ● O Linux é desenvolvido por hackers; ● Pessoas que criam ou modificam programas de computador; ● Geralmente pessoas habilidosas em programação ou segurança; ● ● ● Termo originário da era da idade média, época dos artesãos. Indica um  especialista em determinada área; Em geral, pessoas obstinadas em resolver problemas computacionais; Não confundir com crackers (pessoas que utilizam seu pouco conhecimento  para praticar atos ilegais); pablo@php.net 5
  5. 5. O Início ● ● ● ● ● A termo hacker remonta à 1961 ano que o MIT adquire o primeiro PDP­1  (DEC), desenvolvendo uma série de softwares para ele; Naquela época os softwares eram todos escritos em assembly para tirar o  máximo de performance da máquina; 1969 foi o primeiro ano da ARPANET, basicamente formada de computadores  PDP­10 (DEC); O MIT rejeitou o software da DEC e desenvolveu seu próprio sistema multi­ tarefa, chamado ITS (assembly); No mesmo ano, na Bell Labs, Ken Tompson vinha trabalhando em sistema  multi­tarefa, chamado multics (assemby); pablo@php.net 6
  6. 6. pablo@php.net 7
  7. 7. Unix ● Multics não deu certo comercialmente, era um elefante branco; ● Ken Tompson pegou algumas idéias e seguiu em frente (PDP­7); ● ● ● No mesmo período, seu colega Dennis Ritchie havia iniciado o  desenvolvimento de uma nova linguagem, chamada C, criada para ser flexível,  portável e fácil de utilizar; Escrevendo um S.O. em C, possibilitaria rodar o SW em diferentes HW sem a  necessidade de reescrevê­lo a cada vez; A flexibilidade e portabilidade fizeram os dois se tornarem populares; Uma  legião hacker se formou nas universidades ligadas à ARPANET; Em 1975  haviam 100 sites; Época de intercâmbio; pablo@php.net 8
  8. 8. Enquanto isto... ● ● ● ● ● ● Steve Jobs funda a Apple, para desenvolver seu projeto de micro­computador  Macintosh; Em 1979 no laboratório Palo Alto da Xerox, desenvolve­se os primeiros  conceitos de interface gráfica (ícones, janelas, etc...); 1979, Steve Jobs conheceu os Laboratórios da Xerox, em uma visita onde  aprendeu muito... Em 1981, a Microsoft (Bill Gates) fecham um acordo de “cooperação” com a  Apple, para desenvolver aplicativos para o Macintosh; 1984, Apple Computer lança Macintosh, micro­computador que revolucionou a  computação pessoal, com ótima “interface gráfica”; 1985, Microsoft Lançou o Windows 1.0, baseado no MS­DOS; pablo@php.net 9
  9. 9. pablo@php.net 10
  10. 10. X Window ● ● ● ● Houve várias tentativas de adicionar recursos gráficos ao Unix; A principal foi o X Window System, desenvolvido no MIT por diversos hackers  (1984); Várias outras tentativas comerciais foram feitas (Sun), mas o X prevaleceu; O X Window System prevaleceu sobre os outros porque os hackers que o  desenvolveram preferiram liberar seu código de forma livre; pablo@php.net 11
  11. 11. Free Software Foundation ● ● ● ● Unix se tornou o sistema preferido dos hackers; Um deles, Richard Stallman (o mais fanático), revoltado com o novo modelo de  negócios da indústria de software de comercializar os programas no formato  fechado e principalmente da falta da possibilidade de corrigir estes programas,  fundou a free software foundation a partir de 1982 e se dedicou a criar softwares  livres; Em 1982, ele começou a construção de um clone completo do Unix, escrito em C  e disponível livremente, chamado GNU; Free software foundation já desenvolveu inúmeras feramentas, como  compiladores C, C++, assembler, lisp, java, editores, shell, bibliotecas de  desenvolvimento, dentre vários outros; pablo@php.net 12
  12. 12. Linux ● ● ● ● Várias distribuições de Unix comerciais surgiram (AT&T, Berkeley, Sun, HP­UP,  IBM­AIX etc); Unixes comerciais eram caros  para uso pessoal e não vinham com ferramentas  de desenvolvimento; Os fornecedores de Unix ficaram tão cegos ao mercado que o Windows tomou­ lhes a dianteira; Muitos pensavem ser o fim do Unix; Em 1991, um estudante de Helsinki chamado Linus Torvalds iniciou o  desenvolvimento de um kernel Unix para máquinas 386, usando as ferramentas  da Free Software Foundation e o Minix de Andrew Tanembaum como base,  conseguindo atrair a ajuda de muitos hackers pela internet; pablo@php.net 13
  13. 13. Linux... ● ● ● ● ● A principal característica do sucesso do Linux foi social e não técnica. Apesar  de inferior ao Unixes da época, conseguiu agregar muitas pessoas no  desenvolvimento; A década de 90 viu a explosão da internet e conexões acessíveis à todos por  um baixo custo; Essa conectividade ajudou a aceleração do desenvolvimento, que se deu em  um ambiente descentralizado sobre uma plataforma de internet; O Linux é um sistema construído para redes desde o início; Em 1993, Linux já estava bastante estável e começou a atrair portes de  aplicações comerciais; pablo@php.net 15
  14. 14. Hoje se desenvolve software de forma colaborativa. pablo@php.net 17
  15. 15. pablo@php.net 18
  16. 16. Mas sobre o que é a palestra ? ● ● ● ● ● ● ● ● ● Desenvolvedor de Software Proprietário; Software House; Clipper (1994); [Nantucket Software – 1984] PC 386 SX25 Mhz – 8Mb;  => Hoje * 100 (+ 50% ao ano) Sistema Operacional MS­DOS 5.0; O mesmo programador tinha de possuir todas as visões (Interface, Banco,  Lógica); Programa constituído de módulos; Hoje (analista de negócio, engenheiro de requisitos, projetista, DBA,  desenvolvedor, testador, etc...); Programa constituído de objetos; pablo@php.net 19
  17. 17. Como funcionava ? ● ● ● ● ● ● ● ● Desenvolvimento Isolado; Uso de material de referência (livros, guias, manuais); Pouquíssima interação com outros desenvolvedores; Internet em crescimento (linha discada 14400 kbps) – sem notícias do esporte,  sem piadas, sem orkut, sem google, sem material para análise, sem ICQ e  afins... Hoje ADSL (20 x mais rápida); Um erro podia demorar horas ou dias para ser corrigido; Tu, Deus, o computador e o guia de referência rápida; O CPD era o limite; pablo@php.net 20
  18. 18. O que se fazia ? ● Desenvolvemos uma série de aplicativos: – Automação comercial; – Administração de Escolas; – Automação de Bibliotecas; – Aprendizado de Digitação; – Bibliotecas para desenho de janelas; – Bibliotecas para gravação de dados em rede (travamento de registros); – Rotinas de Backup; – Editor de Textos; – Calculadora; 7 anos de trabalho pablo@php.net 21
  19. 19. O que aconteceu ? ● ● ● ● ● ● ● ● ● Clipper descontinuado pela Computer Associates; O que fazer com os programas ? Graças a comunidade, hackers recriaram o compilador clipper sob a forma de  software livre; Hoje, códigos em clipper rodam em Linux graças à estas iniciativas da Comunidade  (projetos harbour e clip); Novos recursos são adicionados à estas linguagens (suporte SQL); E se o projeto parar ? Tecnologias impostas mercado X Livres; Códigos em object pascal rodam em Linux graças à iniciativas da comunidade  (lazarus, free pascal compiler); Vantagem: Contato Pessoal, continuidade da iniciativa; pablo@php.net 22
  20. 20. Mudança para Valer ● ● ● ● ● Até 1999, a Univates pagava preço alto com seus sistemas saindo fora do  ar à todo momento; Em 1999, a Univates (Lajeado), toma uma decisão radical de mudar todos  seus sistemas proprietários com problemas por Softwares Livres; Motivo: Plataforma proprietária instável, redução de custos, planejamento  de longo prazo; Aposta em novas tecnologias livres (PHP3, PostgreSQL6); Aumento da equipe de desenvolvimento de software, investimento em  recursos humanos (locais), aprendizado de novas tecnologias; pablo@php.net 24
  21. 21. 1° Sistema Gestão Acadêmica ● ● ● ● ● ● ● ● ● Não conhecíamos PHP !! Pressão do tempo; Contratação de um consultor Externo; Aprenda PHP em apenas 2 semanas; Primeiro módulo, Vestibular (inscrição, classificação) 2 meses; Módulo Acadêmico (matrícula, histórico), primeiros 6 meses; Módulo Financeiro (boletos, relatórios), até o final do primeiro ano; Em menos de um ano, migramos o sistema todo; Prova de que software livre é uma boa escolha; pablo@php.net 25
  22. 22. pablo@php.net 26
  23. 23. E o que aconteceu ? ● O SAGU disponibilizado na Internet; ● Interesse muito grande por parte de outras instituições acadêmicas no Brasil; ● Sistemas similares custam em torno de R$ 100 mil; ● Equipe do CPD da Univates, viajando pelo Brasil (Rio Grande do Norte,  Espírito Santo, Minas Gerais, São Paulo, Pernambuco, Roraima, Mato Grosso,  etc); pablo@php.net 27
  24. 24. 2° Sistema Gestão Bibliotecas ● A biblioteca da Univates utilizava uma plataforma proprietária gratuita da Unesco  (ISIS); ● O sistema estava parado no tempo, não havia como adicionar novos recursos; ● Sistemas similares custam em torno de R$10 ­ R$ 500 mil; ● Desenvolvido com PHP4 e PostgreSQL7; ● Divulgado como software livre; ● Demanda muito grande também por parte de outras insituições (UFJF, Unicruz,  ESMP, IEI, SEDUC, TRT­DF, ITAIPU); pablo@php.net 28
  25. 25. pablo@php.net 29
  26. 26. Modelo de Negócios ● Negócio baseado em prestação de serviços ao invés do licenciamento; ● Implantação de Sistemas, Treinamentos, Consultoria, Suporte Contínuo; ● O Software é livre mas o serviço é pago; ● O Conhecimento leva muitos anos para ser desenvolvido; ● É vantagem para o cliente: – Certeza da continuidade; – Maior percepção do retorno; – Maior confiabilidade; pablo@php.net 30
  27. 27. PH pablo@php.net 31
  28. 28. Desafios enfrentados... ● ● ● ● ● ● Necessidade de uma interface Cliente, atrás do Balcão de Empréstimos, com  teclas de atalho (emprestar, devolver), com a leitura de dispositivos seriais e  paralelos (código de barras, carteirinha); Desenvolver em C ? Desenvolver em Java ? Curva de aprendizado acentuada e nenhum aproveitamento do código já  desenvolvido para Web; Em 2001, surge o PHP­GTK (2001), versão 0.0.1, apostamos !! Projeto desenvolvido de forma livre por uma pessoa; Sistema rodando de forma estável em máquinas Pentium 133, com 32Mb RAM  desde 2001; pablo@php.net 32
  29. 29. GTK pablo@php.net 33
  30. 30. pablo@php.net 34
  31. 31. Aplicações Web ● Dirigida à requisição de páginas; ● Execução procedural; ● Total integração com o servidor; Aplicações client-side ● ● ● Dirigidas à eventos; O programador cria a interface, e esta aguarda por eventos ou sinais; Tem acesso aos recursos da máquina cliente, além do servidor; pablo@php.net 35
  32. 32. PHP-GTK pablo@php.net 36
  33. 33. E o que mais podemos fazer ? ● ● ● ● ● ● ● ● Utilizar software livre gera uma vontade de retribuir de alguma forma; PHP­GTK precisava de documentação, então vamos colaborar !! PHP­GTK é muito simples e flexível, o que mais podemos fazer ? Relatórios em PHP levavam horas... Que tal uma ferramenta para geração de relatórios ? Licensa proprietária na faixa de U$10 mil; Daí então surge o Agata Report; Mas a pedra era uma Ametista... pablo@php.net 37
  34. 34. pablo@php.net 38
  35. 35. pablo@php.net 39
  36. 36. Version 1 (12 Kb) – 23-10-2001 - PostgreSQL; - English; Version 2 (100 Kb) 24-01-2002 - Pear::DB (Postgresql, Mysql, Interbase, MS-Sql and Informix; - Pt, En, Fr, De, It, Se; - Export Ps; - Export Txt; - Mesclar para documento; Version 3 (1 Mb) 18-04-2002 - Suporte a temas; - Geração de etiquetas; - Geração de diagramas; - Importar DBF; - Geração de gráficos; - IBM DB2 Suport; Version 5 (2 Mb) 07-04-2003 - Export as HTML; - Export as CSV; - Export as PDF; - Export as XML; - Nicknames (tables, fields); - Tabelas de famílias; - Link automático; - Repositório; - AgataAPI; Version 6 (3 Mb) 01-01-2004 - Cruzamento de Bancos de Dados; - Repositório de Funções - Melhoramentos na API; - Melhoramentos na conexão ODBC; - Geração de Documentos em OpenOffice; Version 4 (1.1 Mb) 22-10-2002 - Redesenhado, novo layout; - Subtotais por grupo e grande total; - Parâmetros run-time; - Suporte a Espanhol; - Oracle Suport; - Select Description; pablo@php.net 40
  37. 37. O que catapultou o projeto ? As vezes não é necessário re­inventar a roda; Softwares Livres: ● PEAR::DB (conecção ao Banco de Dados); ● FPDF (geração de PDF); ● PHPDocWriter (geração de Documentos OpenOffice); ● JPGraph (Geração de Gráficos); pablo@php.net 41
  38. 38. Quem contribuiu ? ● ● ● ● ● ● ● ● ● ● ● ● Bruno Depero (Interbase, Informix, italiano); Jeffrey Buchbinder (correção wrap); Thomas Sprietersbach (tradução Alemão); Luciano Stein (MSSQL); Mike Crowse (EUA, patches); Laurent Patureaux (french); Lucas di Pentima (spanish); Brad MacCrorey (americano); Christian Etuy (frances); Dagles Fernandes (Oracle schemas); Jose Redondo (access bugfix); Eduardo Fernandes (sql server tests); pablo@php.net 42
  39. 39. Tipo de contribuição ? ● Traduções (Escrevam o projeto em Inglês); ● Testes com Bancos de Dados comerciais; ● Sugestões de usabilidade; ● Sugestões de tecnologia; ● Patches e Bugfixes; pablo@php.net 43
  40. 40. Habilidades desenvolvidas ● Moderador (controlar fluxo de mensagens); ● Saber aceitar/rejeitar contribuições; ● Saber delegar; ● ● Transmitir a postura e a responsabilidade de um líder para a comunidade (!  radical, ! infantil, ! parcial); Do outro lado pode estar um garoto de 10 anos tentando aprender  programação ou um presidentes de uma grande corporação, Líderes de TI de  instituições governamentais; pablo@php.net 44
  41. 41. Alguns Usos ● ● ● ● ● ● ● ● ● ● FreeMed (Europa); Ministério da Saúde; RadioBrás; Tyger (CRM) ­ EUA; Carvalhaes; UNIVATES, UNICRUZ, UNEMAT; Tribunal Contas – DF; Casa da Moeda; Dezenas de Software Houses ao redor do País e do Mundo; Governos de outros países; pablo@php.net 45
  42. 42. Estatísticas ● 200 Downloads por dia; ● 33 % para Linux; ● 66 % para Windows; ● 33 % Página do Brasil; ● 66 % Página em Inglês; ● 70 mil linhas de código (30 mil próprias); ● 80 classes (~40 próprias); pablo@php.net 46
  43. 43. pablo@php.net 47
  44. 44. software feito sob medida... ● ● ● ● Certo dia, certa pessoa resolveu criar um componente para edição de códigos em  Gtk; Eu já estava enjoado de trocar de editor (vim, emacs, kisso, gaquilo) e não me  adaptar; Toda linguagem de programação tem um ambiente; Vou fazer o editor de códigos dos meus sonhos... com as teclas de atalho  mirabolantes que eu quizer :­) ● Desenvolvimento relâmpago, versão 0.1 em 1 semana; ● Reaproveitamento de classes de outros projetos (Agata); ● Contribuições: Tulip yannick ­ França (manuais e código); pablo@php.net 48
  45. 45. pablo@php.net 49
  46. 46. pablo@php.net 50
  47. 47. Onde podemos chegar ? ● ● ● Incentivar outras pessoas a  aprenderem PHP­GTK; Nem tudo no mundo se resume à  Visual Basic, Delphi e outras  interfaces clique e arraste; Escrita do primeiro livro que aborda  exclusivamente PHP­GTK no  mundo. pablo@php.net 51
  48. 48. E agora josé ? ● Como dar suporte à uma comunidade crescente ? ● Criar uma estrutura para ela se auto­gerir e ficar de coadjuvante; ● Uma andorinha só não faz verão... ● Criação da comunidade PHP­GTK Brasil; ● Repositório de aplicações; ● Repositório de artigos; ● Lista de discussões; ● Criação em Janeiro de 2003. ● Já conta com 700 membros; pablo@php.net 52
  49. 49. pablo@php.net 53
  50. 50. Estatísticas ● 79% dos projetos em SL incluem código com 2 ou mais linguagens de  programação; ● Média de linhas de código por projeto de SL é 60 mil; ● 71% dos projetos em SL começam por motivação pessoal; ● 15% tem apoio institucional; ● 75% para uso próprio; ● 65% para uso da comunidade; ● 80% dos projetos tem até 5 anos; pablo@php.net 54
  51. 51. Estatísticas ● 75% dos projetos tem até 5 membros; ● 75% dos projetos tem 1 líder; ● 62% das equipes nunca se encontraram fisicamente; ● 55% das equipes incluem algum profissional com mais de 5 anos de  experiência em engenharia de software; ● 40% dos líderes contribuem em algum outro projeto; ● 75% dos projetos tem controle de versão; ● 67% tem website e 67% mailing­list; :: Fonte Kiko – USP :: pablo@php.net 55
  52. 52. Divulgar o projeto ● www.freshmeat.net ● www.codigolivre.org.br ● www.br­linux.org; ● www.dicas­l.unicamp.br; ● www.sourceforge.net; ● www.noticiaslinux.com.br; pablo@php.net 56
  53. 53. pablo@php.net 57
  54. 54. pablo@php.net 58
  55. 55. pablo@php.net 59
  56. 56. pablo@php.net 60
  57. 57. Creative Commons ● ● Estes slides estão disponíveis sob a licença não comercial da creative commons 1.0; Você pode distribuir, copiar, exibir e realizar outros trabalhos seguindo estas condições: – – Não-Comercial: Você não pode utilizar este trabalho para propósitos comerciais; – Não derivar trabalhos: Você não pode alterar, transformar, ou construir algo sobre este trabalho. – Para todo reuso ou distribuição, você deve deixar explícito para os outros, os termos da licença deste trabalho; – ● Atribuição: Você deve dar os créditos ao autor original; Estas condições podem ser alteradas se você obter permissão do autor; O uso justo e outros direitos não são afetados pelas condições acima. pablo@php.net 61
  58. 58. Obrigado !! ● pablo@php.net ● pablo@dalloglio.net ● www.php-gtk.com.br ● www.pablo.blog.br pablo@php.net 62

×