ESLPE 2008 - Desenvolvendo aplicações no Linux

2.037 visualizações

Publicada em

Autor, Jorge Pereira

Publicada em: Tecnologia
  • Seja o primeiro a comentar

ESLPE 2008 - Desenvolvendo aplicações no Linux

  1. 1. “Guiando os primeiros para iniciar o desenvolvimento no ambiente Linux” Jorge Pereira 1 <jorge@jorgepereira.com.br> 23 de Abril de 2008
  2. 2. # Licença 2
  3. 3. # who i'am? Meu nome é Jorge Pereira, tive meu primeiro contato com o Linux por volta de 1996, trabalhando durante muitos anos com soluções e consultorias voltadas para sistemas OpenSource, atuando durante esses anos como desenvolvedor, sysadmin, instrutor e palestrante. Atualmente trabalhando como desenvolvedor C/C++ & Embedded Systems. 3
  4. 4. # Objetivos Apresentar ao profissional ou estudante acostumado a programar em ambiente Windows ou qualquer outro ambiente diferente do Linux, as ferramentas e possibilidades disponíveis para programação em ambiente Linux. Indicar caminhos para o desenvolvimento de aplicações multiplataforma, como preparação para uma futura migração ao Linux ou como forma de viabilizar uma rede heterogênea 4
  5. 5. # Agenda  Primeiros Passos  A Cultura Windows x Linux  Linguagens Suportadas  Ferramentas  Aplicações Gráficas  Perguntas  Se vira nos 30  Contato  Referências 5
  6. 6. # Primeiros Passos 6
  7. 7. # Primeiros Passos • Possuir o Linux instalado na máquina. • Conhecer o básico sobre o sistema. • Entender o básico sobre seu funcionamento. • Acesso a fontes de pesquisa. • Conhecimentos sobre programação. • Indicado conhecer o básico sobre licenças. • Por fim: Força de vontade. 7
  8. 8. # Primeiros Passos / Vantagens • Custo Zero. • Open Source. • Bugs podem ser consertados por qualquer pessoa. • Maior flexibilidade. • Vasta base de software. • Utilização do Linux em aplicações embarcadas. • Grandes empresas investindo na plataforma: • Motorola, Nokia, IBM, SUN, Oracle, Novell ... 8
  9. 9. # A Cultura Windows x Linux 9
  10. 10. # A Cultura Windows x Linux • Como o SO fornecia apenas componentes de baixo nível (e nenhuma ferramenta de apoio ao desenvolvimento), as IDEs tornaram-se “inchados” e incompatíveis entre si. • As dificuldades do padrão *OCX fizeram com que cada IDE fornecesse sua própria biblioteca de componentes, de modo que o programador não aproveita quase nada do seu knowhow ao mudar de IDE. * (OLE Control Extension) 10
  11. 11. # A Cultura Windows x Linux • Pior, frequentemente uma nova versão do mesmo IDE é incompatível com aplicações desenvolvidas com versões anteriores do mesmo IDE (ex: VB 4/5/6, Delphi 6/7) • O foco nos desenhadores de formulários leva a aplicações de difícil manutenção sem a ajuda dos famosos “componentes”. 11
  12. 12. # A Cultura Windows x Linux E a cultura Linux? 12
  13. 13. # Linguagens Suportadas 13
  14. 14. # Linguagens Suportadas • C/C++ • Python • Perl • PHP • Ruby • Java • Cobol • Fortran • Pascal • Lua • ... 14
  15. 15. # Linguagens Suportadas • C no Linux a linguagem de programação nativa é “C”, sua API padrão chama-se “Glibc – GNU Library C”, possuindo os principais recursos nativos abaixo: • Entrada/Saída; • Arquivos; • Rede; • Chamadas de Sistema; • Matemática; • Multi-Tarefas • ... 15
  16. 16. # Ferramentas 16
  17. 17. # Ferramentas O Linux inclui o conjunto de ferramentas de desenvolvimento. • Editores vim e Emacs • Compilador cross-compile GCC • Linkeditor dinâmico • Depurador GDB (cli), xgdb, DDD e GVD (visuais) • Diversas bibliotecas • Makefiles (Ferramentas de Build) • CVS • Man (ajuda online) • Entre outras. 17
  18. 18. # Ferramentas / Vim 18
  19. 19. # Ferramentas / Emacs 19
  20. 20. # Ferramentas / GCC (GNU Compiler Collection) 20
  21. 21. # Ferramentas / Linkeditor 21
  22. 22. # Ferramentas / GDB 22
  23. 23. # Ferramentas / Builder 23
  24. 24. # Ferramentas / CVS 24
  25. 25. # Aplicações Gráficas 25
  26. 26. # Aplicações Gráficas • O Linux dispõe de vários componentes para desenvolvimento de aplicativos gráficos, também conhecidos como “toolkits”. • Os mais famosos e o GTK, utilizado no desenvolvimento do Gnome e o QT utilizado no KDE. • Ambos os toolkits também são disponíveis para outros ambientes, inclusive o Windows e sistemas embarcados. • Grande parte dos aplicativos são desenvolvidos na linguagem C e C++, possuindo bindings para outras linguagens. 26
  27. 27. # Aplicações Gráficas / GTK • O GTK+ nasceu como um toolkit alternativo para o X Window System no desenvolvimento do GIMP, pois nenhum toolkit livre existente na época fornecia a qualidade visual e riqueza de componentes exigidos pela aplicação. • A popularidade do GIMP e as características do GTK+ o tornaram apropriado para muitas outras aplicações, e hoje ele talvez seja o toolkit mais popular para o desenvolvimento de aplicações para Linux e Unix 27
  28. 28. # Aplicações Gráficas / GTK • O GTK+ foi desenvolvido em ANSI C, embora baseado em um projeto orientado a objetos • Assim se torna fácil criar bindings do toolkit para outras linguagens, como Perl, Python, PHP, Pascal, Java, ADA, etc. • Todos esses bindings são muito semelhantes, apenas adaptados às peculiaridades de cada linguagem, de modo que o conhecimento sobre o GTK+ é preservado em uma mudança de linguagem. 28
  29. 29. # Aplicações Gráficas / GTK • O GTK e um projeto bastante estável e rico de componentes gráficos para desenvolvimento de aplicações das mais diversas, abaixo seguem alguns exemplos de aplicativos que utilizam o GTK como sendo o toolkit visual. • Gimp • Gnumeric • Mozilla • Dia • OpenOffice • MrProject • Evolution • xmms • Ethereal • Anjuta • Glade • File Roller • AbiWord • O próprio GNOME 29
  30. 30. # Aplicações Gráficas / GTK • Abaixo segue uma imagem da arquitetura de um programa utilizando GTK. 30
  31. 31. # Aplicações Gráficas / GTK “Exemplo de código GTK feito em C” 31
  32. 32. # Aplicações Gráficas / Complicado? • A o código aparentemente complicado, cheio de ponteiros, casts, e funções com nomes longos, não é conseqüência da natureza do GTK+ e sim da linguagem C, que manipula ponteiros diretamente e não implementa polimorfismo. • Linguagens com características semelhantes, como PHP, geram programas semelhantes “de uma forma menos traumatizante”. =) 32
  33. 33. # Aplicações Gráficas / Complicado? Em seguida, um exemplo do mesmo código sendo feito em PHP com suporte a GTK, chamado de “php- gtk”. 33
  34. 34. # Aplicações Gráficas / GTK 34 “Exemplo de código GTK feito em PHP-GTK”
  35. 35. # Aplicações Gráficas / GTK GTK com as facilidades do desenvolvimento Visual. 35
  36. 36. # Aplicações Gráficas / GTK / Glade • Proposta de desenvolvimento visual diferente dos IDEs do mundo Windows. • O GTK+ é independente de linguagem e de SO. • O Glade também tenta ser, apesar de oferecer recursos (opcionais) específicos para o Gnome. • Pode gerar o código das janelas em C e outras linguagens. • Mas o preferido é salvar apenas a descrição das janelas em formato XML, processado em tempo de execução pela biblioteca libGlade. • Permite modificar o layout das janelas sem recompilar. 36
  37. 37. # Aplicações Gráficas / GTK / Glade 37
  38. 38. # Aplicações Gráficas / GTK / Glade • Ele não é um IDE estilo Delphi ou VB, é apenas uma IDE utilizada para desenhar janelas. • É capaz de gerar código em C, C++, Ada, Eiffel e Perl correspondente à interface desenhada • Entretanto, via LibGlade, pode ser utilizado com qualquer outra linguagem. • IDEs como o Anjuta utilizam o Glade para fornecer Um ambiente completo de desenvolvimento 38
  39. 39. # Aplicações Gráficas / GTK / Ambiente • Glade (desenhar formulários) • Emacs, SciTE, Moleskine, Ajuta (editor de programas) • GCC, Java, Perl, Python, PHP (compilador ou interpretador) • DDD, GVD, GDB (depurador) • CVS (trabalho em equipe) • MySQL, PostgreSQL, Firebird (Banco de Dados) 39
  40. 40. # Aplicações Gráficas / GTK / Ambiente Anjuta é um Ambiente de Desenvolvimento Integrado para C e C++ em GNU/Linux. Ele foi escrito para GTK+/GNOME e suporta muitas capacidades avançadas como gerenciamento de projetos e um poderoso editor de código fonte. 40
  41. 41. # Aplicações Gráficas / GTK / Anjuta 41
  42. 42. # Aplicações Gráficas / DevHelp E possível obter ajuda sobre diversas API, inclusive o GTK através do próprio Linux, basta instalar e utilizar a ferramenta Devhelp. Pois ele possui recurso de busca e fácil acesso a descrição das API. 42
  43. 43. # Aplicações Gráficas / DevHelp 43
  44. 44. # Aplicações Gráficas / DevHelp 44
  45. 45. # Perguntas? 45
  46. 46. # Referências • Sobre o Glade www.glade.org • Sobre o Gimp www.gimp.org wingtk.sourceforge.net www.wingimp.org • GNU C • Sobre o GTK gcc.gnu.org www.gtk.org mingw.sourceforge.net • Sobre o Gnome www.gnome.org • Free Pascal www.freepascal.org 46
  47. 47. # Referências • PHP • Fernando Lozano www.php.net www.lozano.eti.br pear.php.net • CinLug • Java-Gnome (J/GTK+) www.cin.ufpe.br/~cinlug/ java-gnome.sourceforge 47
  48. 48. # Se vira nos 30 Demonstração de um projeto feito no Glade! será que da tempo?!?!? :P Projeto: “$PWD/GTK-EditorTexto-Glade/editor.glade” 48
  49. 49. Obrigado! ;) <jorge@jorgepereira.com.br> www.jorgepereira.com.br 49

×