Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-11-30 Thread Carlos Catucci
N
Il giorno 30/nov/2014 14:20, "Nicola Larosa"  ha scritto:
>
> Marco Ippolito wrote:
> > Comunque è un tool in più... meglio averlo che non averlo.
>
> Che cosa non-pythonica che hai detto.

+1

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-11-30 Thread Marco Ippolito
ciao Carlos,
sarà effettivamente una cosa poco pythonica.

Stavo cercando una spiegazione razionale al fatto che manuali e libri
ne parlano, pur non essendoci, a quanto pare, evidenti motivi per
usare @staticmethod in modo esteso.

Marco

Il 30 novembre 2014 14:36, Carlos Catucci  ha scritto:
> N
> Il giorno 30/nov/2014 14:20, "Nicola Larosa"  ha scritto:
>>
>> Marco Ippolito wrote:
>> > Comunque è un tool in più... meglio averlo che non averlo.
>>
>> Che cosa non-pythonica che hai detto.
>
> +1
>
> Carlos
>
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-11-30 Thread Carlos Catucci
2014-12-01 8:20 GMT+01:00 Marco Ippolito :

>
> Stavo cercando una spiegazione razionale al fatto che manuali e libri
> ne parlano, pur non essendoci, a quanto pare, evidenti motivi per
> usare @staticmethod in modo esteso.


Nel Kerningam & Ritchie viene citato il costrutto goto in C. Questo perche'
e' presente, nel linguaggio, per cui, in teoria, si potrebbe usare. Io in
25 anni che programma di cui una buona parte (nella parte iniziale
sopratutto) ho usato il C e mai mi sono trovato nell'ipotetica condizione
per cui avrei dovuto usarlo.
Quello che voglio dire e' che un manuale deve presentarti tutte le opzioni,
poi sta a te scegliere se usare io meno una feature.

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-11-30 Thread Marco Ippolito
La chiave di tutto ciò sta nell'esperienza.
Più hai esperienza, e più interagisci con persone che hanno
esperienza, e più riesci a districarti in tutti questi aspetti che
sembrano banali ma, per chi come me, non è molto che programma, sono
importanti.
Per questo che ringrazio te, Carlos, e gli altri, per tutti i consigli
che ci date.

Marco

Il 1 dicembre 2014 08:45, Carlos Catucci  ha scritto:
>
> 2014-12-01 8:20 GMT+01:00 Marco Ippolito :
>>
>>
>> Stavo cercando una spiegazione razionale al fatto che manuali e libri
>> ne parlano, pur non essendoci, a quanto pare, evidenti motivi per
>> usare @staticmethod in modo esteso.
>
>
> Nel Kerningam & Ritchie viene citato il costrutto goto in C. Questo perche'
> e' presente, nel linguaggio, per cui, in teoria, si potrebbe usare. Io in 25
> anni che programma di cui una buona parte (nella parte iniziale sopratutto)
> ho usato il C e mai mi sono trovato nell'ipotetica condizione per cui avrei
> dovuto usarlo.
> Quello che voglio dire e' che un manuale deve presentarti tutte le opzioni,
> poi sta a te scegliere se usare io meno una feature.
>
> Carlos
> --
> EZLN ... Para Todos Todo ...
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-01 Thread Carlos Catucci
2014-12-01 8:58 GMT+01:00 Marco Ippolito :

> Per questo che ringrazio te, Carlos, e gli altri, per tutti i consigli
> che ci date.
>

Il bello delle comunita', come questa ML, e' che ci si aiuta tra noi.

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread enrico franchi
2014-12-01 7:45 GMT+00:00 Carlos Catucci :

Nel Kerningam & Ritchie viene citato il costrutto goto in C. Questo perche'
> e' presente, nel linguaggio, per cui, in teoria, si potrebbe usare. Io in
> 25 anni che programma di cui una buona parte (nella parte iniziale
> sopratutto) ho usato il C e mai mi sono trovato nell'ipotetica condizione
> per cui avrei dovuto usarlo.


