Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20725 > unrolled thread

goto

Started byg4b0 <email_sul_mio_sito@che_leggi_in.firma>
First post2016-04-27 15:52 +0200
Last post2016-04-30 08:03 -0700
Articles 13 on this page of 33 — 11 participants

Back to article view | Back to it.comp.www.php


Contents

  goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-04-27 15:52 +0200
    Re: goto "ciccio" <21669invalid@mynewsgate.net> - 2016-04-27 15:29 +0000
    Re: goto Delta11 <delta11NoPSAM@email.it> - 2016-04-27 21:46 +0200
      Re: goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-04-28 08:58 +0200
        Re: goto M_M <spam@the.hell> - 2016-05-05 10:25 +0200
          Re: goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-05-05 12:28 +0200
          Re: goto Delta11 <delta11NoPSAM@email.it> - 2016-05-07 22:53 +0200
            Re: goto Leonardo Serni <lserni@gmail.com> - 2016-05-08 00:57 +0200
              Re: goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-05-09 16:41 +0200
      Re: goto fmassei@gmail.com - 2016-04-28 16:24 -0700
    Re: goto Alex <tommaso5ita@yahoo.it> - 2016-04-28 11:13 +0200
      Re: goto Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-28 10:26 +0100
        Re: goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-04-28 12:43 +0200
          Re: goto Alex <tommaso5ita@yahoo.it> - 2016-04-28 15:40 +0200
            Re: goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-04-29 10:00 +0200
          Re: goto "ciccio" <21669invalid@mynewsgate.net> - 2016-04-28 16:54 +0000
            Re: goto liftman <liftman_antispam_@moredifficult.org> - 2016-04-29 00:45 +0200
              Re: goto Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-29 10:26 +0100
                Re: goto liftman <liftman_antispam_@moredifficult.org> - 2016-04-29 14:44 +0200
                  Re: goto Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-29 16:26 +0100
                    Re: goto liftman <liftman_antispam_@moredifficult.org> - 2016-04-29 18:16 +0200
                      Re: goto fmigliori <fmigliori@gmail.com> - 2016-04-30 03:33 -0700
                        Re: goto liftman <liftman_antispam_@moredifficult.org> - 2016-04-30 13:11 +0200
                          Re: goto Andrea D'Amore <anddam+NOSPAM@brapi.net> - 2016-04-30 13:26 +0200
                            Re: goto liftman <liftman_antispam_@moredifficult.org> - 2016-04-30 14:13 +0200
                          Re: goto fmigliori <fmigliori@gmail.com> - 2016-04-30 04:46 -0700
                            Re: goto liftman <liftman_antispam_@moredifficult.org> - 2016-04-30 14:11 +0200
                              Re: goto fmigliori <fmigliori@gmail.com> - 2016-04-30 05:36 -0700
    Re: goto fmassei@gmail.com - 2016-04-28 16:29 -0700
      Re: goto g4b0 <email_sul_mio_sito@che_leggi_in.firma> - 2016-04-29 09:52 +0200
        Re: goto fmassei@gmail.com - 2016-04-30 08:03 -0700
      Re: goto Leonardo Serni <lserni@gmail.com> - 2016-04-29 16:01 +0200
        Re: goto fmassei@gmail.com - 2016-04-30 08:03 -0700

Page 2 of 2 — ← Prev page 1 [2]


#20751

Fromliftman <liftman_antispam_@moredifficult.org>
Date2016-04-29 18:16 +0200
Message-ID<ng01c7$685$1@gioia.aioe.org>
In reply to#20748
Il 29/04/2016 17:26, Alessandro Pellizzari ha scritto:

> Se per uscire da un ciclo di controllo della password, magari
> intervallato da controlli ACL, uno usa un goto, ci sono buone
> probabilità che esca nel posto sbagliato e dia accesso a certi utenti,
> con comportamenti difficili da debuggare.

si certo ma... se io non sono buono a programmare lo sono col goto o 
senza. Lo stesso errore lo posso fare con qualunque tipo di controllo. 
Se parliamo di "incasinamento" del software  concordo, per il resto no, 
il problema non è l'istruzione, ma come la si usa.

-- 
Fri(END), Boyfri(END), Girlfri(END), Bestfri(END). Everything has an END 
except...Fam(ILY)! It Has 3 Letters that say I LOVE YOU

[toc] | [prev] | [next] | [standalone]


#20754

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-30 03:33 -0700
Message-ID<57580335-f4b7-48ff-a659-a7f8d413d06a@googlegroups.com>
In reply to#20751
> si certo ma... se io non sono buono a programmare lo sono col goto o 
> senza.

