volevo dire guest, l appoggio a guest
volevo dire guest, l appoggio a guest
Io concordo, sono il primo a dire che PHP fa schifo forte.
Però, bisogna valutare le cose per come stanno e per il loro uso.
Partiamo dal presupposto che si debba sviluppare una applicazione che dovrà girare, nel 99% dei casi, su shared hosting overselling.
Fatto prestazioni: trascurabile, in questa struttura la differenza prestazionale tra PHP rispetto a Ruby, Python, $QuelCheVuoi è trascurabile, perchè come ho scritto, il collo di bottiglia saranno sempre e solo i database, la loro implementazione, le loro query, il loro carico ed il carico sul server web. Ci potrà essere, nel caso più ottimistico, pochi ms di differenza tra PHP e Perl.
Questi 18ms di differenza sono impercettibili in una applicazione web, dove hai almeno il doppio di latenza solo per arrivarci sul server. (tra l'altro, python è più lento di PHP)Codice:ale@ale-netbook:~$ time php -r "echo 'Hello World';" Hello World real 0m0.040s user 0m0.032s sys 0m0.012s ale@ale-netbook:~$ time perl -e 'print "Hello World";' Hello World real 0m0.032s user 0m0.000s sys 0m0.032s ale@ale-netbook:~$ time python -c "print 'Hello World';" Hello World real 0m0.056s user 0m0.040s sys 0m0.012s
Discorso prestazioni scartato.
Torniamo al fattore codice (sempre in ambito shared-hosting e non Enterprise).
Togliamo in fattore umano (partiamo dal presupposto che chi programma sa programmare al 100%).
Con PHP puoi fare del buon codice, ottimo codice, basta usare le funzioni ed i metodi giusti.
Il goto non si usa, il casting va fatto, la pulizia in fase di input va fatta, si usano i prepared statement o eventuali ORM e così via.
Se usi tutti questi accorgimenti, non avrai problemi.
Resta la mancanza di un ambiente di sviluppo con un buon debugger e così via. E' vero, questo manca.
Ma anche su Python mi pare manchi un IDE, così come su Rails.
Al limite, basta usare Zend Studio o Aptana o Eclipse, che integrano un interprete php ed un server di debug.
Alla fin fine si parla di linguaggi web-oriented, un ambiente in stile JavaEE non è così fondamentale come potrebbe esserlo in caso di applicazioni standalone o Enterprise.
EDIT: togliendo il fattore umano da WP, hai automaticamente la miglior piattaform di blog mai creata. Fa praticamente tutto e lo fa bene. (perchè abbiamo tolto il fattore umano). Non è soggetta a limiti del PHP, non può non fare determinate cose perchè con il php sarebbero impossibili da fare.
Il problema di WP è esclusivamente il fattore umano. Quella ciofeca di codice l'avrebbero fatta con qualunque linguaggio, perchè chi ha fatto il codice, è palese che non abbia idea di come si programma.
Per la versione 3.0 (visto che è proprio la 3.0 e non la 2.10) mi sarei aspettato un ambiente MVC, con un quale ORM a corredo per la gestione database ed un vero sistema di template, in cui NON BISOGNA RICHIAMARE FUNZIONI PER STAMPARE DELLE SCRITTE
Questa è una castroneria:
http://codex.wordpress.org/Template_Tags/the_ID
Due funzioni per fare praticamente la stessa cosa.
Una fa un echo (e non serve a niente, mai, per nessun motivo), l'altra fa giustamente il return.
Basterebbe lasciare solo quella con il return, e chi vuol fare l'echo si fa <? echo get_the_id()?>
Questo si che porta a fare castronerie come l'usare ob_get_contents per mettere in una variabile l'output della funzione.
Ho visto vagonate di template e/o di plugin che si appoggiano a ob_get_contents per la logica, o, peggio ancora, gozzillioni di plugin che usano "eval" che è il demonio.
Ma non è un problema di PHP, bensì del fattore umano.
Ultima modifica di guest; 19-06-2010 alle 11:44
http://www.web4web.it - Low Cost Hosting
Tutti i pacchetti sono multidominio.
Database e domini illimitati a partire da €10
http://www.guest.it - Servizi professionali su misura.
Per guest:
Anche senza andare a scomodare Zend Studio, c'è xdebug per il debug. Anche se comunque, al pari di Zend Debug, impazzisci per capire dove sia realmente l'errore: dimenticati uno stack trace decente come quello che ti viene restituito in java o C#.net.
Ma tralasciamo anche il debug e parliamo del testing; cosa che anche paiola ha ritenuto fondamentale nel processo di sviluppo sw. PHP non ha nulla, nada, niente, nothing di paragonabile agli stumenti messi a disposizione con java o C#.net.
Dimmi la controparte di JUnit con la miriade di componenti aggiuntivi in php; ti dico che non esiste.
Durante i cicli di sviluppo sw il testing è la componente che può farti perdere più tempo se non usi gli stumenti adatti, soprattuto se adotti l'Extreme Programming o lo sviluppo incrementale.
Si, concordo.
Esistono dei framework per unittest anche in php ma non ti so dire a che livello siano.
Però stiamo parlando di due cose differenti.
Se vogliamo parlare di PHP inteso come "ambiente di sviluppo" allora si, fa schifo, l'ho detto più volte e continuerò a ripeterlo. Non è assolutamente adatto a progetti seri.
Manca, come giustamente dici, di tutte quelle features che ti consentono di lavorare rapidamente e fare debug.
Ma io sto discutendo con chi dice che è a livello di codice che php faccia schifo.
Non è vero, bisogna saper programmare, come in ogni linguaggio. Tutto qui.
E' nato come set di script in perl, si è evoluto, sta ancora evolvendo e man mano migliora. Non è ai livelli di Java, ma anche il suo campo di applicazione è differente.
http://www.web4web.it - Low Cost Hosting
Tutti i pacchetti sono multidominio.
Database e domini illimitati a partire da €10
http://www.guest.it - Servizi professionali su misura.
Niente fa schifo in termini assoluti, dipende dall'ambito di applicazione; però PHP ha delle cose, volute apposta, che sono più che error prone (come l'assenza di tipizzazione).
PHP significava "Personal Home Page" agli inizi e, secondo me, questo è ancora il significato del suo acronimo.
Già forum o cms IMHO sono cose per cui PHP non è nato, però per i livelli di diffusione che ha, ahimé, lo si deve tenere in considerazione.
Be, questo non è vero, ci sono software veramente fatti bene e/o framework MVC leggerissimi (tipo 100righe di codice) che però ti costringono a programmare 'a modo' separando logica e presentazione.
Magento o Drupal, ad esempio, sono due ottimi software e sembrano anche programmati bene.
SilverStripe come CMS è un ottimo prodotto anche a livello di codice.
Di applicazioni valide ce ne sono a iosa, quello che manca, in effetti, è un sistema di blog fatto come si deve. (e forse anche un bel forum mvc)
http://www.web4web.it - Low Cost Hosting
Tutti i pacchetti sono multidominio.
Database e domini illimitati a partire da €10
http://www.guest.it - Servizi professionali su misura.
Torniamo sempre allo stesso discorso
Non sto dicendo che ogni cosa fatta in php sia fatta con i piedi, ma se devi fare una cosa complessa come un forum o un cms, usare php è un pò una forzatura.
Non è che voglio spalare $robafetidamarrone su PHP per sport; anche perché ogni volta vado contro i miei interessi, dato che ho 11 anni di esperienza su PHP (e solo la metà con java).
Limitante forse si, ma a quale uso?
Devi fare un forum per shared hosting? Io dico che possa andare bene anche PHP, sapendolo usare.
Devi fare un forum per una azienda Enterprise o un forum di altissimo livello? Allora ci sono sistemi più consoni.
Ad esempio vbulletin è la piattaforma forum più usata nel mondo, ci sono forum con decine di milioni di post ed a quanto pare funziona bene ed è in PHP.
Ho visto relativamente pochi defeacement mirati a vbulletin (nonostante sia il sistema più usato in assoluto) mentre ne ho visti di alcuni ordini di grandezza in più mirati a phpbb.
solitamente si prende di mira il sistema più usato, perchè ha un impatto mediatico maggiore (oltre alla possibilità di far fuori molte più macchine con un singolo exploit) ma se il software è fatto bene e gli exploit non riescono, si passa al concorrente, dove per installare un plugin devi modificare il codice stesso. (leggasi phpbb)
http://www.web4web.it - Low Cost Hosting
Tutti i pacchetti sono multidominio.
Database e domini illimitati a partire da €10
http://www.guest.it - Servizi professionali su misura.
vB anche non è che sia codato bene, solo che almeno uno pseudo-orm lo usano; ma difetti ce ne sono eccome (prova a chiedere a chi ha aggiornato alla nuova versione) e non sono pochi. Se appena tocchi l'applicativo arrivano un catervone di bug significa che non hai una fase di testing ben delineata ma vai "ad occhio" e scarichi gran parte della fase di testing sui tuoi clienti (evviva le cavie!!)
Con JBoss + Seam, per dirtene una, puoi farti i test che ti vanno a simulare addirittura le sessioni, come se stesse un umano davanti al monitor. Non c'è paragone insomma.
http://www.web4web.it - Low Cost Hosting
Tutti i pacchetti sono multidominio.
Database e domini illimitati a partire da €10
http://www.guest.it - Servizi professionali su misura.
Perchè, te invece scrivi codice esente da bug solo perchè hai i vari unit test?
Ci sono i debugger e gli unit test anche per php, non evoluti come quelli su java, ma sono comunque presenti.
noi personalmente non abbiamo mai sentito la mancanza di debugger così sofisticati, e credo che questo valga anche per il 99% degli sviluppatori php nel mondo, perchè se così non fosse, php non avrebbe visto progetti di dimensioni superiori al blog personale.
Eppure grossissimi portali nel mondo usano PHP, o sono tutti masochisti, oppure PHP non è così male come si vuol far sembrare.
http://www.web4web.it - Low Cost Hosting
Tutti i pacchetti sono multidominio.
Database e domini illimitati a partire da €10
http://www.guest.it - Servizi professionali su misura.
a me sembra che guest dica una cosa mentre Antonio gli risponda su un altro argomento.
quello che guest dice e' che si puo' scrivere codice pulito e "a modo" anche con un linguaggio come PHP che, per come e' stato strutturato, non ti guida in una determinata direzione.
Antonio invece dice che non avendo gli strumenti adatti (ide, debugger, unit test) e' piu' difficile programmare bene e tira in ballo altri linguaggi, come Java o C# ; questa cosa e' sicuramente vera, ma puo' essere determinante nella scelta di un linguaggio di programmazione?
ipotizzando che chi debba fare il software conosca php e java in egual misura, si sceglie un linguaggio piuttosto che un altro per gli strumenti che hai, oppure si mettono in gioco altri fattori, come la velocita' di sviluppo e l'aderenza alle specifiche richieste?
piu' indietro s'e' parlato di forum in java: qualche esempio "famoso"?
ciao
cavalier senza paura di una solitaria guerra..
Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)
Segnalibri