You are on page 1of 19

Python, unlenguajedeprogramacingil

RobertoPerdomo

Python
SobrePython Caracteristicas LibreriaEstandard EnqueproyectosPuedoutilizarPython? PorqueutilizarPython? Quienesloutilizan? Casosdeestudio ComunidadesPython Queesunlenguajedeprogramacingil?

Queesunlenguajedeprogramacingil?

Interpretado

Requierenunentornoentiempodeejecucin(runtime)o unamquinavirtual.

Sintiposdedatosotiposdedatosdinmicos. Noesnecesariodeclararvariables. Sincompilacin

Unlenguajedeprogramacingilincrementa increblementelaproductividad

Lacaractersticafundamentaldelos lenguajesdeScript...

Incrementoasombroso delaproductividad

Productividad=Elnumerodeinstruccionesmquinaque puedeescribirunprogramadorporlnea

LenguajeEnsamblado Unainstruccinmquinaporlinea Lenguajesdeprogramacin 37instruccionesmquinaporlinea lenguajesdeScript Cientasdeinstruccionesmquinaporlnea

NivelesenlenguajesyProductividad
1000 LenguajesdeScript
VB,ASP

Instrucciones/Declaraciones

100

Python,Perl, Ruby,TCL Java

10

C++ C

Ensamblador

lenguajescomunes Bajoniveldetipeo Fuerte

Ninguno

De"Scripting:HigherLevelProgrammingforthe21stCentury"byJohnK.Ousterhout.

Eslavelocidaddeejecucindelprograma importante?
ProbablementePythonsea10vecesmslentoqueotros lenguajesdeprogramacin,pero...
Losprocesadoresmodernoshacenquelavelocidadde ejecucinseapocoimportante Muchasaplicacionesestnlimitadasporlavelocidaddelabase dedatosolaconexindered,noporellenguajede programacin. FcildeescribirinterfacesamdulosextensiblesdeCpara optimizaciones.

Algunoslenguajesde Programacingiles(Script)

Perl PHP Python Ruby

Python
FucreadoporGuidovanRossum,enelao1991 EsunlenguajedeprogramacinsimilaraPerl,peroconunagran capacidaddeorientacinaobjetosyunaltonivelentiposdedatos. GeneralmenteparaproducircodigoHTMLensitiosWeb.Genial paraarchivosdetexto. Tiposdedatosincluidos(listas,diccionarios). Sintaxislimpia,Extensionespoderosas.

FilosofaBaterasincluidas

Distribucinestndarincluyelibrerademdulosextensibles. Muchosotrosmdulosestndisponibles

SobrePythonCaractersticas
Lenguajeorientadoaobjetosdinmicos

LosprogramaselaboradosconPythonparecenpseudocdigo(essencillo) Soportamltiplesparadigmas: procedimientos,orientadoaobjetos,funciones. ExpandibleenC,C++,Fortran,... EscritoenportableANSIC(lamayorparte...) Correbajo: Unix(linux),Windows,Mac,Palm,VxWorks,PlayStation2,...Nokia? Jython:versinJava,traduceloscdigosPythonaJava

LalibreraestndardePython GUI strings Expresionesregulares Conectividadabasesdedatos HTTP,CGI,HTML,XML Procesamientonumrico Depurador

MssobrePython
Lenguajenatural,legible Simpleypoderoso Minimalista:todoaquelloinnecesarionohayqueescribirlo(;,{,},'\n') Muydenso:pococdigohacemucho. Soportaobjetosyestructurasdedatosdealtonivel:strings,listas, diccionarios,etc. Mltiplesnivelesdeorganizarcdigo:funciones,clases,mdulos,ypaquetes. Pythonstandardlibrary(http://www.python.org/doc/current/lib/lib.html) contieneunsinfndeclasesdeutilidades. SihayreasquesonlentassepuedenreemplazarporpluginsenCoC++, siguiendolaAPIparaextenderoempotrarPythonenunaaplicacin. Cdigointeroperable.

Paraque[No]esbuenoPython?
Pythonnoesellenguajeperfecto,noesbuenopara: Programacindebajonivel(systemprogramming),comoprogramacindedriversy kernels. Pythonesdedemasiadoaltonivel,nohaycontroldirectosobrememoriayotras tareasdebajonivel. Aplicacionesquerequierenaltacapacidaddecomputo. NohaynadamejorparaestetipodeaplicacionesqueelviejoC. Pythonesideal: Comolenguaje"pegamento"paracombinarvarioscomponentesjuntos. Parallevaracaboprototiposdesistema. Paralaelaboracindeaplicacionescliente. ParadesarrolloWebydesistemasdistribuidos(clienteservidor). Paraeldesarrollodetareascientficas,enlosquehayquesimularyprototipar rpidamente.

PorquutilizarPython
Loslenguajesgilessonmsproductivos ElcdigoPythonesmslegible ElcdigoPythonesmantenible Pythontienetiposdedatosdemuyaltonivel Eltiempodeldesarrolladoresmasimportantequeeltiempodel procesamientodelprograma.

ParaqusirvePython?
ProgramacindepginasWeb(.psp.pyCGI's)atravsdel modulomod_pythonparaApache InterfacesGrficas(Tkinter,WxPtython) Programacinmono.NET(IronPython) ProgramacinJava(Jython) Programacindejuegos(Pygame) Programacindedispositivosmviles(sistemasS60sobre Nokia)

QuienesusanPython?
Lanasa(proyectos) Google(gmail,googlegroups,motordebsqueda) Infoseek(motordebusqueda) Yahoo(mail,Yahoogroups) Disney(animaciones) IBM Philips RedHat(Instalacin,configuracinygestindepaquetesRPM)

Lecturasimportantes Libros: DiveintoPython(Chapters2to4) Python101BeginningPython Referencias: TheOfficialPythonTutorial


http://rgruet.free.fr/PQR2.3.html http://diveintopython.org/ http://www.rexx.com/~dkuhlman/python_101/python_101.html

ThePythonQuickReference

http://www.python.org/doc/current/tut/tut.html

Gracias...

You might also like