è un po' come dire: il bravo dentista può usare tranquillamente un martello pneumatico per l'igiene dentale altrimenti è un disastro con qualsiasi altro strumento. Se ti accorgi che il tuo dentista usa strumenti di fine settecento o da cantiere, può essere bravo quanto vuoi, ma io non starei lì ad appurarlo.

Forse il bravo dentista lo vedi anche dagli strumenti che usa e da quelli che evita e come gli strumenti del dentista cambiano così i costrutti e i paradigmi dei programmatori.

Condivido in pieno l'opinione di chi considera l'uso del goto sia da usare solo sotto tortura (psicologia e non), quando ripristinare lo stato di servizio è fondamentale per non intaccare l'uptime, non per il normale sviluppo.

[toc] | [prev] | [next] | [standalone]


#20756

Fromliftman <liftman_antispam_@moredifficult.org>
Date2016-04-30 13:11 +0200
Message-ID<ng23sk$u6c$2@gioia.aioe.org>
In reply to#20754
Il 30/04/2016 12:33, fmigliori ha scritto:
>> si certo ma... se io non sono buono a programmare lo sono col goto o
>> senza.
>
> è un po' come dire: il bravo dentista può usare tranquillamente un
 > martello pneumatico per l'igiene dentale altrimenti è un disastro
 > con qualsiasi altro strumento. Se ti accorgi che il tuo dentista usa
 > strumenti di fine settecento o da cantiere, può essere bravo quanto
> vuoi, ma io non starei lì ad appurarlo.

un paragone un po' del cavolo eh..

> Forse il bravo dentista lo vedi anche dagli strumenti che usa e da
> quelli che evita e come gli strumenti del dentista cambiano così i
> costrutti e i paradigmi dei programmatori.

il bravo dentista è un bravo dentista a prescindere. Così come qualsiasi 
"bravo" lo è a prescindere dai mezzi che usa. Dubito che un dentista 
anche scarso, che possa servirsi di un *makita* o di un *black&decker* 
:-D Seguando il ragionamento "attrezzatura figa = mostro di bravura", 
credo si vada da poche parti. Conoscevo un meccanico che aveva in 
officina tutto l'immaginabile e forse anche qualcosa in più, ma per 
carità... Di contro ne conoscevo un altro che con una spranga e 2 
martelli raddrizzava dei serbatoi per moto (con ottimi risultati eh.. 
una passata di stucco una carteggiata e via di colore..) che chiunque 
avrebbe buttato nella spazzatura.

> Condivido in pieno l'opinione di chi considera l'uso del goto sia da usare
 > solo sotto tortura (psicologia e non), quando ripristinare lo stato di
> servizio è fondamentale per non intaccare l'uptime, non per il normale
> sviluppo.

Io continuo a non capire questo astio verso un'istruzione. Si può 
parlare di eleganza, di efficienza, di chiarezza, ma alla fine cosa 
cambia veramente?

$i = 1;
while ($i <= 10):
     echo $i;
     $i++;
endwhile;

se da qua si toglie il while e l'endwhile e si sostituiscono con un:

if ($1 <= 10)
ecc.  ecc.

e si aggiunge un goto alla fine il codice diventa veramente illeggibile? 
insicuro? inelegante? Alla fine il goto anche se invisibile nel codice 
del while c'è lo stesso...

Bha.. io sono l'ultima persona che può insegnare a programmare, ma 
veramente sono perplesso. Il goto è (IMHO) un'ulteriore possibilità di 
realizzare un qualcosa. Se fosse veramente il "male" perchè non 
eliminarlo tout court da tutti i linguaggi?


-- 
Fri(END), Boyfri(END), Girlfri(END), Bestfri(END). Everything has an END 
except...Fam(ILY)! It Has 3 Letters that say I LOVE YOU

[toc] | [prev] | [next] | [standalone]


#20758

FromAndrea D'Amore <anddam+NOSPAM@brapi.net>
Date2016-04-30 13:26 +0200
Message-ID<ng24oj$tod$1@virtdiesel.mng.cu.mi.it>
In reply to#20756
On 2016-04-30 11:11:15 +0000, liftman said:

> Seguando il ragionamento "attrezzatura figa = mostro di bravura"

Non era questo il ragionamento, il ragionamento era "persona competente 
=> sceglie gli strumenti adeguati" dove "=>" è l'implicazione logica 
(alias "se, allora", alias modus ponens).
L'espressione di uguaglianza che scrivi tu invece presuppone anche il 
verso contrario, che non è necessariamente vero.

