Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python per tutti

1,494 views

Published on

Talk divulgativo sul linguaggio di programmazione Python

Published in: Technology
  • Be the first to comment

Python per tutti

  1. 1. Python per Tutti PyPg – Perugia Python Local Users GroupQuesta opera è distribuita da PyPg con licenza Creative Commons Attribuzione 3.0 Unported.
  2. 2. Python per etimologisti
  3. 3. Python per etimologisti http://www.flickr.com/photos/69er/200248914/
  4. 4. Python per etimologisti Pythonesque vs Pythonic Pythons vs Pythonistas
  5. 5. Cosè Python● Linguaggio di programmazione: ● Alto livello e General purpose ● Sintassi estremamente pulita ● Multiparadigma ● Tipazione dinamica ● Embeddable ed Estensibile ● Multipiattaforma ● Diverse implementazioni del linguaggio
  6. 6. 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
  7. 7. Python per programmatori C++● Multiparadigma● Ereditarietà multipla● Sovraccarico degli operatori● Decine di librerie terze parti per applicazioni GUI, rete, database, calcolo distribuito
  8. 8. 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
  9. 9. 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 è sullalto livello
  10. 10. The Dream Language
  11. 11. 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
  12. 12. Popolarità
  13. 13. Popolarità
  14. 14. Popolarità
  15. 15. 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 sullargomento
  16. 16. 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
  17. 17. Fattori esterni● Comunità ● Python Diversity ● Local User Groups ● Conferenze● Open Source - Licenza PSFL ● Certificata OSI ● Certificata FSF ● BSD-like, molto liberale
  18. 18. 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
  19. 19. Hackability● Clean ● Facile da usare ● Facile da imparare ● Facile da leggere● Dirty
  20. 20. Programmi usa e getta● Installato di default su tutte le distribuzioni Linux e su Mac OSX● Shell interattiva
  21. 21. 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)
  22. 22. 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
  23. 23. Efficienza● Efficienza != Velocità● Profilers (cProfile, profile)● Threads● Multiprocess
  24. 24. 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
  25. 25. Evoluzione agile● Python Enhancement Proposal (PEP)
  26. 26. 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
  27. 27. 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
  28. 28. Python per tutti● Linux, Windows, OSX, AIX● Dispositivi Embedded, Smartphones, Mac, PC, HPC● CPython, Jython, IronPython, PyPy
  29. 29. antigravityimport Massimiliano Pippi @maxpippi @pyperugia http://www.pypg.org

×