[Python] Python innovation -- no longer OT --[Re: OT ma interssante]

2015-07-17 Per discussione enrico franchi
2015-07-17 14:53 GMT+01:00 enrico franchi enrico.fran...@gmail.com:

 Per il resto, davvero, non vedo come possiamo continuare la discussione
 con un minimo di interesse


Ora... facciamo un po' di esercizio. Per esempio cerchiamo di applicare il
concetto di innovazione a qualcosa che tutti conosciamo. Python. La
domanda e' Python e' innovativo? Non daro' una risposta, ma un po' di
spunti.

 Breve contesto... Python e' un linguaggio vecchio, da un certo punto di
vista. Ma non e' cosi' vecchio da potere essere annoverato fra i pionieri.

Per dire... la parte ad oggetti di Python non e' particolarmente
innovativa. Le versioni vecchie (2.2) non avevano le new style classes.
Tutta questa parte non e' particolarmente innovativa: Smalltalk faceva
probabilmente altrettanto se non di piu' 20 anni prima. Lisp come sopra.
Lisp aveva pure il concetto di MOP, che in Python fino a 1.5 era
implementabile con molta fatica (e uscendo da Python) e fino
all'introduzione delle metalcassi e' stato disponibile con fatica. Anche
qui, la versione del MOP di Python non e' piu' elegante o piu' potente di
quella di Lisp.

Il fatto che funzioni siano valori non e' particolarmente innovativa. Lisp
aveva questa cosa da 40 anni o giu' di li. map/filter e compagnia? Ancora
Lisp. List comprehensions? Haskell e probabilmente altri. Generatori
base? Anche li c'e' parecchia prior art (se guardi la PEP ti dicono anche
esattamente cosa). Ad essere onesto, e' prior art meno celebre di Haskell
o Lisp, ma ancora una volta...

I generatori completi che abbiamo ora? Un po' piu' innovativi... ma non
sono altro che una versione castratissima delle continuation di Scheme (e
di altri linguaggi che le hanno) e in generale non sono nulla di nuovo.
Altri hanno avuto cose simili tutte insieme.

Il descriptor protocol? Quello mi sembra piuttosto nuovo. Ma, dal mio punto
di vista, e' una cosa relativamente implementativa. Ti consente di scrivere
codice piu' coinciso in determinate circostanze, ma di per se non rende il
linguaggio piu' potente. Ti consente di fare certe cose (che si fanno di
rado) in modo un po' piu' semplice.

Decoratori? Davvero... qui c'e' parecchia prior art. Troppa per entrarci.
Ottima implementazione (peccato che Python sia anche un linguaggio con
ereditarieta' e che le due cose facciano a cazzotti in modo spettacolare:
se non ve ne siete accorti, meditate). Ma innovativo? Il fatto che il
programmatore Java non li avesse non li rende certo innovativi... oh, ma
dannazione... i Javisti avevano le annotazioni, con una sintassi molto
simile, relativamente piu' raffinati, ma molto piu' complicati da usare per
determinate cose che invece in Python sono molto semplici. Innovativi?
Boh... effettivamente e' qualcosa che anche i laymen hanno preso su da
subito. Fra tutte le features elencate sono probabilmente la piu' banale,
la meno interessante, la meno innovativa... eppure hanno avuto un impatto
colossale sulla comunita'. Tanto per dire.

Per il resto... cpython e' implementato con una macchina a stack. Piuttosto
banale, per inciso. Non e' funzionalmente troppo diversa dalle
implementazioni giocattolo che si scrivono in un paio di pomeriggi. Il
compilatore non fa ottimizzazione nemmeno a parlarne (e' tipo anni indietro
rispetto quello che fanno oggi le macchine virtuali dei linguaggi dinamici
e paragonarla alla tecnologia che c'e' nella JVM e' davvero offensivo).
Niente di innovativo li. Oh... ma anche cose come un garbage collector che
fa un po' tristezza ma non e' completamente uno scherzo sono arrivati quasi
10 anni dopo l'implementazione iniziale. Per dire...

Ora praticamente la cosa piu' innovativa che Python ha avuto e' stata
l'intuizione sulla leggibilita'. Ora il concetto (letterario) di
leggibilita' e' qualcosa di cui si stava parlando gia' nell' '800 (so much
for innovation). Nell'ambito dei linguaggi di programmazione il concetto di
readability e' stato studiato piuttosto presto (ci sono risultati
interessanti dei primi anni 80, sostanzialmente quando si parlava anche di
literate programming). Da un certo punto di vista... niente di
interessante. Eppure il concetto di literate programming ha sostanzialmente
fallito... io personalmente ricordo qualche vecchia versione di Haskell che
andava in questa direzione e mi dava davvero dolore indicibile. Se vuoi
l'approccio di Python e' opposto: rendiamo il codice leggibile, non
farciamolo di spiegazioni testuali per renderlo leggibile. Ma anche li...
se ne parlava da tempo.