Per assurdo io potrei trovarmi per combinazione a possedere i migliori 
strumenti dell'odontoiatria, ma ti sconsiglierei caldamente di farti 
trapanare un dente da me.

-- 
Andrea

[toc] | [prev] | [next] | [standalone]


#20761

Fromliftman <liftman_antispam_@moredifficult.org>
Date2016-04-30 14:13 +0200
Message-ID<ng27gh$13qa$2@gioia.aioe.org>
In reply to#20758
Il 30/04/2016 13:26, Andrea D'Amore ha scritto:

> Per assurdo io potrei trovarmi per combinazione a possedere i migliori
> strumenti dell'odontoiatria, ma ti sconsiglierei caldamente di farti
> trapanare un dente da me.

se mai dovessi vedere una targhetta fuori da un palazzo "Andrea D'Amore 
odontoiatra", passerò certamente oltre :-D

-- 
Fri(END), Boyfri(END), Girlfri(END), Bestfri(END). Everything has an END 
except...Fam(ILY)! It Has 3 Letters that say I LOVE YOU

[toc] | [prev] | [next] | [standalone]


#20759

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-30 04:46 -0700
Message-ID<9822d2dd-14e6-4c4b-9c0b-d922a74f5e89@googlegroups.com>
In reply to#20756
Il giorno sabato 30 aprile 2016 13:11:20 UTC+2, liftman ha scritto:
> Il 30/04/2016 12:33, fmigliori ha scritto:
> >> si certo ma... se io non sono buono a programmare lo sono col goto o
> >> senza.
> >
> > è un po' come dire: il bravo dentista può usare tranquillamente un
>  > martello pneumatico per l'igiene dentale altrimenti è un disastro
>  > con qualsiasi altro strumento. Se ti accorgi che il tuo dentista usa
>  > strumenti di fine settecento o da cantiere, può essere bravo quanto
> > vuoi, ma io non starei lì ad appurarlo.
> 
> un paragone un po' del cavolo eh..


Era per farti capire che se degli strumenti hanno mostrato dei limiti 
in passato l'esperienza ti impedisce di prenderli in considerazione 
nella progettazione di un sw. Per questo il dentista usa strumenti 
avanzati che sono drasticamente diversi da quelli di fine settecento
o quelli di un cantiere.

>io continuo a non capire questo astio verso un'istruzione.

e io non capisco il tuo astio verso le sanguisughe e i martelli pneumatici.

>if ($1 <= 10) 
>ecc.  ecc. 

>e si aggiunge un goto alla fine il codice diventa veramente illeggibile? 
>insicuro? inelegante? 

a parte che non ha senso usarlo, seconda cosa, quando modificherai 
quelle righe lo farai in maniera diversa se il codice è tra  le parentesi
graffe di un while o tra un etichetta e un goto, perché la logica del goto
è diversa da quella del while.

>Alla fine il goto anche se invisibile nel codice 
>del while c'è lo stesso... 

(è quello che diceva Leonardo che lasciava fare al compilatore che ha più esperienza)

E anche nei cantieri si usano trapani e gesso, esattamente come
ogni bravo dentista quindi perché non vanno bene?

>Il goto è (IMHO) un'ulteriore possibilità di 
>realizzare un qualcosa. 

Dipende da cosa :p

http://www.vnews24.it/2016/04/27/dentista-mutilazioni-condanna/

>Se fosse veramente il "male" perchè non 
>eliminarlo tout court da tutti i linguaggi? 

Infatti fa incupire che lo abbiano introdotto in php, speravo nel 
sovraccarico dei metodi e invece che ti fanno? il goto!

[toc] | [prev] | [next] | [standalone]


#20760

Fromliftman <liftman_antispam_@moredifficult.org>
Date2016-04-30 14:11 +0200
Message-ID<ng27cm$13qa$1@gioia.aioe.org>
In reply to#20759
Il 30/04/2016 13:46, fmigliori ha scritto:

> Era per farti capire che se degli strumenti hanno mostrato dei limiti
> in passato l'esperienza ti impedisce di prenderli in considerazione
> nella progettazione di un sw. Per questo il dentista usa strumenti
> avanzati che sono drasticamente diversi da quelli di fine settecento
> o quelli di un cantiere.

ehm.. ni :-D

