Python per tutti

1,339 views

Published on

Talk divulgativo sul linguaggio di programmazione Python

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

No Downloads
Views
Total views
1,339
On SlideShare
0
From Embeds
0
Number of Embeds
147
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

×