Newsgroup: it.comp.www.php
Titolo: neofita PHP & versioni 4 e 5

Salte a tutti,
dopo averci dovuto lavorare, vorrei riprendere e studiare il PHP: di
questo linguaggio mi piace la sua curva di apprendimento molto bassa,
almeno per chi conosce mediamente il C/C++. L'unica cosa che ancora mi
frena sono le "incompatibilita" tra la versione 4 e la 5; vi volevo
quindi chiedere se la cosa è da imputare ad una mancanza di uno
"standard" e quindi ad una sua certa "immaturità"; e poi se questa
*presunta immaturità* sia un segnale che il linguaggio stesso non
avrà poi una vita molto lunga (scongiuri). Ovviamente spero di no :)
Grazie.


Il PHP e` tutt'altro che un linguaggio "immaturo" (anzi) o in "discesa"
(semmai il contrario). Non ci sono incompatibilita` tra la versione 4 e
la 5. La 5 ha introdotto nuove funzionalita`, alcune cose (come ad
esempio di REGISTER_GLOBALS) di cui si parla in un altro post sono
dettate da una maggiore sicurezza nella realizzazione delle
applicazioni. Il 99.9% delle vecchie funzioni continuera` a funzionare
anche con PHP5, che in piu' aggiunge nuove funzioni/funzionalita` e,
conseguentemente, possibilita`.
Non credo ci sia nemmeno una mancanza di standard, semplicemente stiamo
parlando di due major release diverse, mi sembra assolutamente normale
in un linguaggio vivo e mi preoccuperei del contrario.
Pensare a rischi di "dipartita precoce" per PHP mi sembra assolutamente
fuori luogo.
Ciao.

 avrà poi una vita molto lunga (scongiuri)
onestamente, non mi sono mai posto questa questione.
penso che php esisterà finché sarà preferibile usare questa tecnica di
programmazione. magari da domani prende piede una nuova tecnologia
incompatibile con l'attuale, e nel giro di meno di un anno praticamente
tutti abbandonano php, asp, jps, e così via: chi lo può sapere? ;-)
secondo me, comunque, puoi star tranquillo.
Ciao
Tristan

 applicazioni
l'incompatibilità di cui parlava "nibble" presumo fosse proprio per
questo genere di problemi: se un web developer scrive un'applicazione in
php 4 e poi con l'aggiornamento (sul server di hosting) a php 5 non se
la vede più funzionare bene, s'importa relativamente poco se ciò è
dovuto ad una maggiore sicurezza per il server o per l'applicazione, il
fatto è che dovrà rimettere le mani su quel codice, cioè dovrà compiere
lavoro aggiuntivo. e non c'è niente di peggio che compiere lavoro,
quando pensavi di averlo completato. ;-)
Ciao
Tristan


Se preferisci tenere un'applicazione esposta a possibili vulnerabilita`
e illuderti di averla finita, fai pure. ;)
Non si puo` certo pretendete che chi sviluppa un linguaggio non ne
corregga errori/problemi perche` chi lo usa e` pigro. IMHO

 corregga errori/problemi perche` chi lo usa e` pigro. IMHO
Questo in linea di principio è senz'altro vero.
Ma all'atto pratico dipende dal tipo di contratto stipulato tra 
programmatore e cliente.
--
rob4you


Siamo d'accordissimo, pero` in quel caso e` un problema di "licenza" (in
senso mooolto largo) e le variabili che entrano in gioco non sono piu`
quelle globali ma quelle economiche, non siamo piu` nell'ambito della
programmazione.

 programmazione.
Esatto! :-)
e visto che il mondo gira per i soldi, e non per la programmazione (che 
alla fine è un mezzo per far girare i soldi :-) ), direi che la 
questione è di importanza fondamentale! :-)
--
rob4you

 e illuderti di averla finita, fai pure. ;)
be', non esistono applicazioni php insicure che non possano essere rese
sicure agendo sul codice del web server e/o dell'engine php. quindi
l'insicurezza andrebbe quantomeno condivisa: se le vulnerabilità non
provengono in sé dal programmatore, ma dall'uso (a suo tempo ritenuto
sicuro) di certe funzioni del linguaggio o di certe caratteristiche del
web server che poi si rivelano insicure, il programmatore viene "punito"
(perché deve eseguire altro lavoro) a causa dell'"incapacità" di altri.
questo è "oggettivamente" ingiusto.
la cosa funziona così, nessuno obbliga nessuno, e va bene. però è chiaro
che se ciò accade spesso, il programmatore rifletterà sul continuare o
meno ad usare tali software, e da lì nasce il timore di "nibble": ne ho
conosciuti di "programmatori" che a suo tempo hanno abbandonato visual
basic (3/4/5) perché ad ogni nuova major release del linguaggio dovevano
ogni volta riscrivere molte parti delle loro applicazioni. :-)
comunque sia, il mio discorso è generale: io ho puntato su php proprio
perché credo nel suo futuro...
Ciao.
Tristan


Si ma "io" come programmatore faccio il mio lavoro nel migliore dei modi
possibili in funzione di quanto il committente e` disposto a pagare per
quel lavoro. Se il committente:
a) paga poco
b) non vuole spendere per mettere in sicurezza la sua struttura
c) a+b
il problema non e` tecnologico e se le cose non gli funzionano il
problema non e` mio.

 
Ma non capisco perchè all'uscita di una nuova versione di VB si faceva 
la corsa all'aggiornamento ed adesso si resta (e questo ng è la 
dimostrazione) ancorati alla versione 4 quando si potrebbe avere 
qualcosa di meglio.
Se i vari hosting, dopo 3-4 anni continuano a lasciare abilitato il 
register_global, un motivo ci sarà (ed anche in questo caso, il ng è la 
dimostrazione). Prendere uno script scritto nel 2001 e pretendere che 
giri senza modificare una virgola, mi sembra una pretesa assurda ed 
anche "irresponsabile" visto che siamo in un ambiente aperto al mondo 
(non l'applicativo in VB-DOS-Delphi che gira in locale)
	Francesco

 (perché deve eseguire altro lavoro) a causa dell'"incapacità" di altri.
Pero` c'e` da dire una cosa.
Le register_globals (che generano i piu` grossi problemi con PHP5) e il
sistema di upload dei file (secondo problema) erano cosi` in PHP3.
In misura minore creano rogne il cambio di nome di alcune funzioni,
avvenuto tra il 3 e il 4, e le supercostanti, che ora sono incluse nei
superglobali.
In PHP4 (credo 6-7 anni fa) sono state deprecate. In PHP5 (un anno fa) si
e` solo disattivato di default (si puo` riabilitare modificando php.ini).
In PHP6 spariranno.
Mi pare che i programmatori abbiano dato parecchio tempo alla gente di
adeguarsi (oltre 10 anni).
Usare ancora adesso programmi scritti 7 anni fa, senza tenere conto delle
nuove scoperte in materia di sicurezza, e senza avere voglia di
modificarli, vuol dire semplicemente cercare rogne. E volerli usare ancora
per 2-3 anni (fino a PHP6 che finalmente li stronca) vuol dire correre
incontro alle rogne.
Il fatto che esistano software come Drupal, che e` un enorme (con tutte le
estensioni) CMS, scritto in PHP4, ma perfettamente compatibile col 5, la
dice lunga sulla compatibilita`.
Il comportamento corretto di un programmatore, nel 2007 (ma anche nel
2006) e` di scrivere codice per PHP5, e cercare script compatibili con
PHP5 (classi, CMS, ecc.), e hosting che supportino PHP5 senza
register_globals.
Io ho scelto PHP5 perche` e` semplice ma potente, perche` ha un'ottima
compatibilita` col passato ma permette di configurare anche questa,
perche` posso far convivere php3, 4 e 5 sullo stesso server, perche` e` il
linguaggio piu` libero e completo per il web.
Il fatto che avra` un futuro roseo, IMHO, dipende da queste cose, quindi
e` una conseguenza, non un dato di fatto.
Bye.

 qualcosa di meglio.
Perché pensi che questo ng sia la dimostrazione che si sia restati a PHP
4? Io credo, spero, che praticamente tutti usino PHP 5, anche se di
codice OOP se ne vede ben poco.
Ma questo credo sia dovuto al fatto che molti programmatori web sono
ancora troppo legati al paradigma procedurale classico.
Ciao
Tristan

 Io ho scelto PHP5 perche` ...
Sono completamente d'accordo.
Aggiungo solo una postilla. Il tempo di diffusione di una importante
novità - cioè da quando i programmatori (del PHP) decretano una modifica
che sarà di alto impatto sul codice esistente o in produzione, a quando
tale decisione acquista popolarità e raggiunge "tutti" - varia molto a
seconda delle categorie di persone.
C'è chi riceve la notizia tramite RSS da 
php.net
 e chi invece aspetta
che la notizia sia stata stampata su un libro cartaceo, magari pure
tradotto in italiano dall'inglese. Questo tempo è ancor più translato in
avanti se, mentre su 
php.net
 viene dato l'annuncio, il programmatore è
in libreria e sta acquistando un testo già di per sé datato, o comunque
con esempi datati. Quest'ultimo programmerà in maniera errata, magari
credendo pure di star facendo un ottimo lavoro. Ecco perché non acquisto
più da anni (da quando ho l'adsl ;-D) e non consiglio più a nessuno
l'acquisto di certi libri per "imparare" a programmare in un certo
linguaggio. :-)
Questo per dire che, così come c'è chi prende da qualche repository
certi script datati e ormai dimenticati anche dal loro creatore, che
dovrebbero solo essere cancellati dalla faccia del web :-), allo stesso
modo bisognerebbe bruciare quei libri di testo - come si facea ai bei
tempi andati. ;-)
Poi vabbe', io spero che là fuori ci siano pochissimi web developer che
non facciano /forsennato/ uso dei luoghi di discussione di Internet,
quindi spero che il tempo di diffusione medio si sia abbassato
notevolmente...
Ciao
Tristan

 codice OOP se ne vede ben poco.
