A volte ritornano: GOTO in php 5.3
E’ stato annunciato addirittura come regalo di natale, sul blog di uno degli sviluppatori, l’introduzione dell’istruzione GOTO in php 5.3.
Le motivazioni (non so se definirle ufficiali o ufficiose) sono:
- Può tornare utile per un generatore di codice
- In situazioni in cui ci sono pezzi di codice molto lungo, e per una qualsiasi ragione, in seguito a una cancellazione dell’esecuzione, bisogna fare un po di pulizia
Il mio modestissimo parere è:
- ….certo e magari passiamo anche quel codice a una bella eval(), perchè già non ci sono problemi di XSS, SQL Injection,etc… Bisogna considerare che in ogni caso anche se saranno generati automaticamente, dovranno essere mantenuti e modificati da umani.
- Non ci devono mai essere dei pezzi di codice che si possano definire lunghi, bisogna sempre spezzare il codice in metodi (al massimo in funzioni). Il problema del “cleanup finale” si può deve risolvere in altri modi, primo fra tutti try/catch il cui scopo principale è proprio la gestione degli errori.
Mi indispone molto vedere che esistono i costrutti try/catch ma il finally per qualche ragione non è ritenuto necessario e al contrario viene introdotto qualcosa che Dijkstra già dal ‘68 giudicava pericoloso per la programmazione (Go To Statement Considered Harmful). Discutendo con altri miei colleghi riguardo a questa scelta ci siamo accorti che nessuno di noi ha mai, neanche per un secondo, sentito l’esigenza di usare un GOTO. Questo mi lascia pensare che agli sviluppatori PHP non interessi quello che è il pensiero della comunità. Mi piacerebbe ricordagli che proprio la comunità è stato sembre il cardine del successo di questo linguaggio.
Già in precedenza mi ero “scagliato” contro php che a mio parere non trasmetteva un buon modo di programmare e questo è sicuramente un grosso passo indietro. Si cerca sempre di più di spingere PHP nell’enterprise ma vogliamo veramente presentarci in questo modo?
No related posts.
Comments - Skip to comment form
La prima volta che ho sentito parlare di goto in php mi sono messo a ridere, pensavo fosse uno scherzo. Poi però navigando tra forum e mailing list mi sono reso conto che era proprio vero. Nonostante non uso php ormai da un paio d’anni almeno, mi ha incuriosito molto la cosa e leggendo le varie opinioni tra le positive prevaleva l’opinione che usando istruzioni goto si potevano debuggare meglio i programmi. Ora capisco che il php abbia uno standard tutto suo e non debba render conto a nessuno (si fa per dire), però introdurre una feature che è già andata in disuso parecchi anni prima per svariati motivi di cui hai anche parlato nel tuo post semplicemente per ‘gestire delle eccezioni’ mi sembra esagerato e forse una presa per i fondelli per chi tenta di scrivere del codice pulito. Poi che a qualcuno possa far comodo è un altro discorso.
@Oscar Del Ben
Putroppo…come credo si capisca dall’articolo la mia reazione non è stata proprio una risata. Quello che più mi ha infastidito è stato proprio l’atteggiamento del “non rendere conto a nessuno”, credo che fosse una modifica che veramente in pochi nella comunità sentissero come necessità eppurre è stata introdotta.
Nonostante PHP sia il linguaggio che utilizzo per la maggiore non mi stancherò mai di ripetere che putroppo incorraggia a delle pratiche scorrette di programmazione e mi spiace ancora più vedere che viene fatto veramente poco per invertire la tendenza.