Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ESLPE 2008 - Desenvolvendo aplicações no Linux

2,057 views

Published on

Autor, Jorge Pereira

Published in: Technology
  • Be the first to comment

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

×