Strano. Io e' parecchio che sviluppo in C, lo ho usato, lo uso e lo vedo
usare. Non solo, penso che sia *evidente* che non usandolo si complica la
gestione degli errori in modo mostruoso.
Di fatto non uso goto (e non ne sento bisogno) se ho gestione
dell'eccezioni oppure affary tipo maybe.
D'altra parte SPwGS e' del '74 e dovrebbe essere ormai assodato.

In particolare, il goto di C e' piuttosto safe. Non e' certo il goto dei
vecchi basic. E non ci sono molti costrutti che ci fanno a cazzotti (come
in C++; ma tanto li ho le eccezioni e vado pure meglio).

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Carlos Catucci
2014-12-05 15:46 GMT+01:00 enrico franchi :

> In particolare, il goto di C e' piuttosto safe. Non e' certo il goto dei
> vecchi basic. E non ci sono molti costrutti che ci fanno a cazzotti (come
> in C++; ma tanto li ho le eccezioni e vado pure meglio)


Perdonami ma io i problemi che evidenzi a NON usarlo mai visti.

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Walter Valenti

>
>In particolare, il goto di C e' piuttosto safe. Non e' certo il goto dei 
>vecchi basic. E non ci sono molti costrutti che ci fanno a cazzotti (come in 
>C++; ma tanto li ho le eccezioni e vado pure meglio)
>
>Perdonami ma io i problemi che evidenzi a NON usarlo mai visti.
>


Ai tempi dell'università, il "goto" ci era stato caldamente consigliato
di non usarlo.
Della serie: "esiste, ma guai a voi se lo usate".

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Carlos Catucci
2014-12-05 17:23 GMT+01:00 Walter Valenti :

> Ai tempi dell'università, il "goto" ci era stato caldamente consigliato
> di non usarlo.
> Della serie: "esiste, ma guai a voi se lo usate".
>

Professori seri, non ce ne sono piu' ;)

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Roberto De Ioris

>
>>
>>In particolare, il goto di C e' piuttosto safe. Non e' certo il goto dei
>> vecchi basic. E non ci sono molti costrutti che ci fanno a cazzotti (come
>> in C++; ma tanto li ho le eccezioni e vado pure meglio)
>>
>>Perdonami ma io i problemi che evidenzi a NON usarlo mai visti.
>>
>
>
> Ai tempi dell'università, il "goto" ci era stato caldamente consigliato
> di non usarlo.
> Della serie: "esiste, ma guai a voi se lo usate".
>
> Walter


Questa cosa del goto in C e' stata gia' discussa in lista qualche anno fa.

Non ho idea di cosa si insegni nei corsi accademici, ma goto in C si usa
eccome, anzi e' un ottimo modo per migliorare la leggibilita' e la
qualita' del codice. Francamente ci sono svariati costrutti che
rabbrividerei al solo pensiero di farli senza goto (mi ritroverei con dei
blocchi annidati da competizione).

Il kernel linux, apache, nginx, i vari BSD, python stesso sono strapieni
di goto.

Poi ovvio se si usa il goto al posto di una funzione (come si faceva in
basic) stai facendo male. Se usi il goto quando hai altro (come le
eccezioni in C++ come diceva enrico) stai facendo male. Ma il c "moderno"
(sempre che voglia dire qualcosa visto che il linguaggio non si e'
praticamente mai evoluto) senza goto sarebbe un incubo.


-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Roberto De Ioris

> 2014-12-05 17:36 GMT+01:00 Roberto De Ioris :
>
>>
>> Poi ovvio se si usa il goto al posto di una funzione (come si faceva in
>> basic) stai facendo male. Se usi il goto quando hai altro (come le
>> eccezioni in C++ come diceva enrico) stai facendo male. Ma il c
>> "moderno"
>> (sempre che voglia dire qualcosa visto che il linguaggio non si e'
>> praticamente mai evoluto) senza goto sarebbe un incubo.
>
>
> a me fu insegnato che se lo usavi avevi sbagliato algoritmo
>
>

beh ti hanno insegnato qualcosa che si discosta parecchio dalla vita di
tutti i giorni (almeno negli ultimi 15 anni) :)

Prendi ad esempio l'implementazione di marshal.c in Python. Non puoi non
dire che goto renda il tutto piu' leggibile e chiaro.

Poi oh, i tempi cambiano, magari tra 10 anni tutti si mettono a usare
longjmp/setjmp