Oggi un dentista non si sognerebbe mai di usare un trapano a cinghia e 
pedale, e tutti nel proprio studio hanno il trapano da almeno 30000 
giri/min, poi esisteranno modelli migliori, tutti hanno la loro luce 
sulla punta, il getto d'aria e/o l'acqua nebulizzata, ma alla fine è la 
mano che lo usa a farti male, non lo strumento. Ovviamente nessun 
dentista sano di mente, userebbe un trapano tassellatore per edilizia...

>> Alla fine il goto anche se invisibile nel codice
>> del while c'è lo stesso...
>
> (è quello che diceva Leonardo che lasciava fare al compilatore che ha più esperienza)

appunto :-D

> E anche nei cantieri si usano trapani e gesso, esattamente come
> ogni bravo dentista quindi perché non vanno bene?

per il solito motivo per cui non si dovrebbe sparare ad un passero con 
un cannone... e pure per igiene e perchè esistono delle regole :-)

>> Il goto è (IMHO) un'ulteriore possibilità di
>> realizzare un qualcosa.
>
> Dipende da cosa :p

magari esiste qualcuno allergico al for e al while :-D

> http://www.vnews24.it/2016/04/27/dentista-mutilazioni-condanna/

eh... questo era un sadico e comunque non usava attrezzature "Hilti", 
vale il discorso di poche righe sopra: "alla fine è la mano che lo usa a 
farti male"

>> Se fosse veramente il "male" perchè non
>> eliminarlo tout court da tutti i linguaggi?
>
> Infatti fa incupire che lo abbiano introdotto in php, speravo nel
> sovraccarico dei metodi e invece che ti fanno? il goto!

praticamente un involuzione del linguaggio :-)



-- 
Fri(END), Boyfri(END), Girlfri(END), Bestfri(END). Everything has an END 
except...Fam(ILY)! It Has 3 Letters that say I LOVE YOU

[toc] | [prev] | [next] | [standalone]


#20762

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-30 05:36 -0700
Message-ID<04ef243d-a08b-4401-9bc2-fde388b065bf@googlegroups.com>
In reply to#20760
>>eh... questo era un sadico e comunque non usava attrezzature "Hilti"

ma gli sarebbe piaciuto

[toc] | [prev] | [next] | [standalone]


#20739

Fromfmassei@gmail.com
Date2016-04-28 16:29 -0700
Message-ID<74fb5971-ade3-45a3-9385-7483a6e4cb55@googlegroups.com>
In reply to#20725
On Wednesday, April 27, 2016 at 9:52:12 AM UTC-4, g4b0 wrote:
> http://php.net/manual/en/control-structures.goto.php
> 
> LOL (rido per non piangere)
>