Innovativo o no? Il fatto e' che Python e' tutto sommato uno dei linguaggi
piu' usati al mondo (si, essere nei primi 10 vuole dire essere molto usato)
ed e' quello che ha portato il concetto di readability a molti
sviluppatori. E incidentalmente li ha anche esposti ad una serie di
tecniche (quelle la sopra) che i laymen programmer non conoscevano (e che,
per inciso, tuttora non padroneggiano... pero' almeno si possono usare).

Ora, se consideriamo esclusivamente i meriti tecnici/tecnologici Python non
e' per nulla 

Re: [Python] Why Go is not good

2015-07-17 Per discussione enrico franchi
2015-07-17 14:33 GMT+01:00 Davide Muzzarelli d.muzzare...@dav-muz.net:

Yes:   if greeting:
No:if greeting == True:

Nel suggerimento la differenza tra Yes e No è solo sintassi.


No. E' semantica. Nel primo caso stai di fatto andando a chiamare
greeting.__nonzero__ se presente, se no greeting.__len__ e altrimenti e'
semplicemente vero. Nel secondo invece stai andando a chiamare
greeting.__eq__ (oppure greeting.__neq__ oppure greeting.__cmp__) oppure
stai andando a confrontare gli id degli oggetti.

Tipicamente quei due frammenti non sono sintatticamente diversi: sono
filosoficamente diversi. Sono pure ortogonali. Il caso in cui collassano e'
essenzialmente se greeting e' un booleano o un'intero (o qualcosa che si
comporta come tale).

Il terzo caso invece non è affatto sintassi e lo usi quando vuoi essere
 sicuro anche del tipo.


Il terzo, come i primi due, non e' solo sintassi e *non* lo usi. E se lo
usi mettici dei bei commenti a spiegare perche' lo usi. Siccome nel 99.9%
dei casi e' un bug, e' molto facile che il primo che ripassa sul codice te
lo sega via. Per cui se c'era un buon motivo, e' bene specificarlo.

Tra l'altro in Python quando cominci a fare check espliciti sui tipi il
codice puzzicchia. Ci sono motivi per farlo e niente da dire... ma sono
*moolto* rari.

Diventa worse se usi l'is quando non serve, ovvero nella maggioranza dei
 casi.


Praticamente nella totalita'. Comunque sia == che is in quel caso sono
moolto sospetti.



-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione Davide Muzzarelli

Il 17/07/2015 14:38, Carlos Catucci ha scritto:

Adesso mi spieghi questa, a me povero 'gnurant. Come puoi avere un if
senza espressioni booleane? Al massimo sono piu' espressioni combinate
tra loro con operatori logici ma sempre booelane sono.


Intende che puoi fare:

a := true // Variabile booleana
if a {
...
}

e che invece non puoi fare:

b := nil // Sarebbe un None in Python
if b { // Errore!
...
}

e nemmeno:

c := 1
if c { // Errore!
...
}


Byez,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione Carlos Catucci
2015-07-17 14:46 GMT+02:00 Davide Muzzarelli d.muzzare...@dav-muz.net:

 b := nil // Sarebbe un None in Python
 if b { // Errore!
 ...
 }

 e nemmeno:

 c := 1
 if c { // Errore!
 ...
 }


Ah ecco, sara' che io certe brutte abitudini non le ho mai avute. Per me
True e False sono True e False, se ho

a = 1

non farei mai

if a:

pass

non avrebbe senso. Potrei farlo solo se avessi un

a = True o a = False


Sara' che preferisco avere codice leggibile e tranquillo.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Giovanni Porcari

 Il giorno 17/lug/2015, alle ore 12:43, Marco Beri marcob...@gmail.com ha 
 scritto:
 
 
 On Jul 17, 2015 12:26 PM, Enrico Bianchi enrico.bian...@ymail.com wrote:
 
  On 07/17/2015 11:45 AM, Carlos Catucci wrote:
 
  Sperem. Sopratutto i frameworks dovrebbero fare tutti il grande passo
 
  Ma a parte Twisted, cos'e` rimasto da portare?
 
 Tutte le mie applicazioni per esempio…
 

IL punto è che la fatica è molta, il rischio è molto
e la ricompensa è incerta. 
Per Marco, fervente cattolico (!), voglio dire che python 3
mi pare come il Paradiso che puoi conquistare a prezzo
di sacrifici e che ti promette una miglior vita dopo
la tua morte. Ammazzarmi di lavoro su questa base,
in questo momento è al 48 posto nelle mia scala delle
urgenze, appena dopo la traversata della Manica 
in pedalò…


G




___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione Manlio Perillo
2015-07-17 0:53 GMT+02:00 Enrico Bianchi enrico.bian...@ymail.com:

 On 07/13/2015 11:55 AM, enrico franchi wrote:

  [...]


  a = may_return_null(...)
 if a is not None:
 f(a, ...)

 Bruttino, non tanto perche` non mi piace, ma per com'e` scritto :)
 La sintassi
 if a:
   f(a,...)

 E` molto piu` elegante (si, e` una pulce che non serve a molto) :)


Io ti consiglio di lasciare `a is not None`.
`if a` può significare troppe cose, specialmente in Python, e rischi di
ritrovarti con un comportamento inaspettato.

In Go per evitare problemi del genere hanno deciso che l'istruzione `if`
accetta solo espressioni booleane.



  Fanno sempre e solo stack unwind, non danno controllo al programmatore.

 Mmm... continuo a non capire... Un esempio (o della documentazione)?

  Come dicevo... quello non e' Go idiomatico a mio avviso.

 Anche qua, mi sembra che tu abbia dato piu` peso al codice che ho usato
 come esempio piuttosto che al concetto che volevo esprimere. Personalmente
 ritengo che un try/except sia piu` elegante rispetto al dover fare il check
 per ogni error che ti viene restituito.


http://blog.golang.org/errors-are-values



 Quello che intendo e` che, ad esempio, le operazioni di apertura,
 scrittura e chiusura di un file in Go devono essere gestite una per una,
 mentre in Python le posso gestire tutte nello stesso try/except che,
 personalmente, ritengo piu` sensato


Fino a quando non devi gestire l'errore.
A molti le eccezioni piacciono perchè ti fanno dimenticare che c'è stato
un errore.

Il codice è bello, ma quando devi gestire gli errori poi le cose iniziano
ad andare in modo diverso.
E la gente inizia a fare:

except Exception:
#  print traceback

se non di peggio.


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] No al naturismo (era: Re: Why Go is not good)

2015-07-17 Per discussione Nicola Larosa
Manlio Perillo wrote:
 E la gente inizia a fare:
 
 except Exception:
 #  print traceback
 
 se non di peggio.

Cosa potrebbe esserci di peggio di...

OH!
OH NO!
Non starai mica pensando al... al...

NAKED EXCEPT!

Maledetto Manlio che susciti pensieri impuri in noi, facili prede delle
tentazioni!

-- 
Nicola 'tekNico' Larosa http://www.tekNico.net/

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Carlos Catucci
2015-07-17 14:07 GMT+02:00 Giovanni Porcari giovanni.porc...@softwell.it:

 Ammazzarmi di lavoro su questa base,
 in questo momento è al 48 posto nelle mia scala delle
 urgenze, appena dopo la traversata della Manica
 in pedalò…


ROFLASTC!

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] OT ma interssante

2015-07-17 Per discussione enrico franchi
2015-07-14 20:20 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:

 Prima risposta, senno' ci perdiamo.

 Darwin viene dal substrato Unix. Il concetto come dici tu di innovazione
 e' semrpe relativo. Pero' trovo innovativo un Linux (che comuqnue si e'
 evoluto nel tempo) e non certo un MacOsX che ha solo una interfaccia tutta
 cosette carine che si muovono da sole (ma anche quelle che stanno nel
 cartone del latte che ho nel frigo da sei mesi lo fanno) ma in concreto non
 rendono la fruizione dei contenuti di certo piu' facile.

 Nelle prossime cerco di rispondere agli altri punti.



1. il problema originario non e' se uno specifico componente di OS X sia
innovativo o meno; il problema e' la tua tesi, secondo la quale Jobs (o
Apple o entrambi) abbiano innovato. Anche se dimostri che Darwin non e' un
sistema innovativo, non hai dimostrato che Jobs (o Apple) non siano stati
innovativi (https://yourlogicalfallacyis.com/composition-division).
Viceversa, per assurdo, se dimostrassimo che Darwin e' un sistema altamente
innovativo, sarebbe molto difficile sostenere la tesi secondo la quale Jobs
non ha innovato.

2. specificamente, per potere dimostrare che Darwin non e' innovativo,
dovresti conoscere per bene Darwin. Senza offesa, non credo che questo sia
il caso. Da quello che hai scritto mi sembra che tutto sommato tu non sia
eccessivamente familiare con Darwin; il che non e' un problema, a meno che
appunto tu non voglia parlare nello specifico di Darwin, nel qual caso un
certo livello di familiarita' con l'argomento sarebbe utile per potere
condurre la discussione sul punto specifico. Ovviamente, sostituisci Darwin
con quello che ti pare. Che so... io ho una conoscenza relativamente
sommaria (o anche nulla) di tante cose, ma tendo a non assumere posizioni
forti sull'argomento perche', appunto, non posso motivarle.

3. il problema chiave e' che non abbiamo dato una chiara definizione di
innovativo. senza quella definizione di innovativo e' complicato dire se
qualcosa (o qualcuno) sia stato innovativo. perche' e' sufficiente negare
caso per caso che un dato aspetto sia innovativo. Questo era il senso
della mia provocazione niente e' innovativo. Se mettiamo una barra
arbitrariamente alta su cosa sia innovazione, possiamo escludere
arbitrariamente qualunque cosa dal novero delle cose innovative. Io metto
la barra infinita e concludo che nulla e' innovativo: potremmo concludere
che sono un coglione, ma non che ho torto (la mia posizione e' interamente
coerente e logica internamente). Quando invece cominciamo a dire e invece
questo e' innovativo si apre il problema: senza avere una definizione
condivisa di innovativo non andiamo da nessuna parte.

Incidentalmente, se guardi un po' di evoluzione, si vede spesso un pattern
che le cose innovative sono in effetti estremamente conservative sulla
maggior parte dei punti (magari anche tutti quanti i punti tecnologici).
C'e' perfino il concetto di disruptive innovation, che tipicamente si
applica a soluzioni che, fra le varia cose sono spesso assolutamente *non*
innovative in senso tecnico, ma la cui innovazione e' la penetrazione di
mercato oppure il semplice fatto che abilitano fasce di persone ad una
tecnologia dalla quale erano completamente escluse (sebbene ne stiano
usando una variante di serie B). E incidentalmente questo e' un concetto
di... Marketing. Gia'. Ora non vorrei troppo parlare di disruptive
innovation (che e' solo un tipo di innovazione... e molti sistemi
apparentemente in competizione *sono* disruptive innovation: DOS, Windows,
ed esattamente per gli stessi motivi... Linux; ma in un certo senso anche
il vecchio MacOS e piu' recentemente MacOSX... e Amiga e il PC... tutti
competitori, tutti con comunita' che si guardano in cagnesco, eppure tutti
sistemi in cui una delle piu' grosse innovazioni e' stata quella di avere
avuto tratti di disruptive innovation; il che non nega che su certi
specifici aspetti ci sia stata innovazione tradizionale, tecnologica o
sociale).

Alla fine, senza avere una buona definizione di innovazione, checche' tu
ne dica, siamo nel mondo della simpatia: qualcosa mi e' simpatico e quindi
ne sopra-stimo i meriti, qualcosa mi e' antipatico e quindi ne nego i
meriti (o addirittura sostengo che sia stato un male -- questa e'
tipicamente la critica che viene da chi usa la versione 'sustaining' di una
tecnologia che e' stata rimpiazzata da qualcosa di disruptive).

Per il resto, davvero, non vedo come possiamo continuare la discussione con
un minimo di interesse

-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione Davide Muzzarelli

Il 17/07/2015 14:50, Carlos Catucci ha scritto:

non avrebbe senso. Potrei farlo solo se avessi un

a = True o a = False


Forse intendi:

if a is True:
...

altrimenti è esattamente come se facessi:

if a:
...

proprio perché il seguente if risulterà vero:

a = 1
if a == True:
...

Il motivo è che il primo if controlla anche il tipo mentre gli altri due no.

Byez,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione enrico franchi
2015-07-16 23:53 GMT+01:00 Enrico Bianchi enrico.bian...@ymail.com:

 On 07/13/2015 11:55 AM, enrico franchi wrote:

 Il problema con l'overloading e' che rende un sacco di cose
 drammaticamente piu' complicate: in presenza dello stesso caso che menzioni
 (ovvero che non sai quale tipo sia una variabile) vuole dire che
 effettivamente il tuo codice compilera', ma tu non avrai idea di cosa
 faccia.

 Mmm... non sono del tutto convinto, ovvero se io implemento Sum(int, int)
 e Sum(float, float), io so che posso avere o un int o un float e
 comportarmi di conseguenza


Allora, in Go, si, perche' non hai type cohercion. In altri linguaggi? Devi
certamente ricordarti tutte le conversioni implicite. Per dire, in molti
linguaggi un long chiamerebbe la versione per float invece che quella per
int. Per dire... super intuitivo ;) Ricordati che i bachi hanno la tendenza
a rendersi manifesti alle 2 di notte quando a guardare il problema c'e'
tipicamente qualcuno che non e' l'ingegnere che ha scritto il codice.

E' un peccato che tu abbia tagliato il mio altro esempio che mostrava in
modo completamente evidente quale sia il problema grosso (e che la mancanza
di conversioni automatiche non e' sufficiente ad evitarlo). Se lo avessi
studiato un pochetto ti saresti chiarito quale e' il punto.


  Se non sai quale e' il tipo della variabile, vuole dire che non sai quale
 variante del metodo verra' chiamata. E quindi di fatto non sai che codice
 stai eseguendo. Ecco che un'innocua seccatura in assenza di overloading e'
 diventata una possibile fonte di bachi.

 Mmm... In altre parole, stai dicendo che Python, in quanto (di solito) non
 sai il tipo della variabile masolo il suo contenuto, e` altamente
 problematico ;)


