IL prob fondamentale di PHP in questo senso e' il fatto che non e' stato ingenierizzato.
Se pigliate per esempio Java ( NON javascript ) mi riferisco al linguaggio sdi SUN, noterete come tale linguaggio ha subito un'estrema ingegnerizzazione.
TUTTO e' una classe, TUTTO deriva da OBject, i dati sono fortemente tipizzati tutto e' dentro un albero di classi.
Inoltre tale linguaggio e' anche fortemente standardizzato a livello semantico, ossia TUTTI i metodi, attributi, definizioni di classi etc nelle lib standard rispettano le stesse regole.
Cio' non succede in php, php rispetto a java e' un'accozzaglia di funzioni, con nomi diversi, standard diversi, parametri diversi etc etc.
Per applicativi Java su web ( servlet e jsp sotto Tomcat o Glass Fish ) esistono vari framewroks , ma effettivamente sono solo 2 o 3 quelli usati in genere, Hybernate e' uno di questi.
Il fatto e' che se uno si mette a sviluppare servlet scoprira' ben presto la potenza di tale tecnologia e scoprira' l'importanza di una buona porgettazione. Php invece consente di scrivere suito il codice il che e' assolutamente deleterio per applicativi di medie-grandi dimensioni.
Io sinceramente rimango sconvolto a volte dai casini che php riesce a sollevare, non ha lib std per la gestione dei pdf per esempio(o almeno che io sappia, io di solito uso le fpdf o le pdflib che sono cmq lib di terze parti) , mentre sotto servlet ho le lib di apache che fanno tutto lo sporco lavoro per gestire i pdf.
Per gestire xml poi nn ne parliamo aveta controllato le classi DOM e DOM XML ?????
Sono un casotto tanto per capirci
DOM : $doc->get_elements_by_tagname("tag");
DOM XML $doc->getElementsByTagname("tag");
Scusate ma sta cosa mi manda in paranoia .... ah si scusate mi ero dimenticato c'e' pure la classe simpleXML ????
Ma che gli passa per la testa??? in Java ho le lib std per gestire xml che sono le Jdom poi posso scaricare le DOM4J che sono le lib avanzate e con quelle facio tutto.
Non potevano definire un'interfaccia standard per xml anche sotto PHP???
Io capisco i dubbi e le perplessita' di nemesis e gli do ragione quando dice che servirerebbe standardizzare PHP, avete mai notato che ogni tanto capitano funzioni come :
str_replace()
htmlentites ....
PHP non ha un namespace, non possiede uno standard che sia uno, nemmeno per gestire le date, maketime()piglia la sequenza di parametri in un modo, checkdate in un'altro, come pure tutte le funzioni di manipolazione stringhe, ognuna piglia i parametri nella sua sequenza senza mai un'ordine preciso.
Php non ha uno standard nemmeno nella gestione degli errori, a volte ti blocca la pagina in base alla configurazione del php.ini a volta lancia eccezzioni se sto usando classi a volte nn dice nulla perche' ho 1000 righe sopra ho disabilitato l'error_reporting .....
Sinceramente per tutte queste cose e molte altr quoto pienamente nemesis PHP se vuole avere un futuro dovra' venire standardizzato senno mi sa che purtroppo verra' mangiato da .net e java. IO sinceramente non posso perdere ore perche' la documentazione mi dice che gli xml vengono caricati in un modo, poi provo e non e' vero un razzo.![]()
Perfino la documentazione e' errata, invece in java c'e' il javadoc .... avete mai provato a usare il javadoc e vedere la documentazione completa dei vostri applicativi crearsi allìistante con tutte le API del caso????
Php e' veloce, immediato e nn serve molto tempo imparare a fare applicativi con questa tecnologia. Il problema nasce quando devo fare qpplicativi grandi e complessi ..... e mostra i suoi limiti, il fatto che devo sempre e costantemente controllare la doc per controllare l'esatta sequenza dei parametri da passare, il tempo che mi fa perdere perche' nn capisco che lib usare per caricare gli xml, apache che crasha se cerco un nodo che nn esiste nell'xml.
Sinceramente io mi sto stancando di tutti i limiti del php pero' purtroppo ci devo lavorare sopra ma se potessi passare a tecnologia servlet lo farei senza pensarci sopra 2 volte.
A mio avviso il futuro del web nn e' php ma sono tecnologie evolute come .net e asp che consentono un rapido sviluppo delle web app, una riuso del codice maggiore una maggiore scalabilita' e manuntenibilita'.
Giusto per dire un giorno prima della consegna di un progetto da 30 e lode( fatto con servlet-jsp+hybernate AJAX su server postgres-sql ) ho fatto il debug di circa 10 mila righe di codice sparso tra le varie entita dell'applicativo senza diventare idrofobo.
Fare invece il debug si 2-3 mila righe php mi fa uscire di testa.
Mah.
Io spero di non dover piu' usare php.