La maggior parte di coloro che scrivono su questo ng si appoggiano a 
servizi hosting e si contano sulle mani quelli che offrono php5 (potrei 
anche sbagliarmi).
	Francesco

Grazie a tutti per le risposte.
Cercherò di spiegarmi meglio: se esiste la versione 'x' di un
linguaggio, uscendo
la nuova 'x + 1' versione si darà per scontato che questa
*comprenderà* la
precedente, aggiungendo poi le dovute novità.
Invece se, come dice dice Tristan, si scrive un'applicazione e poi con
l'aggiornamento non funzionare più bene, allora il inguaggio è ancora
"versione
beta"... o no??? Data la sua enorme diffusione, sicurezza (visto che il
programma
gira lato server), e affidabilità mi sembra strano che ancora non ci
si sia messi
d'accordo per uno "standard", obbligando i programmatori a "reinventare
la ruota"
continuamente. Ho letto comunque che la versione 6 dovrebbe appianare
le 
differenze...
ciao

 le differenze...
sono pronto a scommettere che le mie applicazioni in php5 gireranno
tranquillamente anche con php6. ;-)
Ciao
Tristan

 
Non scommettere...pensa al problema della classe date in php 5.1 (se non 
erro)
[1] Per ancorato intendo un povero dell'OOP
	Francesco

 seconda delle categorie di persone.
Hai ragione. Ormai ragiono solo su "Internet" anche io, ma coi libri e`
veramente un bagno di sangue, soprattutto in Italia, visto che vengono
tradotti, mediamente, con 1-2 anni di ritardo dall'uscita in USA (vogliono
prima vedere quanto vende in patria... :/ )
Ho comprato la settimana scorsa un libro su RSS e Atom, e mi sono accorto
che e` del 2005... :/
Per fortuna il formato e` quello ed e` pieno di consigli interessanti. :)
Bye.

 precedente, aggiungendo poi le dovute novità.
In ambiente open source e` prassi abbastanza comune (ma non obbligo) che
quando cambia la major version (da 3 a 4 a 5 per PHP) ci sono modifiche
sostanziali al software, mentre quando cambia la minor (5.0, 5.1, 5.2) o la
revision (4.4.1, 4.4.2, 4.4.3, ...) ci sono miglioramenti ma si mantiene la
compatibilita` col passato.
Bye.

 In ambiente open source e` prassi abbastanza comune [CUT]
Non lo sapevo.... grazie a te e a tutti per le risposte!