Per assurdo molto meno. Almeno non ci sono dubbi su quale sia il codice
della funzione che viene chiamato. Poi c'e' sempre il problema di quale sia
il codice che la funzione che hai chiamato chiama a sua volta, ma quello fa
parte del concetto di polimorfismo e tipicamente non vuoi farne a meno. E'
un male quasi necessario.



  Senza offesa, ma da come rispondi sembrerebbe che ti soffermi piu` sul
 codice che sul concetto che volevo esprimere. Quello che interessa a me e`
 fare il catch del panic, in quanto, ad esempio, potrei voler fare in modo
 che l'applicazione non debba terminare assolutamente la sua esecuzione se
 non tramite intervento manuale. La soluzione, come dico in seguito (e come
 ho scoperto proprio grazie a questo thread) e` usando recover() in una
 deferred function, che di per se non e` anche una cattiva soluzione, anche
 se limitata dalla gestione dei defer in Go (ovvero a cascata non appena la
 funzione viene eseguita completamente)


Eh, ma se mostri codice per rappresentare il problema, ma il codice che
mostri non rappresenta il problema io posso solo parlare del codice in
se... la sfera di cristallo non mi funziona troppo bene. :)

Comunque, dipende come e' concepito il sistema. Ci sono casi in cui vuoi
catturare un'eccezione piuttosto esterna. Tipicamente posso pensare ad un
webserver essenzialmente stateless: fallisci la richiesta, tiri un 5xx e
vai avanti. Essendo stateless, non hai il problema che il panic sia un
sintomo di memoria corrotta. E se il sistema e' messo su da persone
normodotate avrai un quache allarme se il rate di 5xx e' troppo alto (che
indicherebbe a sua volta che il sistema e' compromesso e che bisogna
intervenire). Quindi anche in questo caso devi comunque avere qualche tipo
di supporto a livello di sistema/operations.

