Newsgroup: it.comp.www.php
Titolo: Evoluzione php, libri confronti

Ciao,
devo tenere una lezione di confronto fra i linguaggi php e python.
Confesso che frequento oramai quasi solo python, ma per desiderio di
obiettivit� mi son messo di impegno a vedere quanto negli ultimi anni sia
cambiato. 
Noto ad esempio che dalla versione 5.3 sono stati introdotti i namespace e
la gestione delle eccezioni, ma non ho trovato libri che siano aggiornati a
questi argomenti.
Ci sono dei progetti liberi che usino queste feature in modo da potere
vedere il codice in azione? O in alternativa ci sono dei progetti liberi di
una certa consistenza che possano essere presi ad esempio di un buon stile
di programmazione php?
grazie
sandro
*:-)

 stile di programmazione php?
Per php5.3 credo ci sia un solo framework che lo usa, anche perche` e` 
fuori da circa un mese. Non ricordo il nome, scusa, ma se ne e` parlato 
qualche giorno fa.
Per la 5, secondo me Zend Framework e` scritto molto bene.
Bye.

Alessandro Pellizzari ha scritto:

Be a dire il vero sono state introdotte anche le funzioni anonime e le
clusore che per certi versi ricordano le funziona lambda di python.
La gestione delle eccezioni che ricordi io c'è dalla 5.0.
Ti consiglio php 5 power programming che presenta diversi pattern
affrontati ad un livello piuttosto alto. (per un libro php almeno,
diciamo che con questo libro io sono passato da java a php, ergo ti
dovrebbe tornare utile).
Puoi guardarti namespace,closuere,funzioni anonime e standard php
library direttamente da 
php.net
.
Tieni inoltre sotto occhio questa pagina della python wiki
http://wiki.python.org/moin/PythonVsPhp
è un buon punto di partenza anche se pende a favore di py.

a mio modo di vedere i due grandi vantatti che ha python sono:
* libreria ad oggetti mentre quella del php (escluso spl) � ancora
procedurale
* vero utilizzo anche in campo desktop e backend, in campo desktop come
progetto php degno di nota c'� solo php-gtk e non � molto utilizzato,
mentre python ne ha almeno due multipiattaforma che sono veramente
ottimi: pyqt e wxpython; un web service si realizza pi� facilmente in
py, un framework come twisted in php non esiste.
Per il resto pi� o meno con le ultime versioni del php si equivalgono
ognuno con i suoi pro e contro.
Tieni conto che le eccezioni ci sono da php5, la programmazione ad
oggetti con modificatore d'accesso pure, la 5.3 include le closure
simili alle funzioni lambda di python, i namespace (e il goto). C'� una
libreria ottima in php la standard php library che contiene una
implementazioni ottima dei contenitori standard ma credo che solo un 10%
di programmatori php la usi.
Ci sono diversi framework model view controller in php simili a web2py
che traggono "ispirazione da rails" diciamo che quelli che a me
piacciono di pi� sono cakephp e symfony ma ce ne sono molti altri.
(incluso lo zend framework della casa madre.)
micheg

 Tieni conto che le eccezioni ci sono da php5, la programmazione ad
ma mi pare di capire che non tutto solleva eccezioni, ad esempio la fopen
di un file inesistente non solleva eccezione.
Il php5 power-programming consiglia di usarlo il meno possibile per non
appesantire il codice, mentre in python l'eccezione � uno strumento di
ordinaria amministrazione...
sandro
*:-)

 la sintassi senza nanche guardare il manuale.
Da questo punto di vista, PHP fa veramente schifo.
Un po di funzioni hanno nomi con "_", altre senza, altre vogliono
prima la chiave di ricerca, poi il contesto, altre prima l'espressione
poi la chiave, bla bla bla
Veramente, molte funzioni sembrano scritte in fretta tanto per dire:
anche noi le abbiamo.

 ordinaria amministrazione...
Perche` in Python e` stato progettato con quello in mente, mentre PHP e` 
nato con il retaggio di C e Perl per cui e` il result code di una funzione 
a determinare il risultato.
Per questo spesso si dice che Python e` piu` object oriented e PHP lo e` 
meno, ma appunto per l'inerzia dei programmatori (SplFileObject e` 
presente da PHP 5.1, novembre 2005, e nessuno dopo 4 anni lo usa, e PDO ha 
avuto poca piu` fortuna) alcune cose non vengono nemmeno implementate.
Certo se usi un framework fatto bene come Zend (gli altri non li conosco 
abbastanza da commentarli) ti ritrovi la gestione delle eccezioni in 
tutto, solo che poi la gente si lamenta delle prestazioni... :/
Bye.