“Guiando os primeiros para iniciar o
desenvolvimento no ambiente Linux”




       Jorge Pereira                          ...
# Licença




            2
# who i'am?

       Meu nome é Jorge Pereira, tive meu primeiro
contato com o Linux por volta de 1996, trabalhando
durante...
# Objetivos
   Apresentar ao profissional ou estudante acostumado
a programar em ambiente Windows ou qualquer outro
ambien...
# Agenda

 Primeiros Passos
 A Cultura Windows x Linux
 Linguagens Suportadas
 Ferramentas
 Aplicações Gráficas
 Per...
# Primeiros Passos




                     6
# Primeiros Passos

 • Possuir o Linux instalado na máquina.
 • Conhecer o básico sobre o sistema.
 • Entender o básico so...
# Primeiros Passos / Vantagens
• Custo Zero.
• Open Source.
• Bugs podem ser consertados por qualquer pessoa.
• Maior flex...
# A Cultura Windows x Linux




                              9
# A Cultura Windows x Linux
• Como o SO fornecia apenas componentes de baixo
nível (e nenhuma ferramenta de apoio ao
desen...
# A Cultura Windows x Linux

• Pior, frequentemente uma nova versão do mesmo IDE
é incompatível com aplicações desenvolvid...
# A Cultura Windows x Linux



      E a cultura Linux?




                              12
# Linguagens Suportadas




                          13
# Linguagens Suportadas
 • C/C++
 • Python
 • Perl
 • PHP
 • Ruby
 • Java
 • Cobol
 • Fortran
 • Pascal
 • Lua
 • ...
    ...
# Linguagens Suportadas
 • C no Linux a linguagem de programação nativa é
 “C”, sua API padrão chama-se “Glibc – GNU
 Libr...
# Ferramentas




                16
# Ferramentas
 O Linux inclui o conjunto de ferramentas de
 desenvolvimento.
 • Editores vim e Emacs
 • Compilador cross-c...
# Ferramentas / Vim




                      18
# Ferramentas / Emacs




                        19
# Ferramentas / GCC   (GNU Compiler
Collection)




                                      20
# Ferramentas / Linkeditor




                             21
# Ferramentas / GDB




                      22
# Ferramentas / Builder




                          23
# Ferramentas / CVS




                      24
# Aplicações Gráficas




                        25
# Aplicações Gráficas
• O Linux dispõe de vários componentes para
desenvolvimento de aplicativos gráficos, também
conhecid...
# Aplicações Gráficas / GTK
• O GTK+ nasceu como um toolkit alternativo para o X
Window System no desenvolvimento do GIMP,...
# Aplicações Gráficas / GTK
• O GTK+ foi desenvolvido em ANSI C, embora
baseado em um projeto orientado a objetos
• Assim ...
# Aplicações Gráficas / GTK
• O GTK e um projeto bastante estável e rico de componentes
gráficos para desenvolvimento de a...
# Aplicações Gráficas / GTK
• Abaixo segue uma imagem da arquitetura de um
programa utilizando GTK.




                  ...
# Aplicações Gráficas / GTK




              “Exemplo de código GTK feito em C”
                                         ...
# Aplicações Gráficas / Complicado?
 • A o código aparentemente complicado, cheio de
 ponteiros, casts, e funções com nome...
# Aplicações Gráficas / Complicado?


 Em seguida, um exemplo do mesmo código sendo
feito em PHP com suporte a GTK, chamad...
# Aplicações Gráficas / GTK




                                                 34
           “Exemplo de código GTK feit...
# Aplicações Gráficas / GTK

GTK com as facilidades do desenvolvimento
                  Visual.




                     ...
# Aplicações Gráficas / GTK / Glade
 • Proposta de desenvolvimento visual diferente dos IDEs do
 mundo Windows.
 • O GTK+ ...
# Aplicações Gráficas / GTK / Glade




                                      37
# Aplicações Gráficas / GTK / Glade
 • Ele não é um IDE estilo Delphi ou VB, é apenas uma
 IDE utilizada para desenhar jan...
# Aplicações Gráficas / GTK / Ambiente
• Glade (desenhar formulários)
• Emacs, SciTE, Moleskine, Ajuta (editor de programa...
# Aplicações Gráficas / GTK / Ambiente

      Anjuta é um Ambiente de Desenvolvimento
Integrado para C e C++ em GNU/Linux....
# Aplicações Gráficas / GTK / Anjuta




                                       41
# Aplicações Gráficas / DevHelp
       E possível obter ajuda sobre diversas API,
inclusive o GTK através do próprio Linux...
# Aplicações Gráficas / DevHelp




                                  43
# Aplicações Gráficas / DevHelp




                                  44
# Perguntas?




               45
# Referências     • Sobre o Glade
                  www.glade.org
• Sobre o Gimp
www.gimp.org      wingtk.sourceforge.net
...
# Referências
• PHP                    • Fernando Lozano
www.php.net              www.lozano.eti.br
pear.php.net
         ...
# Se vira nos 30
   Demonstração de um projeto feito no Glade!
          será que da tempo?!?!? :P

    Projeto: “$PWD/GTK...
Obrigado! ;)

<jorge@jorgepereira.com.br>
  www.jorgepereira.com.br     49
Upcoming SlideShare
Loading in …5
×

ESLPE 2008 - Desenvolvendo aplicações no Linux

1,769
-1

Published on

Autor, Jorge Pereira

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,769
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
41
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×