Su un sistema stateful in molti casi preferisco abbattere l'applicazione e
non pensarci due volte. Tanto (sempre siccome parliamo di individui
normodotati) il sistema avra' qualche tipo di ridondanza e questo non e' un
problema. E ci sara' qualche tipo di nanny che ritira su il tutto
(possibilmente partendo da uno stato non corrotto). Se ancora una volta
l'applicazione va giu' troppe volte in poco tempo vuole dire che c'e' un
problema, ci sara' un allarme e qualcuno dovra' correre a guardarci. Oppure
se abbiamo abbastanza capacity (che so... siamo in N+K) ci si guarda il
giorno dopo e tanti saluti. Nota, questo approccio funziona anche (e come
sempre meglio) in un sistema stateless: semplicemente se hai stato
catturare un'eccezione, loggare e andare avanti puo' volere dire che
quell'istanza da quel momento in poi serve merda, hai un gray failure ed e'
molto peggio: meglio abbattere tutto e tanti saluti.

Nel caso specifico di Go, ritirare su un'applicazione e' generalmente una
cosa molto veloce. *E* i panic non dovrebbero segnalare condizioni
normali. Quindi e' assolutamente concepibile pulire tutto e fare morire e
saluti.


 Posso essere d'accordo, ma secondo me lo sconsigliare una pratica del
 genere e` difettata dalle varie casistiche. Vedi ad esempio il caso di
 un'applicazione che non deve morire mai


Salvo che nel tuo caso l'applicazione moriva comunque. Tra l'altro mi
aspetto che tu conosca la differenza fra except: ed except Exception:,

Re: [Python] Why Go is not good

2015-07-17 Per discussione enrico franchi
2015-07-17 14:01 GMT+01:00 Davide Muzzarelli d.muzzare...@dav-muz.net:

 Il motivo è che il primo if controlla anche il tipo mentre gli altri due
 no.


In realta' il primo e' anche il piu' broken. Dalla PEP8:


   -

   Don't compare boolean values to True or False using == .

   Yes:   if greeting:
   No:if greeting == True:
   Worse: if greeting is True:









-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione enrico franchi
2015-07-17 13:50 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:

 Sara' che preferisco avere codice leggibile e tranquillo.


E non idiomatico. Il Python idiomatico presuppone che tu spesso e
volentieri hai nella guardia dell'if (o del while) cose che *non* sono
booleani.
Non farlo ti costringe a scrivere pessimo Python (e a dovere scrivere
soluzioni terribilmente piu' complicate).


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione Carlos Catucci
2015-07-17 15:10 GMT+02:00 enrico franchi enrico.fran...@gmail.com:

 si il codice fa cacare, e' solo un esempio per mostrare come in Python hai
 nell'if qualcosa che non e' un booleano (ma che viene valutato in contesto
 booleano).


Ok mai io quello intendevo, la valutazione e' sempre boolean. Se poi gli
passo un oggetto not bool sono io che ho fatto la frittata.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Marco Beri
2015-07-17 14:07 GMT+02:00 Giovanni Porcari giovanni.porc...@softwell.it:


  Il giorno 17/lug/2015, alle ore 12:43, Marco Beri marcob...@gmail.com
 ha scritto:
 
  On Jul 17, 2015 12:26 PM, Enrico Bianchi enrico.bian...@ymail.com
 wrote:
  
   On 07/17/2015 11:45 AM, Carlos Catucci wrote:
  
   Sperem. Sopratutto i frameworks dovrebbero fare tutti il grande passo
  
   Ma a parte Twisted, cos'e` rimasto da portare?
 
  Tutte le mie applicazioni per esempio…

 IL punto è che la fatica è molta, il rischio è molto
 e la ricompensa è incerta.
 Per Marco, fervente cattolico (!), voglio dire che python 3
 mi pare come il Paradiso che puoi conquistare a prezzo
 di sacrifici e che ti promette una miglior vita dopo
 la tua morte. Ammazzarmi di lavoro su questa base,
 in questo momento è al 48 posto nelle mia scala delle
 urgenze, appena dopo la traversata della Manica
 in pedalò…


Vedo che il mio messaggio è passato forte e chiaro.

Bravo Giovanni :-)

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why Go is not good

2015-07-17 Per discussione Davide Muzzarelli

Il 17/07/2015 15:13, enrico franchi ha scritto:

In realta' il primo e' anche il piu' broken. Dalla PEP8:

  *

Don't compare boolean values to True or False using == .

Yes:   if greeting:
No:if greeting == True:
Worse: if greeting is True:


Nel suggerimento la differenza tra Yes e No è solo sintassi. Il 
terzo caso invece non è affatto sintassi e lo usi quando vuoi essere 
sicuro anche del tipo.


Diventa worse se usi l'is quando non serve, ovvero nella maggioranza dei 
casi.


Può darsi che io abbia intuito male cosa volesse fare Carlos.

Byez,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Non solo le signore (era: Re: Python innovation -- no longer OT --[Re: OT ma interssante])

2015-07-17 Per discussione Nicola Larosa
enrico franchi wrote:
 La cosa piu' innovativa che Python ha avuto e' stata l'intuizione
 sulla leggibilita'.
 [...]
 Se consideriamo esclusivamente i meriti tecnici/tecnologici Python
 non e' per nulla innovativo [...]. Eppure usando un diverso concetto
 di innovazione e' invece un linguaggio estremamente innovativo...

Esattamente. E quasi vent'anni dopo Go ne raccoglie l'eredità, quasi
esattamente nello stesso spazio.

La stessa enfasi su semplicità e leggibilità, la stessa parsimonia, anzi
perfino maggiore, nell'adottare funzionalità, e un migliore e più moderno
posizionamento su vari assi: tipi statici/dinamici, modello
compilato/interpretato, tipi e oggetti, concorrenza, infrastruttura e
strumenti standard.

