Python per tutti

masci
mascifreelance software developer at freelance, italy
Python per Tutti
          PyPg – Perugia Python Local Users Group




Questa opera è distribuita da PyPg con licenza Creative Commons Attribuzione 3.0 Unported.
Python per etimologisti
Python per etimologisti




   http://www.flickr.com/photos/69er/200248914/
Python per etimologisti




  Pythonesque vs Pythonic
   Pythons vs Pythonistas
Cos'è Python
●   Linguaggio di programmazione:
    ●   Alto livello e General purpose
    ●   Sintassi estremamente pulita
    ●   Multiparadigma
    ●   Tipazione dinamica
    ●   Embeddable ed Estensibile
    ●   Multipiattaforma
    ●   Diverse implementazioni del linguaggio
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
Python per programmatori C++
●   Multiparadigma
●   Ereditarietà multipla
●   Sovraccarico degli operatori
●   Decine di librerie terze parti per applicazioni
    GUI, rete, database, calcolo distribuito
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
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
The Dream Language
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
Popolarità
Popolarità
Popolarità
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
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
Fattori esterni
●   Comunità
    ●   Python Diversity
    ●   Local User Groups
    ●   Conferenze
●   Open Source - Licenza PSFL
    ●   Certificata OSI
    ●   Certificata FSF
    ●   BSD-like, molto liberale
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
Hackability
●   Clean
    ●   Facile da usare
    ●   Facile da imparare
    ●   Facile da leggere
●   Dirty
Programmi usa e getta
●   Installato di default su tutte le distribuzioni
    Linux e su Mac OSX
●   Shell interattiva
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)
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
Efficienza
●   Efficienza != Velocità
●   Profilers (cProfile, profile)
●   Threads
●   Multiprocess
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
Evoluzione agile
●   Python Enhancement Proposal (PEP)
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
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
Python per tutti
●   Linux, Windows, OSX, AIX
●   Dispositivi Embedded, Smartphones, Mac,
    PC, HPC
●   CPython, Jython, IronPython, PyPy
antigravity
import
            Massimiliano Pippi
            @maxpippi
            @pyperugia
            http://www.pypg.org
1 of 29

Recommended

Corso Python Base: Parte 1 - ForDataScientist 01 by
Corso Python Base: Parte 1 - ForDataScientist 01Corso Python Base: Parte 1 - ForDataScientist 01
Corso Python Base: Parte 1 - ForDataScientist 01Studiabo
403 views30 slides
Python nel primo biennio della scuola superiore by
Python nel primo biennio della scuola superiorePython nel primo biennio della scuola superiore
Python nel primo biennio della scuola superioreguestc11532
2.1K views86 slides
Pyscuola by
PyscuolaPyscuola
Pyscuolaguest2c44d2
288 views86 slides
Lab psychopy by
Lab psychopyLab psychopy
Lab psychopyDavide Massidda
1K views38 slides
Python - Primi passi by
Python - Primi passi Python - Primi passi
Python - Primi passi orestJump
607 views32 slides
Scenario reclutamento INFN al 17 Novembre 2008 by
Scenario reclutamento INFN al 17 Novembre 2008Scenario reclutamento INFN al 17 Novembre 2008
Scenario reclutamento INFN al 17 Novembre 2008dael.maselli
212 views7 slides

More Related Content

Similar to Python per tutti

Iced tea, la macchina virtuale Java libera by
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaVitalij Zadneprovskij
1.8K views34 slides
Foss ieri e oggi by
Foss ieri e oggiFoss ieri e oggi
Foss ieri e oggiAntonio Sanfelice
239 views14 slides
2006 Py01 intro by
2006 Py01 intro2006 Py01 intro
2006 Py01 introLoris Michielutti
270 views6 slides
Presentazione di LibreOffice al Linux Day 26 ottobre 2013 by
Presentazione di LibreOffice al Linux Day 26 ottobre 2013Presentazione di LibreOffice al Linux Day 26 ottobre 2013
Presentazione di LibreOffice al Linux Day 26 ottobre 2013Janhu Silvio Crispiatico
704 views17 slides
Formati aperti vs formati proprietari by
Formati aperti vs formati proprietariFormati aperti vs formati proprietari
Formati aperti vs formati proprietariRiccardo Zanella
2.7K views40 slides
Scripting e DataWarehouse sui Big Data. Luca Pireddu (CRS4) by
Scripting e DataWarehouse sui Big Data. Luca Pireddu (CRS4)Scripting e DataWarehouse sui Big Data. Luca Pireddu (CRS4)
Scripting e DataWarehouse sui Big Data. Luca Pireddu (CRS4)CRS4 Research Center in Sardinia
1.4K views124 slides

Similar to Python per tutti(20)

Formati aperti vs formati proprietari by Riccardo Zanella
Formati aperti vs formati proprietariFormati aperti vs formati proprietari
Formati aperti vs formati proprietari
Riccardo Zanella2.7K views
Le Basi di Python.pdf by alessigreco
Le Basi di Python.pdfLe Basi di Python.pdf
Le Basi di Python.pdf
alessigreco15 views
Linux & Tools: per la piccola azienda e i freelance by Fabio Mora
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
Fabio Mora663 views
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook by Roberto Innocenti
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
Linux Day 2016 Milano - Open Source Hardware PowerPC Notebook
Roberto Innocenti256 views
I came, i saw, i go - Cefaro and De Donato by Codemotion
I came, i saw, i go - Cefaro and De DonatoI came, i saw, i go - Cefaro and De Donato
I came, i saw, i go - Cefaro and De Donato
Codemotion672 views
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014 by Giorgio Cefaro
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
Giorgio Cefaro1.3K views
I came i saw i go - golang it meetup codemotion rome 2014 by Giulio De Donato
I came i saw i go - golang it meetup codemotion rome 2014I came i saw i go - golang it meetup codemotion rome 2014
I came i saw i go - golang it meetup codemotion rome 2014
Giulio De Donato697 views

Python per tutti

  • 1. Python per Tutti PyPg – Perugia Python Local Users Group Questa opera è distribuita da PyPg con licenza Creative Commons Attribuzione 3.0 Unported.
  • 3. Python per etimologisti http://www.flickr.com/photos/69er/200248914/
  • 4. Python per etimologisti Pythonesque vs Pythonic Pythons vs Pythonistas
  • 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. 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. Python per programmatori C++ ● Multiparadigma ● Ereditarietà multipla ● Sovraccarico degli operatori ● Decine di librerie terze parti per applicazioni GUI, rete, database, calcolo distribuito
  • 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. 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
  • 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
  • 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 sull'argomento
  • 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. Fattori esterni ● Comunità ● Python Diversity ● Local User Groups ● Conferenze ● Open Source - Licenza PSFL ● Certificata OSI ● Certificata FSF ● BSD-like, molto liberale
  • 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. Hackability ● Clean ● Facile da usare ● Facile da imparare ● Facile da leggere ● Dirty
  • 20. Programmi usa e getta ● Installato di default su tutte le distribuzioni Linux e su Mac OSX ● Shell interattiva
  • 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. 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. Efficienza ● Efficienza != Velocità ● Profilers (cProfile, profile) ● Threads ● Multiprocess
  • 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. Evoluzione agile ● Python Enhancement Proposal (PEP)
  • 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. 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. Python per tutti ● Linux, Windows, OSX, AIX ● Dispositivi Embedded, Smartphones, Mac, PC, HPC ● CPython, Jython, IronPython, PyPy
  • 29. antigravity import Massimiliano Pippi @maxpippi @pyperugia http://www.pypg.org