Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python per Tutti

Python per Tutti

Avatar for Massimiliano Pippi

Massimiliano Pippi

October 29, 2011
Tweet

More Decks by Massimiliano Pippi

Other Decks in Programming

Transcript

  1. Python per Tutti PyPg – Perugia Python Local Users Group

    Questa opera è distribuita da PyPg con licenza Creative Commons Attribuzione 3.0 Unported.
  2. Cos'è Python • Linguaggio di programmazione: • Alto livello e

    General purpose • Sintassi estremamente pulita • Multiparadigma • Tipazione dinamica • Embeddable ed Estensibile • Multipiattaforma • Diverse implementazioni del linguaggio
  3. Python per programmatori Java • Linguaggio compilato in bytecode •

    In Python compilazione implicita • Tutto è un oggetto • Libreria standard vasta e potente • Garbage collection • Introspezione • Serializzazione • Threads
  4. Python per programmatori C++ • Multiparadigma • Ereditarietà multipla •

    Sovraccarico degli operatori • Decine di librerie terze parti per applicazioni GUI, rete, database, calcolo distribuito
  5. Python per programmatori C • Trust the programmer • Don’t

    prevent the programmer from doing what needs to be done. • Keep the language small and simple. • Provide only one way to do an operation. • Make it fast, even if it is not guaranteed to be portable. (oops... :-) – Keep the spirit of C, C99 Rationale
  6. Python per programmatori. • Tipazione forte ma dinamica • I

    nomi non hanno tipo, gli oggetti sì • Niente dichiarazioni – solo istruzioni • Sintassi minimale • Indentazione definisce i blocchi • Niente () se non strettamente necessario • In generale, poca punteggiatura • Tutto è un oggetto di prima classe • Funzioni, classi, metodi, moduli • Il focus è sull'alto livello
  7. Popolarità Non necessariamente un linguaggio popolare è anche buono, ma

    un linguaggio buono deve essere popolare (P.Graham). http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  8. Fattori esterni • Documentazione e libri • Documentazione ufficiale esaustiva

    ed aggiornata • Mailing lists, gruppi di discussione, canali IRC sia internazionali che localizzati • Decine di Tutorials online • Decine e decine di ottimi libri e manuali sull'argomento
  9. Fattori esterni • PSF (Python Software Foundation) • Detiene e

    protegge la IP (©, ®) di Python • Organizza la PyCon accollandosi gli oneri • Finanzia progetti degni di nota come Jython e PyPy • Partecipa alla Google Summer of Code
  10. Fattori esterni • Comunità • Python Diversity • Local User

    Groups • Conferenze • Open Source - Licenza PSFL • Certificata OSI • Certificata FSF • BSD-like, molto liberale
  11. Espressività • add x to y giving z • z=x+y

    • print 'hello, world' • print sum(x for x in range(1000) if x%3==0 or x % 5==0) • The Zen of Python: readability counts. • Executable pseudo-code
  12. Hackability • Clean • Facile da usare • Facile da

    imparare • Facile da leggere • Dirty
  13. Programmi usa e getta • Installato di default su tutte

    le distribuzioni Linux e su Mac OSX • Shell interattiva
  14. Librerie • Batterie incluse! • Standard Python Library – 190+

    moduli • math, sys, os, random, gzip, socket, select, urllib, ftplib, ... – 13+ packages • compile, ctypes, email, xml, ... • Cheeseshop – 17184 packages ad oggi (Ottobre 2011)
  15. Librerie • Batterie terze parti • GUI – PyQt, PyGTK,

    wxPython • SQL – SqlAlchemy • Calcolo scientifico & elaborazione dati – Numpy, SciPy, PIL, openCV, pyVTK, pyCUDA • Giochi – PyGame, PyGLet, PyOGRE • Web e rete – Django, Pyramid, Turbogears, Twisted
  16. Maturità • 1991: prima uscita pubblica • 1992: versione MS-DOS

    • 1994: comp.lang.python • 1996: esce “Programming Python” di M.Lutz • 1998: Zope • 2000: versione 2.0 • 2001: RMS says Yes! (licenza gpl-compatibile) • Sempre 2001: nasce la PSF • 2007: prima conferenza italiana, PyCon UNO • 2008: esce la versione 3.0
  17. Evoluzione agile • Python Enhancement Proposal (PEP) • Standard Track

    – PEP100 – Unicode integration – PEP202 – List comprehension • Informational – PEP8 – Style guidelines – PEP20 – The Zen of Python • Process – PEP3000 – Python 3k
  18. Python per tutti • Ottimo come primo linguaggio • Ragazzi

    – Python 4 kids, Snake wrangling for kids, Invent With Python • Adulti – How to Think Like a Computer Scientist – A Gentle Introduction to Programming Using Python (MIT) • Nonnetti – Artificial Intelligence: a modern approach, P.Norvig • Ottimo come ultimo linguaggio • Nel senso che non vorrete più cambiarlo
  19. Python per tutti • Linux, Windows, OSX, AIX • Dispositivi

    Embedded, Smartphones, Mac, PC, HPC • CPython, Jython, IronPython, PyPy