Il tutto lo rende un linguaggio applicabile meglio di Python a un numero
maggiore di casi applicativi. C'è ovviamente una differenza di maturità
sia nel linguaggio che nell'ecosistema, ma la velocità dei miglioramenti
in entrambi sembra almeno doppia di quella dei primi anni di Python.

Aggiungiamo che negli anni in cui Go si consolidava, Python affrontava la
difficile e non ancora conclusa transizione tra due versioni
incompatibili, ed è difficile evitare la conclusione che la dominazione
del mondo non sia più a portata di mano (se mai lo è stata).

La vita è cambiamento. Come dicevano in Pomodori verdi fritti, una
signora sa quando è il momento di andare. Credo si applichi a tutti. :-)

-- 
Nicola 'tekNico' Larosa http://www.tekNico.net/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] I Pythonisti parlano spesso di Go (era: Re: [OT] Cheap MapReduce in Go)

2015-07-17 Per discussione liuggio
Grande idea, piu siamo meglio è

C'è da dire che la semplicità del linguaggio,
l'approccio minimale a tutto
la sue performance spavantose
il trend dei microservizi 
e la comunità anche piu rude :) 
 rendono il python molto meno attraente



 Parere su Go di un professore di informatica (delle superiori) nonche' 
uno dei fondatori di ERLUG 

è molto leggero gli consiglio di leggere il libro introduttivo a go parla 
delle motivazioni nello sviluppo del linguaggio


 http://yager.io/programming/go.html

 se gli esempi li porti al PHP in quel post risulta che il PHP è il miglior 
linguaggio del mondo
si è focalizzato solo sul tipo, è molto piu complesso di così

Poi alla fine ogni linguaggio ha i suoi vantaggi
ma non si deve sottovalutare le comunità che fanno l'ecosistema del 
linguaggio che poi diventa il vero valore del linguaggio,
e poi se si vuole utilizzare un qualsiasi linguaggio non per forza si 
devono trovare scuse sul nascituro :)




Il giorno giovedì 16 luglio 2015 10:26:14 UTC+2, Nicola Larosa (tekNico) ha 
scritto:

 Nelle ultime settimane ci sono state parecchie discussioni su Go sulla 
 mailing list italiana di Python. Esempi nell'ultimo mese: 

 [OT] Cheap MapReduce in Go 
 http://lists.python.it/pipermail/python/2015-July/024036.html 
 http://www.google.com/url?q=http%3A%2F%2Flists.python.it%2Fpipermail%2Fpython%2F2015-July%2F024036.htmlsa=Dsntz=1usg=AFQjCNF60bNjkY-6yvJdQ0Um6Z-qY_nzxw
  


 Parere su Go di un professore di informatica (delle superiori) nonche' 
 uno dei fondatori di ERLUG 
 http://lists.python.it/pipermail/python/2015-July/023951.html 

 Why Go is not good 
 http://lists.python.it/pipermail/python/2015-July/023855.html 


 Sembra esserci una certa sovrapposizione tra pythonisti e gopher 
 italiani, e la collaborazione è benvenuta. :-) 


 Massimiliano Pippi wrote: 
  Ciao GollumOne! 
  
  2015-07-16 10:02 GMT+02:00 Gollum1 gollum1.smeag...@gmail.com: 
  
  Ma esiste una ml di utenti italiani di go? Potremmo anche crearla, 
  almeno queste cose non sarebbero più ot. 
  
  Stavo per segnalarlo ma non sapevo bene come fare a non sembrare 
  bacchettone ma visto che sei andato avanti tu... :) Si c'è: 
  
  https://groups.google.com/forum/#!forum/golangit 
  
  è a scarsissimo traffico ed è un peccato, le discussioni fatte qui 
  negli ultimi mesi meritavano di andare di là, o meglio, gente che sta 
  di là meritava di assistere alle discussioni in oggetto. 
  
  Oppure modifichiamo il nome a questa lista, visto che sono più i 
  post su go (peraltro interessantissimi) che i post su python. 
  
  Sì, ultimamente l'OT è una fetta importante del traffico :P 
  
  Certo, è difficile differenziale totalmente, visto che la maggior 
  parte dei post nascono come comparazione. 
  
  Se di là sono daccordo, a me il crosspost quando è utile piace 
  
  Buon fresco 

 -- 
 Nicola 'tekNico' Larosa http://www.tekNico.net/ 

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python innovation -- no longer OT --[Re: OT ma interssante]

2015-07-17 Per discussione enrico franchi
2015-07-17 16:26 GMT+01:00 Manlio Perillo manlio.peri...@gmail.com:

 Io ho cercato di leggere il codice di TeX, ma non ci sono riuscito.
 Praticamente non ci capisco nulla o quasi di come funziona il tutto...


Beh, credo che li il problema travalica literate programming... e' proprio
che Tex e' sufficientemente cervellotico come linguaggio che e' difficile
immaginare implementazioni particolarmente semplici. Tanto e' vero che in
pratica non ne esistono molte...


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Non solo le signore (era: Re: Python innovation -- no longer OT --[Re: OT ma interssante])

2015-07-17 Per discussione Nicola Larosa
 Nicola Larosa wrote:
 La stessa enfasi su semplicità e leggibilità, 

Manlio Perillo wrote:
 Però Python non è poi così semplice.

Anche Go ha le sue idiosincrasie: niente e nessuno è perfetto. :-)

L'importante è che ci sia un principio ispiratore dietro, e una pratica
implementativa che ne dimostri una decente applicazione.

Python si è complicato nel corso degli anni: vedremo se Go riuscirà a
tenersi più leggero. Le premesse ci sono.

-- 
Nicola 'tekNico' Larosa http://www.tekNico.net/

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python innovation -- no longer OT --[Re: OT ma interssante]

2015-07-17 Per discussione Manlio Perillo
2015-07-17 17:32 GMT+02:00 enrico franchi enrico.fran...@gmail.com:


 2015-07-17 16:26 GMT+01:00 Manlio Perillo manlio.peri...@gmail.com:

 Io ho cercato di leggere il codice di TeX, ma non ci sono riuscito.
 Praticamente non ci capisco nulla o quasi di come funziona il tutto...


 Beh, credo che li il problema travalica literate programming... e' proprio
 che Tex e' sufficientemente cervellotico come linguaggio che e' difficile
 immaginare implementazioni particolarmente semplici. Tanto e' vero che in
 pratica non ne esistono molte...


Ci hanno provato in Java.
È vero che come al solito lo hanno sovra-ingegnerizzato ma il problema era
semplicemente: troppo inefficiente.

Se studi il codice di TeX vedi che è tutto accoppiato, specialmente la
gestione delle stringhe e della memoria fa paura.


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Non solo le signore (era: Re: Python innovation -- no longer OT --[Re: OT ma interssante])

