La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Beneficiándose con Python Ricardo Calixto Quesada

Presentaciones similares


Presentación del tema: "Beneficiándose con Python Ricardo Calixto Quesada"— Transcripción de la presentación:

1

2 Beneficiándose con Python Ricardo Calixto Quesada riq@coresecurity.com

3 1ra parte ● ¿Qué es Python? ● Puntos fuertes / débiles de Python ● Python como 1er o 2do lenguaje

4 ¿Qué es Python? ● Es un lenguaje de programación interpretado, interactivo y orientado a objetos. ● Es potente pero con una sintaxis clara. ● Tiene módulos, clases, excepciones, tipos de datos de alto nivel. ● Es de tipeo dinámico. ● Posee interfaces a muchas “system calls”, bibliotecas, y sistemas de ventanas. http://www.python.org

5 Interpretado, interactivo... ● Interpretado – No es compilado a “nativo” – Es compilado a “bytecode” en tiempo de ejecucion – Máquina virtual ● Interactivo ● O sea, es un lenguaje “script”

6 Orientado a Objetos ● Tiene clases ● Herencia múltiple ● Polimorfismo ● Excepciones, etc.

7 Sintaxis clara pero potente ● Sintaxis clara – Fácil de aprender – Fácil de leer – Fácil de mantener ● Muy potente – Sintaxis poderosa – TDA de alto nivel ● Diccionarios ● Listas ● Tuplas

8 Python Zen nos dice...

9 Documentación ● Excelente documentación (http://www.python.org/doc)http://www.python.org/doc – Actualizada – Completa – Tutoriales – Referencia del lenguaje – Referencia de las bibliotecas – API “C” de Python – Como se extiende, embebe ● Libros: – Python Essential Reference ● http://islab.cs.uchicago.edu/python/ http://islab.cs.uchicago.edu/python/

10 Soporte ● Es “community supported” – comp.lang.python, python-list, foros, IRC – Múltiples bibliotecas/wrappers dentro/fuera de Python: ● Gráficos: OpenGL, SDL ● Protocolos: ftp, http, smb, smtp, snmp, rpc, telnet, etc. ● Crypto: AES, 3DES, public key, hash, etc. ● Toolkits: QT/KDE, GTK/GNOME, MFC, wxWindows, TK ● DB: ODBC, DBI, postgres, mysql, oracle, etc. ● XML: DOM, SAX http://www.python-eggs.org/links.html

11 Herramientas de desarrollo ● IDE / Editores – Emacs / X-Emacs – PythonWin – IDLE – Vim / gvim – Visual Python ● Profilers ● Unit Test framework ● Documentadores

12 Desarrollo rápido ● Entre 3 a 5 veces más rapido que Java ● Entre 5 a 10 veces más rapido que C++ – “Lo que un programador Python hace en 2 meses, un programador C++ no lo termina en 1 año” Herramie ntas de desarrollo Sintaxis clara Potencia Documenta ción Desarrollo rapido Soporte

13 Velocidad de ejecución ● Python es más lento que los lenguajes “nativos” (C, C++) ● Encontrar el punto justo – En Python se puede hacer “todo” – Usar profiler para encontrar los “cuellos de botella” – Optimizar – Si no alcanza la optimización en Python “extender”

14 Python es extensible ● Es extensible – Agregar nuevos tipos de datos más complejos – Llamadas a nuevas “system calls” – Wrappers a distintas bibliotecas ● Crypto, protocolos, toolkits. – “Nativizar” por performance ● Lenguajes: – C: (http://www.swig.org)http://www.swig.org – C++: (http://www.boost.org)http://www.boost.org

15 Python es embebible ● Es embebible. – Metemos dentro de nuestra aplicación (nativa) a Python – Múltiples intépretes Python a la vez. ● ¿Cuándo embeber? – Cuando queremos extender nuestra aplicación: ● Para customizar ● Agregar funcionalidad más facilmente – Es fácil

16 Portable, multiplataforma ● Portable – Linux – Windows – FreeBSD – Solaris – Palm :-) ● Multiplataforma – “Codear una sola vez, correr en todos lados” – Aunque Muchas extensiones de 3ros son para un solo OS

17 Y más... ● Excelente para principiantes / expertos – Scripts -> estructurado -> objectos – Metaclases, generators ● Escalable – Se pueden hacer proyectos chicos / grandes ● Simple pero elegante ● Estable y maduro ● Es “pseudo-código” ejecutable ● Licencia OpenSource ● Desarrollo del lenguaje abierto – PEPs (http://www.python.org/peps/)http://www.python.org/peps/

18 Según la mitologia griega 1.Python fue una serpiente / dragón muy mala 2.Protegía el oráculo Delfos 3.Le habían vaticinado su muerte en manos de un hijo de Leto 4.Hera, que era malvada y celosa mandó a Python a matar a Leto 5.Leto justo había parido gemelos unos días antes de encontrarse con Python 6.Apolo, unos de esos gemelos, con sus flechas mató a Python 7.Y así Apolo se apoderó del oráculo de Delfos

19 2da parte ● Casos de estudio – TEG – IMPACT ● Otros proyectos que usan Python

20 Caso de estudio #1 ● Tenes Empanadas Graciela – En C (2 meses aprox) ● Anda solo en Linux + GNOME – En Python (5 días) ● Anda en Linux, Windows, Mac OS X http://teg.sf.net

21 Caso de estudio #2 ● CORE IMPACT – Kernel en C++ – Desarrollo de módulos / bibliotecas en Python http://www.corest.com/products/coreimpact

22 Otros proyectos con Python ● Google ● Yahoo Groups ● Blender (emb) (http://www.blender.org)http://www.blender.org ● mod_python (emb) (http://www.modpython.org/)http://www.modpython.org/ ● Zope (ext) (http://www.zope.org)http://www.zope.org ● Administración de AT&T ● Instalador de RedHat ● GIMP (emb) (http://www.gimp.org)http://www.gimp.org ● BitTorrent (100%) (http://bitconjurer.org/BitTorrent/)http://bitconjurer.org/BitTorrent/ ● X-Chat (emb) (http://www.xchat.org)http://www.xchat.org ● PyDance (ext) (http://icculus.org/pyddr/)http://icculus.org/pyddr/ http://www.python-in-business.org/success

23 Apolo matando a Python

24 Mitología moderna ● Python murio desangrada ● La sangre nunca se secó ● Guido van Rossum un día bebió de esa sangre ● Python se se reencarnó en Guido. ● ¿Para vengarse de Apolo ? ¿Para cuidar nuevamente el oráculo ? ¿...?

25 Fin ¿ Preguntas ?


Descargar ppt "Beneficiándose con Python Ricardo Calixto Quesada"

Presentaciones similares


Anuncios Google