[supersaibal]
Originariamente inviato da carmineDev
php non ha namespace. Qualunque linguaggio che debba essere usato per un compito complesso dovrebbe fornire un metodo per segregare funzionalità diverse in spazi diversi da quello globale. PHP, simpaticamente, non lo fa.
php ha un sistema ad oggetti ridicolo, in quanto:
non esiste la possibilità di manipolare le metaclassi
non esiste la possibilità gestire l'inizializzazione e l'allocazione di un oggetto distintamente, e numerose hot head di php non sanno neanche cosa significhi.
non esiste una convenzione ne' forzata tramite sintassi ne' a livello sociale nel dare nomi a librerie, variabili, classi.
Non c'è supporto per la metaprogrammazione a nessun livello.
Non ci sono funzioni di ordine superiore, currying, e lambda. Manipolare una funzione in php significa fare l'eval ogni volta
non c'è supporto per le coroutine
non c'è supporto per directed coroutine (i generatori di python)
non c'è call-with-current-continuation
non ci sono eccezioni resumabili
è impossibile estendere php in php (cfr tcl o lisp o in qualche misura ruby/python/smalltalk)
SimpleXML è stato scritto da una manica di ubriachi. Ad esempio non è possibile gestire tag con nomi non nell'intervallo a-z.
non c'è supporto per multilingualization, ovvero la possibilità di manipolare encoding vari in modo univoco. Addirittura non si possono usare encoding a più di otto bit.
non esistono ne' mixin ne' trait ne' ereditarietà multipla, quindi mostruosa duplicazione del codice.
hanno inventato un sistema di controllo dei tipi che avviene per ogni chiamata a funzione, ogni volta, controllando il tipo dei parametri. Vi lascio intuire che performance.
lo zend engine è notoriamente un colabrodo a livello di sicurezza.
php è un interprete lento, cercate sui benchmark del Grande Shootout o di scutigena.
non c'è ottimizzazione delle tail call
le classi non sono modificabili a run time
le classi non si sa se siano oggetti, gli autori di php a riguardo non rispondono
php non è completamente ad oggetti. Se pensate che non essere full OO sia un vantaggio in termini di semplicità, vi prego di postare un esempio, e ve lo mostrerò più semplice.
non c'è DBC e dato #12 non si può infilarcelo
per qualche strano motivo gli array sono degli hash
il sistema di controllo d'accesso è antiquato
non c'è un sistema di sicurezza degli script builtin (vedi #17)
il sistema di type check è ridicolo per la sua imprecisione. Lo avessero lasciato completamente dinamico sarebbe meglio.
meglio non scrivere mai PHP vs ASP su google altrimendi ti fanno prendere la depressione .....
buon lavoro a todos... [/supersaibal]