2015-07-17 Per discussione Manlio Perillo
2015-07-17 16:56 GMT+02:00 Nicola Larosa n...@teknico.net:

 enrico franchi wrote:
  La cosa piu' innovativa che Python ha avuto e' stata l'intuizione
  sulla leggibilita'.
  [...]
  Se consideriamo esclusivamente i meriti tecnici/tecnologici Python
  non e' per nulla innovativo [...]. Eppure usando un diverso concetto
  di innovazione e' invece un linguaggio estremamente innovativo...

 Esattamente. E quasi vent'anni dopo Go ne raccoglie l'eredità, quasi
 esattamente nello stesso spazio.

 La stessa enfasi su semplicità e leggibilità,


Però Python non è poi così semplice.

 [...]

Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python innovation -- no longer OT --[Re: OT ma interssante]

2015-07-17 Per discussione enrico franchi
2015-07-17 16:40 GMT+01:00 Manlio Perillo manlio.peri...@gmail.com:

 Se studi il codice di TeX vedi che è tutto accoppiato, specialmente la
 gestione delle stringhe e della memoria fa paura.


Oh, d'altra parte quello deve fare. Costruire quintali di stringhe di testo.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Enrico Bianchi

On 07/17/2015 11:45 AM, Carlos Catucci wrote:

Sperem. Sopratutto i frameworks dovrebbero fare tutti il grande passo

Ma a parte Twisted, cos'e` rimasto da portare?

Enrico
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Carlos Catucci
2015-07-17 11:35 GMT+02:00 Enrico Bianchi enrico.bian...@ymail.com:

 E non solo lei, ma anche Debian e Ubuntu stanno pianificato il salto.
 Che sia la volta buona?


Sperem. Sopratutto i frameworks dovrebbero fare tutti il grande passo

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Enrico Bianchi

https://fedoraproject.org/wiki/Changes/Python_3_as_Default

E non solo lei, ma anche Debian e Ubuntu stanno pianificato il salto. 
Che sia la volta buona?


Enrico
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Raffaele Salmaso
2015-07-17 11:35 GMT+02:00 Enrico Bianchi enrico.bian...@ymail.com:

 https://fedoraproject.org/wiki/Changes/Python_3_as_Default

 E non solo lei, ma anche Debian e Ubuntu stanno pianificato il salto.
 Che sia la volta buona?

Lo spero bene.
Io per me l'ho fatto e sto portando a py3 tutto quello che gestisco.
Molti meno malditesta (una volta finito il porting...)



-- 
| Raffaele Salmaso
| http://salmaso.org
| https://bitbucket.org/rsalmaso
| http://gnammo.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fedora Planning to switch to Python 3

2015-07-17 Per discussione Marco Beri
On Jul 17, 2015 12:26 PM, Enrico Bianchi enrico.bian...@ymail.com wrote:

 On 07/17/2015 11:45 AM, Carlos Catucci wrote:

 Sperem. Sopratutto i frameworks dovrebbero fare tutti il grande passo

 Ma a parte Twisted, cos'e` rimasto da portare?

Tutte le mie applicazioni per esempio...

L
Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Marco Beri
2015-07-17 19:35 GMT+02:00 Giovanni Porcari giovanni.porc...@softwell.it:

 Mi piacerebbe sentire la vostra opinione su questo tema…


Io ho cambiato linguaggio quasi ogni anno o due dal 1983 fino al 1999. Poi
non ho più cambiato (in quell'anno ho cominciato a usare Python).

Non cambiare potrebbe essere un segno di eccessiva maturità, non lo
discuto, ma io sto bene così e in ogni caso mi trovi d'accordo :-)

Ciò detto, penso che, quasi certamente, mi metterò a imparare Go. Per
curiosità (e fiducia) più che altro.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Giovanni Porcari
Non metto OT perchè con sto caldo ci sono così tanti OT che sarebbe più OT
parlare esplicitamente di Python.

La mia domanda comunque nasce dalle recenti mail relative a python vs go
e ai richiami ad altri linguaggi. Ho  visto appassionanti comparazioni
su features più o meno esotiche, ho visto vantare leggibilità o
possibilità di scrivere procedure meno esposte a bug, ho letto
con interesse tutte queste cose ma alla fine mi sono chiesto:
Ma quanto conta il linguaggio per scrivere buone applicazioni ?

Io identifico come elemento primario nella scrittura di un’applicazione
di una certa complessità la sua architettura. Ovvero come si riesce
ad analizzare il problema e come questo si traduce in sotto problemi
in un modo elegante e facile da mantenere.

Se la nostra applicazione fosse un edificio assomiglierebbe
ad una torre svettante nel cielo e ricoperta da una facciata
tutta a specchi o sarebbe un edificio basso con profonde cantine
e lunghi corridoi ? Assomiglierebbe al duomo di Milano o al Partenone ?

Insomma io credo che il modo in cui un’applicazione si struttura
in servizi condivisi, il modo in cui distribuisce le risorse
di memorizzazione e di elaborazione, il modo in cui pianifica
da subito i possibili futuri cambiamenti conti alla fine ben più
del linguaggio usato. Il linguaggio è uno strumento di lavoro,
il modo che ho per costruire l’edificio. Ma posso fare ottimi edifici
persino in PHP e con questo credo di aver già rischiato di farmi
strangolare.

Quando sento dire che di volta in volta si può scegliere il linguaggio
migliore per lo specifico problema io penso che sia un’affermazione valida
per un ristretto numero di eletti (spesso grandi bevitori di birra) che
riescono a padroneggiare i linguaggi con la stessa facilità con cui
un bravo giocoliere fa volteggiare 12 mazze sulla sua testa mentre
attraversa una stretta passerella su un precipizio.

Io credo invece che uno sviluppatore non così abile, dovrebbe limitarsi
a conoscere bene un linguaggio in modo da sfruttarlo al meglio
e conoscerne soprattutto i limiti e i punti deboli.
Quando si cambia cavallo si rischia spesso di ottenere un risultato 
meno valido non perchè questo sia un brocco, anzi, ma perchè non lo si
conosce bene e si commettono errori che solo anni di esperienza
ti portano ad evitare.

Quindi io amo python perchè mi permette di concentrarmi sull’architettura
della soluzione e mi aiuta a scrivere con naturalezza del codice che
funziona bene e che riesco a mantenere. So benissimo che mi perdo 
un sacco di raffinate features, ma so anche che essendo comunque un
ottimo linguaggio, non mi mette nella necessità di cambiare.
Neppure per passare a python 3. Per le stesse ragioni che enunciavo prima.


Mi piacerebbe sentire la vostra opinione su questo tema…


G.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Non solo le signore (era: Re: Python innovation -- no longer OT --[Re: OT ma interssante])

2015-07-17 Per discussione enrico franchi
2015-07-17 17:01 GMT+01:00 Manlio Perillo manlio.peri...@gmail.com:

 Però Python non è poi così semplice.


Lo era. Oggi... credo che buona parte degli sviluppatori non siano a loro
agio con molte features user level dello stesso.


--
* user level: non sto parlando di dettagli implementativi o di edge case di
librerie dovuti a bachi et similia. Parlo semplicemente di features del
linguaggio.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Non solo le signore (era: Re: Python innovation -- no longer OT --[Re: OT ma interssante])

2015-07-17 Per discussione Carlos Catucci
On 17 July 2015 at 19:56, Simone Federici s.feder...@gmail.com wrote:

 suggerisco alla prossima pycon di aggiungere la sub community degli
 expythonistigolanghisti


Tu dicevi li nello stanzione dell scope? Quello che quando si chiude la
porta non si riesce piu' ad aprire (sopratutto dopo che hai buttato la
chiave a mare)?  ;)

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] OT ma interssante