ancora una volta, la vignetta di Randall è ironica... Perché nessuno la
capisce? :(

"goto" è un'istruzione come un altra, è a disposizione tua, poi vedi te come e
quando usarla.

A quelli che dicono che non bisognerebbe usare mai goto, in nessun caso, farei
scrivere un parser L(AL)R, poi vediamo. Ma tanto 'sta gente neppure saprebbe
di cosa stiamo parlando.. :(

Ciao!

[toc] | [prev] | [next] | [standalone]


#20740

Fromg4b0 <email_sul_mio_sito@che_leggi_in.firma>
Date2016-04-29 09:52 +0200
Message-ID<572312B3.4030508@che_leggi_in.firma>
In reply to#20739
On 29/04/2016 01:29, fmassei@gmail.com wrote:
> A quelli che dicono che non bisognerebbe usare mai goto, in nessun caso, farei
> scrivere un parser L(AL)R, poi vediamo. Ma tanto 'sta gente neppure saprebbe
> di cosa stiamo parlando.. :(

Perchè tu hai mai scritto un parser LR in PHP? Non credo.

Comunque non ho detto che non bisognerebbe mai usare il goto, ho detto
(nel contesto del linguaggio PHP):

g4b0said: "può essere utile per un workaround quick&dirty se non hai
tempo per un refacor, ma alla fine hai comunque dello "spaghetti code"
con un flow che rimbalza a destra e manca."

L'unico utilizzo "sano" del goto che mi viene in mente è per sostituire
un multi-level break (come suggerito dal manuale di PHP), ma secondo me
se ti trovi in quella situazione è ora di un bel refactoring. Se non hai
tempo allora goto g4b0said;

Se mi linki una pagina di ghitub di un qualche famoso Framework, CMS o
dir si voglia che usa il goto sono disposto a ricredermi. Così come se
mi linki un riferimento ad un tuo parser LR, naturalmente :)

Detto questo, utile o no, il goto rende il codice illeggibile, e su
questo non puoi che concordare. Altrimenti significa che non hai mai
messo mano a codice altrui disseminato di goto.

-- 
g4b0, linux user n. 369000
http://brosulo.net

[toc] | [prev] | [next] | [standalone]


#20763

Fromfmassei@gmail.com
Date2016-04-30 08:03 -0700
Message-ID<74dc6d25-0060-4535-8ba0-c216e3195ea9@googlegroups.com>
In reply to#20740
On Friday, April 29, 2016 at 3:52:22 AM UTC-4, g4b0 wrote:
> On 29/04/2016 01:29, fmassei@gmail.com wrote:
> > A quelli che dicono che non bisognerebbe usare mai goto, in nessun caso,
> > farei scrivere un parser L(AL)R, poi vediamo. Ma tanto 'sta gente neppure
> > saprebbe di cosa stiamo parlando.. :(
> 
> Perchè tu hai mai scritto un parser LR in PHP? Non credo.
> 
> Comunque non ho detto che non bisognerebbe mai usare il goto, ho detto
> (nel contesto del linguaggio PHP):
> 
> g4b0said: "può essere utile per un workaround quick&dirty se non hai
> tempo per un refacor, ma alla fine hai comunque dello "spaghetti code"
> con un flow che rimbalza a destra e manca."
> 
> L'unico utilizzo "sano" del goto che mi viene in mente è per sostituire
> un multi-level break (come suggerito dal manuale di PHP), ma secondo me
> se ti trovi in quella situazione è ora di un bel refactoring. Se non hai
> tempo allora goto g4b0said;
> 
> Se mi linki una pagina di ghitub di un qualche famoso Framework, CMS o
> dir si voglia che usa il goto sono disposto a ricredermi. Così come se
> mi linki un riferimento ad un tuo parser LR, naturalmente :)
> 
> Detto questo, utile o no, il goto rende il codice illeggibile, e su
> questo non puoi che concordare. Altrimenti significa che non hai mai
> messo mano a codice altrui disseminato di goto.
> 

Ovviamente non n'ho mai scritto uno in PHP, si sono iniziati a generare
automaticamente a partire dalle grammatiche BNF molto prima che PHP esistesse,
figuriamoci quando era stabile per essere usato (il parser per PHP stesso, che
usa lo Zend engine, ad esempio, è generato con yacc) :)

Ad essere sincero non so se esista un generatore per PHP (tipo GOLD o yacc),
ma se esiste probabilmente genererà codice che ne fa gran uso.

In PHP non ne hai bisogno soprattutto perché hai le eccezioni, e quindi puoi
spezzare il flow in maniera leggibile, ma ci sono vari casi in cui non lo
vuoi fare, come interrompere un blocco di cicli annidati, una serie di
chiamate a funzione senza usare eccezioni, nei casi un cui vuoi fare un unroll
a mano, e altri ancora.

Detto questo, in PHP non ho mai usato un goto in vita mia. :D
Semplicemente per quello per cui si usa non serve mai.

Ciao!

[toc] | [prev] | [next] | [standalone]


#20747

FromLeonardo Serni <lserni@gmail.com>
Date2016-04-29 16:01 +0200
Message-ID<86q6ib1s3pnjff570nq1o950hk4h2l5mja@L.Serni>
In reply to#20739
On Thu, 28 Apr 2016 16:29:05 -0700 (PDT), fmassei@gmail.com wrote:

>A quelli che dicono che non bisognerebbe usare mai goto, in nessun caso, farei
>scrivere un parser L(AL)R, poi vediamo.

	while ($this->running()) {
		switch($status) {
			...
		}
	}

I goto ci sono, ma li mette il compilatore che c'ha esperienza ;-D

Leonardo
-- 

A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

[toc] | [prev] | [next] | [standalone]


#20764

Fromfmassei@gmail.com
Date2016-04-30 08:03 -0700
Message-ID<18267be4-d7c2-4ca9-9944-d4eb9b4d1a5f@googlegroups.com>
In reply to#20747
On Friday, April 29, 2016 at 10:02:01 AM UTC-4, Leonardo Serni wrote:
> On Thu, 28 Apr 2016 16:29:05 -0700 (PDT), fmassei@gmail.com wrote:
> 
> >A quelli che dicono che non bisognerebbe usare mai goto, in nessun caso,
> >farei scrivere un parser L(AL)R, poi vediamo.
> 
> 	while ($this->running()) {
> 		switch($status) {
> 			...
> 		}
> 	}
> 

LOL

Ciao!

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | it.comp.www.php


csiph-web