-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread enrico franchi
2014-12-05 16:23 GMT+00:00 Walter Valenti :

> Ai tempi dell'università, il "goto" ci era stato caldamente consigliato
> di non usarlo.
>

Classico effetto "mi hanno detto che non va bene". In particolare tutto
nacque dal paper di Dijkstra.
Per inciso, Dijkstra stesso si e' espresso in modo piu' moderato sullo
stesso punto in seguito.
Il fatto e' che quel paper viene sempre citato, non e' stato in generale
letto o capito da chi lo cita.
E ovviamente tutte le condizioni al contorno non vengono *minimamente*
tenute in considerazione.

Come appunto dicevo, nella pratica si usa. Le alternative sono peggiori.
Specie perche' il goto di C ha relativamente poco in comune

Il punto e' che in C non hai le eccezioni. Il che vuole dire che il
classico pattern

res1_acq
res2_acq
res3_acq

do_something
do_something
do_something

clean_res1
clean_res2
clean_res3

diventa piuttosto tricky quando ci devi appunto ficcare in mezzo il fatto
che ogni operazione dopo res1_acq deve pulire res1, ogni operazione dopo
res2_acq deve pulire res2 (e per quanto detto prima, pure res1) e cosi' via.
La struttura usando goto risulta *parecchio* semplice e leggibile (e si
puo' anche sfruttare l'effetto a cascata).

Appunto, come diceva Roberto, e' una pratica talmente diffusa e ovvia che
e' veramente strambo parlarne. Basta leggere un po' di codice in giro (e si
parla di progetti piuttosto di peso, non roba scritta da principianti).



> Della serie: "esiste, ma guai a voi se lo usate".

Tenendo conto che la maggior parte delle persone che fanno il primo corso
di programmazione sono in difficolta' pure con il while, capisco la
posizione.
E anche tenendo conto che i programmi che si fanno in questi contesti sono
sufficientemente semplici, specialmente allocano molte poche risorse...
probabilmente files e memoria e fine della fiera.
Dopo di che, sfortunatamente, questo dogma resta, evidentemente senza
capirne il fondamento. Peccato che di tutte le cose piu' o meno utili
insegnate in universita' questo sia indelebile... mentre tanta altra roba
viene persa.

Credo che il motivo sia che non si e' dovuto lavorare piu' di tanto in C...
puo' essere?


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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Carlos Catucci
2014-12-05 17:36 GMT+01:00 Roberto De Ioris :

>
> Poi ovvio se si usa il goto al posto di una funzione (come si faceva in
> basic) stai facendo male. Se usi il goto quando hai altro (come le
> eccezioni in C++ come diceva enrico) stai facendo male. Ma il c "moderno"
> (sempre che voglia dire qualcosa visto che il linguaggio non si e'
> praticamente mai evoluto) senza goto sarebbe un incubo.


a me fu insegnato che se lo usavi avevi sbagliato algoritmo

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Carlos Catucci
2014-12-05 17:49 GMT+01:00 Roberto De Ioris :

> beh ti hanno insegnato qualcosa che si discosta parecchio dalla vita di
> tutti i giorni (almeno negli ultimi 15 anni) :)
>

Parliamo di 25 anni fa, lavoravo su WS Unix Motif
Poi C usato meno solo per cose piccole, moduletti veloci.

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


Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)

2014-12-05 Thread Gian Mario Tagliaretti
Il giorno 5 dicembre 2014 15:53, Carlos Catucci
 ha scritto:

> 2014-12-05 15:46 GMT+01:00 enrico franchi :

>> In particolare, il goto di C e' piuttosto safe. Non e' certo il goto dei 
>> vecchi basic. E non ci sono molti costrutti che ci fanno a cazzotti (come in 
>> C++; ma tanto li ho le eccezioni e vado pure meglio)

> Perdonami ma io i problemi che evidenzi a NON usarlo mai visti.

D'accordissimo con Enrico, *non* usandolo la gestione degli errori si
complica, è molto usato (e comodo), inutile dire il contrario

[gianmt@localhost gtk+]$ grep -rw goto * | wc -l
514

[gianmt@localhost glib]$ grep -rw goto * | wc -l
1308

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