Re: [Python] Il troppo stroppia (era: Re: Quando è opportuno usare @staticmethod?)
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
Re: [Python] Mie considerazioni su come fare parti complesse di sw:cosa ne pensate?
concordo con tutto Enrico. hai qualche consiglio di best practise? Il giorno 05/dic/2014 12:46, "enrico franchi" ha scritto: > > > 2014-12-02 12:32 GMT+00:00 Marco Ippolito : > >> Ciao a tutti, >> dopo aver sbattuto la testa in tanti errori che sto facendo, ho capito >> alcune cose che forse, più che specifiche a python, sono attinenti ad >> una realizzazione generica di software. >> Volevo comunque condividerle con voi, per chiedervi cosa ne pensate. >> > > Sembra tutto un problema di esperienza + eventualmente mancanza di good > practice. > Stando nell'astratto, non e' che si puo' dire. > > C'e' spesso anche la questione di fare il passo piu' lungo della gamba, > che purtroppo non e' sempre evitabile. > > -- > . > ..: -enrico- > > ___ > 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-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 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 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 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?)
> >> >>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 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?)
> >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 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-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] Quando è opportuno usare @staticmethod?
2014-12-01 13:21 GMT+00:00 Marco Ippolito : > Hai qualche link od esempio sotto mano in riguardo Enrico? No. Metti insieme cosa e' uno strategy pattern e come funziona getattr con quello che fa staticmethod. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Mie considerazioni su come fare parti complesse di sw:cosa ne pensate?
2014-12-02 12:32 GMT+00:00 Marco Ippolito : > Ciao a tutti, > dopo aver sbattuto la testa in tanti errori che sto facendo, ho capito > alcune cose che forse, più che specifiche a python, sono attinenti ad > una realizzazione generica di software. > Volevo comunque condividerle con voi, per chiedervi cosa ne pensate. > Sembra tutto un problema di esperienza + eventualmente mancanza di good practice. Stando nell'astratto, non e' che si puo' dire. C'e' spesso anche la questione di fare il passo piu' lungo della gamba, che purtroppo non e' sempre evitabile. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python