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
Upcoming SlideShare
Loading in...5
×

Desenvolvimento RAD com Python (Fenasoft)

1,979

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

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

No notes for 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

×