2015-07-17 Per discussione Carlos Catucci
Per il resto, davvero, non vedo come possiamo continuare la discussione con
un minimo di interesse

Troppo caldo per polemizzare. Accetto il tuo punto di vista (il chiudiamola
qui, non e' una cosa cattiva avere differenti pow).

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Simone Federici
marco perché java 2 volte?

cmq non la facciamo una guerra di religione, ognuno di noi da focus alle
attività che fa e ha fatto nella propria carriera. Mica abbiamo tutti fatto
le stesse cose.

Io un progetto dove posso usare GO ancora non ce l'ho, mi sembra
interessante ma finche non ho un caso reale con cui posso interagire,
rimarrà solo letteratura.

Python invece riesco a infilarlo ovunque, in qualsiasi ambito mi capiti a
tiro.

Tra parentesi guardatevi Java 8 che finalmente ha introdotto le lambda e
gli streams con un po' di funzionale che non guasta. Gli streams funzionano
anche in parallelo.

io di esperienze con altri linguaggi ne ho davvero poche, certo ho giocato
a 12 ani con basic e ho imparato a programmare con pascal e qualche tipo
action scripts, assembler, C, C++... però di lavori pagati direi che si
riassumono in java python e javascript sui browser.

Per l'ambito dove sto io per ora, passare a go è un suicidio. Però il
concept alla base è ottimo e sicuramente nei prossimi anni potrebbero
aprirsi delle strade in tal senso.

Io credo che più che imparare a programmare con un nuovo linguaggio, serva
tenersi aggiornati su tutte le novità del mercato per trovarsi nel momento
che serve una scelta a fare quella corretta. Non sempre siamo tenuti a
scegliere, non sempre vale la pena scegliere. Ma sempre vale la pena
spulciare, studiare, guardare, crescere...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Giovanni Porcari

 Il giorno 17/lug/2015, alle ore 23:40, enrico franchi 
 enrico.fran...@gmail.com ha scritto:
 
 
 2015-07-17 21:56 GMT+01:00 Giovanni Porcari giovanni.porc...@softwell.it:
 Si… capisco che è bello conoscere molti linguaggi.
 Ma, non per essere pedante, quanto conta il linguaggio nella risoluzione di 
 un problema ?
 
 Tanto la domanda chiave nel messaggio iniziale e' sempre questa. Quanto 
 conta? Tantissimo.
 
 Allora, per intenderci, il linguaggio conta poco se lo usi male o se lo 
 conosci poco. Per intenderci, se conosci bene Java (per dire) arriverai in 
 fondo anche ad un progetto in Python. Verosimilmente avrai scritto Java in 
 Python. Sara' lento come Python, sovra-ingegnerizzato come Java e ti sarai 
 perso una serie di possibilita' a livello di libreria standard e di librerie 
 accessorie. Pero', probabilmente, sarai in grado di consegnare.
 
 Questo e' il famoso problema di Blurb (http://www.paulgraham.com/avg.html): 
 se volete leggere poco, leggete solo la sezione chiamata Blurb Paradox.
 
 Se il linguaggio lo usi bene, conta tantissimo. Perche' semplicemente certi 
 linguaggi hanno come costrutti nativi cose che possono essere molto rilevanti 
 (o meno) per il tuo problema specifico. Che so... facciamo un esempio 
 concreto per non pontificare. Supponi che la tua applicazione abbia bisogno 
 di un concetto di plugin. Sempre per semplificare, immaginiamo che puoi 
 astrarre il tuo plugin come una classe (o come un set di funzioni/API ben 
 definite) la cui implementazione effettiva viene caricata a runtime sulla 
 base di un parametro di configurazione. 
 
 Questo problema in Python lo risolvi con importlib, che ti suca la tua classe 
 sulla base di una stringa tipo
 project.authentication.kerberos.Plugin
 ora, e' vero che devi sempre implementarti Plugin, ma e' anche vero che per 
 il resto tutto il resto te lo da la libreria standard (e il fatto che il tuo 
 linguaggio e' altamente dinamico). Hai ancora il problema di gestire gli 
 import path (ovvero il tuo plugin viene separato dalla tua applicazione, ci 
 vorra' un modo di dire dove sucare i plugin) che potrebbe essere una seconda 
 stringa (il path) e tre righe di python che rendono qulla directory visibile 
 a Python. Davvero, hai finito. 
 
 Ora, immagina di risolvere la cosa in C++. Intanto devi in qualche modo 
 astrarre il meccanismo di loading di un .so, poi devi trovare un modo di 
 gestire i problemi di compatibilita' binaria di C++, poi avrai sempre 
 problemucci tipo il problema di deallocare/allocare roba sui bordi della 
 libreria. Il problema e' molto piu' complicato. A seconda di quanto tempo 
 hai, l'intera feature potrebbe dovere essere soppressa. 
 
 Questa per una cosa banale e concreta che tutti masticano. Poi ci sono cose 
 piu' filosofiche: certi costrutti che semplicemente semplificano la vita 
 perche' programmi ad un livello piu' alto (o ti danno piu' controllo sul 
 basso livello). Non tutti i progetti ne hanno bisogno, ma spesso saltano 
 fuori questo tipo di requirement in modo inaspettato. Ci sono interi 
 costrutti che ti aprono la mente ad un modo di pensare che semplifica 
 moltissimo l'architettura e il design.
 
 Poi ci sono limiti intrinseci del linguaggio... per esempio il problema di 
 Python e' che devi *sempre* spostare a livello di architettura problemi che 
 vorresti risolvere a livello di design. Ogni qual volta in Python hai un 
 componente che deve fare sia molto I/O che molta CPU e non puoi isolarlo 
 completamente (che a sua volta e' una scelta architetturale) devi introdurre 
 una complicazione achitetturale non indifferente. Devi prendere code di 
 comunicazione ed esternalizzarle, affrontare il problema di serializzazione e 
 deserializzazione. La stessa applicazione in Java potrebbe avere 
 un'architettura simile in termini di macro-componenti, e tuttavia essere 
 significativamente piu' semplice (si, Redis, per quanto semplice, e' piu' 
 complicato e piu' costoso di una Bounded Queue e tirare a mano Celery per 
 spezzare task CPU bound da task I/O bound e' sensibilmente piu' complicato di 
 avere due thread pool). A volte non importa, a volte e' un problema.
 
 Ma non solo... certe idee architetturali vengono in modo naturale dall'avere 
 visto possibilita' a livello di linguaggio che non si conoscevano. Per 
 esempio... l'idea della lambda architecture, e di lavorare essenzialmente con 
 un set di dati immutabili, append only e' direttamente figlio di un modo di 
 programmare che si ha nei linguaggi funzionali, se puri e' meglio. Se hai 
 visto il mondo funzionale, pensare in termini di map-reduce e' 
 drammaticamente semplice e l'idea stessa che la mutabilita' dei database e' 
 il vero problema che rende il CAP theorem uno scoglio mastodontico viene 
 sempre da li. Non necessariamente in termini che devi usare un linguaggio 
 funzionale per risolvere il problema (anzi), ma dal fatto che il tuo cervello 
 si trova a tuo agio in questo mondo.
 
 Supponi che io ti dicessi che il 

Re: [Python] Non solo le signore (era: Re: Python innovation -- no longer OT --[Re: OT ma interssante])

2015-07-17 Per discussione Gian Mario Tagliaretti
Il 17 luglio 2015 16:56, Nicola Larosa n...@teknico.net ha scritto:

Approposito di innovazione...

 Esattamente. E quasi vent'anni dopo Go ne raccoglie l'eredità, quasi
 esattamente nello stesso spazio.

e magari non proprio 20 anni dopo ma che fine ha fatto Dart? JS
troppo complicato da uccidere (come meriterebbe) sotto una montagna di
letame?

ciao
-- 
Gian Mario Tagliaretti
GNOME Foundation member
gia...@gnome.org
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Marco Beri
On Jul 17, 2015 9:04 PM, Karim lemieli...@gmail.com wrote:


 2015-07-17 20:46 GMT+03:00 Marco Beri marcob...@gmail.com:

 Io ho cambiato linguaggio quasi ogni anno o due dal 1983 fino al 1999.
Poi non ho più cambiato (in quell'anno ho cominciato a usare Python).


 ​Marco, si parla di almeno una decina di linguaggi... ​

Usati per almeno un progetto nella mia vita:

- basic
- cobol
- c
- clipper
- pascal
- c++
- visual basic
- java
- lotus script
- perl
- javascript
- java
- abap
- lisp

A mani basse vince Python... Ma proprio a mani basse.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Marco Beri
On Jul 17, 2015 10:36 PM, Simone Federici s.feder...@gmail.com wrote:

 marco perché java 2 volte?

Perché ho bevuto 4 birre alla grigliata della squadra di basket... :-D
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] OT ma interssante

2015-07-17 Per discussione enrico franchi
2015-07-17 20:50 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:

 Troppo caldo per polemizzare. Accetto il tuo punto di vista (il
 chiudiamola qui, non e' una cosa cattiva avere differenti pow).


No, certo. Beh, qui non fa troppo caldo. Mi limito a dire che se vogliamo
proseguire, secondo me bisogna costruire un po' di linguaggio comune (e
considerare i punti di cui sopra), senza non puo' che finire con X ha Y, si
ma Y non e' veramente perche' Z, ah, ma Z no... accidenti ho finito
l'alfabeto.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quanto conta il linguaggio ?

2015-07-17 Per discussione Giovanni Porcari

 Il giorno 17/lug/2015, alle ore 22:36, Simone Federici s.feder...@gmail.com 
 ha scritto:
 
 marco perché java 2 volte?
 
 cmq non la facciamo una guerra di religione, ognuno di noi da focus alle 
 attività che fa e ha fatto nella propria carriera. Mica abbiamo tutti fatto 
 le stesse cose.
 
 Io un progetto dove posso usare GO ancora non ce l'ho, mi sembra interessante 
 ma finche non ho un caso reale con cui posso interagire, rimarrà solo 
 letteratura.
 
 Python invece riesco a infilarlo ovunque, in qualsiasi ambito mi capiti a 
 tiro.
 
 Tra parentesi guardatevi Java 8 che finalmente ha introdotto le lambda e gli 
 streams con un po' di funzionale che non guasta. Gli streams funzionano anche 
 in parallelo.
 
 io di esperienze con altri linguaggi ne ho davvero poche, certo ho giocato a 
 12 ani con basic e ho imparato a programmare con pascal e qualche tipo action 
 scripts, assembler, C, C++... però di lavori pagati direi che si riassumono 
 in java python e javascript sui browser.
 
 Per l'ambito dove sto io per ora, passare a go è un suicidio. Però il concept 
 alla base è ottimo e sicuramente nei prossimi anni potrebbero aprirsi delle 
 strade in tal senso. 
 
 Io credo che più che imparare a programmare con un nuovo linguaggio, serva 
 tenersi aggiornati su tutte le novità del mercato per trovarsi nel momento 
 che serve una scelta a fare quella corretta. Non sempre siamo tenuti a 
 scegliere, non sempre vale la pena scegliere. Ma sempre vale la pena 
 spulciare, studiare, guardare, crescere…

Si… capisco che è bello conoscere molti linguaggi.
Ma, non per essere pedante, quanto conta il linguaggio nella risoluzione di un 
problema ?

Ovvero, facendo un paragone magari sciocco, abbiamo opere meravigliose scritte
in tutte le lingue note all’uomo. Nessuno confonderebbe la lingua usato con 
i contenuti espressi, la costruzione della vicenda, nel caso di un romanzo, o
la capacità di evocare un’immagine poetica usando una specifica parola o rima.
Probabilmente pensiamo che il francese sia perfetto per una poesia romantica
mentre magari siamo portati a credere che il tedesco risulti meno adatto
a questo compito.

Io dico che il linguaggio conta alla fine molto poco e che bisognerebbe
anche trovare il tempo di chiacchierare di architettura delle soluzioni
e di come passare dal problema alla sua implementazione. 

Quando sono a pycon mi godo sempre con grande piacere i talk di Alex
Martelli perchè, pur parlando di python, non si focalizza tanto
sul linguaggio in sè, quanto sui pattern, sui problemi e sulle
possibili strategie di risoluzione mostrando vantaggi e svantaggi.

Io di python apprezzo il fatto che mi pesa poco e mi consente
facilmente di passare dall’idea al prototipo e alla realizzazione
finale. Poi magari la risoluzione finale in GO sarebbe stata più
valida e avrebbe prestazioni superiori ma non so se consente
la stessa agilità di prototipazione e risoluzione.

G
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python