Desenvolvimento RAD com Python Osvaldo Santana Neto [email_address]
Python <ul><li>Linguagem de programação orientada a objetos </li></ul><ul><li>Linguagem de alto nível </li></ul><ul><li>Di...
Orientada a objetos <ul><li>Altamente Orientada a Objetos </li></ul><ul><li>Herança (múltiplas) </li></ul><ul><li>Polimorf...
RAD <ul><li>Altamente Modularizada </li></ul><ul><li>Ampla biblioteca de Módulos </li></ul><ul><li>Interpretada </li></ul>...
Possibilidades <ul><li>Construções possíveis: </li></ul><ul><li>metodo = objeto.metodo   # métodos são objetos </li></ul><...
Módulos <ul><li>XML </li></ul><ul><ul><li>XML-RPC </li></ul></ul><ul><ul><li>SOAP </li></ul></ul><ul><li>Threads </li></ul...
Interpretada / Compilada <ul><li>Interpretada à partir dos fontes </li></ul><ul><li>Pré-compilada </li></ul><ul><li>Distri...
Python e Java  (exemplos de código) import java.util.Vector; public class ListTest { public static void main(String[] args...
Python e Java for i in xrange(1000): v=['a','b','c','d','e','f','g'] for j in xrange(1000): v.append(j) v[j]
Integração <ul><li>Integração com linguagem C/C++ </li></ul><ul><ul><li>Muito útil para resolução de problemas de desempen...
Desenvolvimento <ul><li>Desenvolvimento GUI </li></ul>import sys from Tkinter import * def main(): r = Tk() r.title(&quot;...
Ferramentas Desenvolvimento <ul><li>Glade </li></ul><ul><ul><li>Desenho de interface gráfica, gera definições XML interpre...
Desvantagens <ul><li>Falta de profissionais qualificados </li></ul><ul><li>Linguagem muito nova e pouco conhecida </li></u...
Vantagens <ul><li>Linguagem de fácil aprendizado </li></ul><ul><li>Linguagem em constante desenvolvimento, novas tecnoligi...
http://haxent.com
Próximos SlideShares
Carregando em…5
×

Desenvolvimento RAD com Python (Fenasoft)

2.578 visualizações

Publicada em

Palestra sobre Python apresentada na Fenasoft (uma das últimas edições).

Nesta época eu era sócio da Haxent. Hoje eu não sou mais e o conteúdo dessa apresentação, apesar de apresentar o nome da empresa, pode não representar mais a visão da mesma.

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

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

Nenhuma nota no slide

Desenvolvimento RAD com Python (Fenasoft)

  1. 1. Desenvolvimento RAD com Python Osvaldo Santana Neto [email_address]
  2. 2. Python <ul><li>Linguagem de programação orientada a objetos </li></ul><ul><li>Linguagem de alto nível </li></ul><ul><li>Dinamicamente tipada </li></ul><ul><li>Multiplataforma </li></ul><ul><ul><li>Windows, HP-UX, SunOS, Linux, PalmOS, Symbian, Java, entre outras </li></ul></ul><ul><li>OpenSource e licença compatível com GPL ( Free Software ) à partir de sua versão 2.0 </li></ul>
  3. 3. Orientada a objetos <ul><li>Altamente Orientada a Objetos </li></ul><ul><li>Herança (múltiplas) </li></ul><ul><li>Polimorfismo </li></ul><ul><li>Tudo é objeto: </li></ul><ul><ul><li>Classes </li></ul></ul><ul><ul><li>Instâncias </li></ul></ul><ul><ul><li>Atributos </li></ul></ul><ul><ul><li>Namespaces </li></ul></ul><ul><ul><li>Métodos </li></ul></ul><ul><ul><li>Funções (buildin ou não) </li></ul></ul>
  4. 4. RAD <ul><li>Altamente Modularizada </li></ul><ul><li>Ampla biblioteca de Módulos </li></ul><ul><li>Interpretada </li></ul><ul><li>Compilada em tempo de execução </li></ul><ul><li>Conceitos modernos de linguagens de programação </li></ul><ul><li>Sintaxe simples, clara e eficiente </li></ul>
  5. 5. Possibilidades <ul><li>Construções possíveis: </li></ul><ul><li>metodo = objeto.metodo # métodos são objetos </li></ul><ul><li>delattr(objeto, &quot;metodo&quot;) </li></ul><ul><li>if not hasattr(objeto, &quot;metodo&quot;): </li></ul><ul><li>print &quot;Oops, se foi!“ </li></ul><ul><li>if flag: MyClass = Class1 # classes são objetos </li></ul><ul><li>else: MyClass = Class2 </li></ul><ul><li>obj = MyClass() </li></ul><ul><li>if globals().has_key(&quot;zip&quot;): # namespaces são objetos </li></ul><ul><li>print &quot;A função zip existe!“ </li></ul>
  6. 6. Módulos <ul><li>XML </li></ul><ul><ul><li>XML-RPC </li></ul></ul><ul><ul><li>SOAP </li></ul></ul><ul><li>Threads </li></ul><ul><li>Unicode </li></ul><ul><li>GUI </li></ul><ul><ul><li>Windows </li></ul></ul><ul><ul><li>Mac </li></ul></ul><ul><ul><li>X (Unix/Linux) </li></ul></ul><ul><ul><li>PalmOS </li></ul></ul><ul><li>Muitos outros … </li></ul><ul><li>Banco de Dados </li></ul><ul><ul><li>Oracle </li></ul></ul><ul><ul><li>PostgreSQL </li></ul></ul><ul><ul><li>MySQL </li></ul></ul><ul><ul><li>DB/2 </li></ul></ul><ul><ul><li>OBC </li></ul></ul><ul><ul><li>outros… </li></ul></ul><ul><li>Internet </li></ul><ul><ul><li>Http </li></ul></ul><ul><ul><li>Ftp </li></ul></ul><ul><ul><li>Sockets </li></ul></ul><ul><ul><li>RPC </li></ul></ul>
  7. 7. Interpretada / Compilada <ul><li>Interpretada à partir dos fontes </li></ul><ul><li>Pré-compilada </li></ul><ul><li>Distribuição de módulos compilados </li></ul><ul><li>Ambiente interativo (testes podem ser feitos na hora) </li></ul><ul><li>Compilador para código nativo ( Ainda em desenvolvimento ) </li></ul>
  8. 8. Python e Java (exemplos de código) import java.util.Vector; public class ListTest { public static void main(String[] args) { for (int i = 0; i < 1000; i++) { Vector v = new Vector(); v.addElement(&quot;a&quot;); : for (int j = 0; j < 1000; j++) { v.addElement(new Integer(j)); v.elementAt(j); } } }
  9. 9. Python e Java for i in xrange(1000): v=['a','b','c','d','e','f','g'] for j in xrange(1000): v.append(j) v[j]
  10. 10. Integração <ul><li>Integração com linguagem C/C++ </li></ul><ul><ul><li>Muito útil para resolução de problemas de desempenho </li></ul></ul><ul><li>Integração com Java </li></ul><ul><ul><li>Muito útil para resolução de problemas de integração entre softwares </li></ul></ul>
  11. 11. Desenvolvimento <ul><li>Desenvolvimento GUI </li></ul>import sys from Tkinter import * def main(): r = Tk() r.title(&quot;Programa Python&quot;) b = Button(r) b['text'] = ' ' * 5 + 'Isto é Python!' + ' ' * 5 b['command'] = q b.pack() r.mainloop() def q(): sys.exit(0) main()
  12. 12. Ferramentas Desenvolvimento <ul><li>Glade </li></ul><ul><ul><li>Desenho de interface gráfica, gera definições XML interpretadas pelo Python em qualquer plataforma. Utiliza o widgetset GTK </li></ul></ul><ul><li>Boa-Constructor </li></ul><ul><ul><li>Interface gráfica para desenvolvimento Python. Semelhante à ferramentas como Delphi e Jbuilder da Borland </li></ul></ul>
  13. 13. Desvantagens <ul><li>Falta de profissionais qualificados </li></ul><ul><li>Linguagem muito nova e pouco conhecida </li></ul><ul><li>Não possue suporte de uma empresa do porte da Sun </li></ul><ul><li>Linguagem em desenvolvimento constante ainda sem padronização </li></ul>
  14. 14. Vantagens <ul><li>Linguagem de fácil aprendizado </li></ul><ul><li>Linguagem em constante desenvolvimento, novas tecnoligias estão sempre sendo implantadas </li></ul><ul><li>Documentação vasta, de qualidade e facilmente encontrada na Internet </li></ul><ul><li>A comunidade do Software Livre costuma ser mais eficiente que empresas </li></ul><ul><li>Por ser fácil de ser aprendida e coerente diminui a possibilidade de erros do programador. </li></ul>
  15. 15. http://haxent.com

×