2012-02-10 14 views
10

Recentemente ho acquisito PHP e sembra un linguaggio piuttosto scorrevole che consente uno sviluppo di applicazioni web molto veloce (probabilmente più veloce del mio preferito - Java :)Qual è la logica dietro l'affermazione "PHP non scala (bene)"?

Ora, non sono un esperto PHP - né con la lingua né i suoi interni/specifiche. Ma alcuni dei miei colleghi hanno affermato che le applicazioni PHP non si adattano bene allo - un fatto che non sono stato in grado di capire da solo e quindi la domanda.

Ho appena imparato il sapore procedurale di PHP e la mia unica ipotesi di non scalabilità è quella di scalabilità della procedurali lingue vs. OO (C rispetto a C++/Java). Sono d'accordo e posso vedere come sarebbe un ostacolo per applicazioni web estremamente complesse. Tuttavia, sono a conoscenza del fatto che OO-ness venga nel mondo PHP e non lo vedo come un ostacolo (correggimi se la mia ipotesi non è corretta).

Oltre a ciò, non capisco quali problemi di scalabilità potrebbero presentarsi per un'applicazione Web con un numero elevato di utenti (per motivi di discussione, assumiamo un design Restful - nessuna sessione - poiché sono consapevole di come impedisce la scalabilità). Sono più interessato a conoscere ragioni "oggettive" per tale richiesta, se possibile. La soggettività va bene, ma io non sono qui per iniziare un dibattito su PHP rispetto a tutto il resto. Mi interessa solo sapere quali sono i potenziali limiti di questo linguaggio che devo tenere a mente e non dovrei mordermi più tardi se/quando l'applicazione web dovesse avere migliaia di utenti al giorno (o un'ora).

+0

Questo è stato discusso molte volte (scalabilità di google php). Inoltre, alcuni dei più grandi siti web al mondo sono basati su PHP. – simshaun

+2

@simshaun: Potresti fornirmi dei collegamenti? Ciò potrebbe aiutarmi a contrassegnare la mia Q come duplicata e richiederla chiusa: è sufficiente una motivazione alla base del reclamo: P – PhD

+0

Il massimo risultato è "PHP Scalability Myth" - http://onjava.com/onjava/2003/ 10/15/php_scalability.html - è piuttosto datato! – PhD

risposta

5

Non riesco a pensare a un linguaggio che presenta un limite di scalabilità. Una limitazione scalabilità per una lingua sarebbe qualcosa di simile:

Lingua X non può essere utilizzato per scrivere programmi che richiedono più di 1000 righe di codice.

Sembra ridicolo, e lo è.

Lo stigma che le applicazioni PHP non si adattano bene deriva dal fatto che molti programmatori inesperti scelgono PHP per le loro applicazioni web. Questo perché PHP è un linguaggio facile da imparare, si integra molto bene con Apache ed è supportato su quasi tutti gli host del mondo.

I programmatori inesperti utilizzano spesso cattive pratiche durante la scrittura del codice. Dato abbastanza di queste cattive pratiche disseminate nel web, scritte nella lingua preferita dal programmatore inesperto, è facile capire perché alcune persone sono contrarie al PHP.

C'è anche, probabilmente, un atteggiamento "più santo di te" che alcuni programmatori hanno nei confronti di PHP (di nuovo, per la sua semplicità).

PHP si adatta perfettamente a qualsiasi altra lingua quando vengono prese in considerazione la memorizzazione nella cache delle pagine e le migliori pratiche. Ci sono molti progetti PHP ben utilizzati per dimostrarlo.

+0

E il fatto che PHP sia single threaded? – Rabiees

+1

@Ken Questa è solo una risposta falsa piatta.'La lingua X non può essere utilizzata per scrivere programmi che richiedono più di 1000 righe di codice 'ridicolo, perché non è affatto ciò che si intende per scalabilità. Non si può pensare ad un limite di scalabilità, perché non si ha idea di cosa significhi. Python e PHP sono entrambi linguaggi che presentano limiti di ridimensionamento verticale perché possono essere eseguiti solo su un singolo thread nativo. Non sono sicuro del ridimensionamento orizzontale, ma posso immaginare che PHP non funzioni altrettanto bene. – taylorcressy

+0

@taylorcressy - Non sono sicuro di cosa il collegamento abbia a che fare con la scalabilità di un linguaggio di programmazione. Il ridimensionamento di un'applicazione potrebbe richiedere tali tecniche, ma la lingua in cui è scritta l'applicazione è arbitraria. – ken

Problemi correlati