J'entends toujours que PHP est pour les sites Web moyens et petits, tandis que .NET et Java pour les applications d'entreprise. Ma question concerne PHP. Pourquoi PHP n'est-il pas une bonne option pour les applications Web d'entreprise? Est-ce parce que si l'application Web devient plus grande, alors PHP sera plus lent car il s'agit d'un langage interprété?
Je sais que le monde de l'entreprise choisira .NET ou J2EE en raison de l'intégration avec leurs produits et en raison des services d'arrière-plan, etc. Cependant, si nous avons juste PHP pour créer des sites et des applications Web, comment pouvons-nous l'utiliser pour bien fonctionner avec grands sites?
En bref, existe-t-il une relation entre les performances de PHP et la taille du site Web? Quels sont les facteurs qui font que PHP n'est pas une option appropriée pour les grands sites?
Réponses:
La performance n'est probablement pas l'un des facteurs. Pour un langage dynamique, PHP fonctionne plutôt bien; selon la tâche, il pourrait ou non battre d'autres technologies. Le modèle d'application est tout simplement trop différent pour le comparer directement avec Java ou ASP.NET. Même s'il y a une différence de vitesse mesurable, elle n'est pas grande et elle est probablement linéaire, ce qui signifie qu'elle peut être résolue en y ajoutant plus de matériel. En outre, le langage de programmation lui-même est rarement le goulot d'étranglement - les algorithmes, l'accès à la base de données, la bande passante réseau et les E / S en général sont les coupables habituels, sauf si vous écrivez quelque chose de vraiment gourmand en ressources processeur.
Les raisons pour lesquelles ASP.NET ou Java sur PHP sont les plus probables sont les suivantes:
Une autre raison de l'effet perçu est que PHP est gratuit (comme dans la bière) et omniprésent - chaque société d'hébergement Web partagée bon marché a PHP dans son package standard, mais un serveur .NET ou Java va vous coûter beaucoup plus cher. Par conséquent, une énorme masse de petits sites Web utilise PHP, non pas parce que c'est le meilleur outil pour le travail, mais le seul à portée de main.
Cela ne veut pas dire que PHP ne convient pas aux grands projets - il ne va tout simplement pas bien avec le type de programmation «entreprise». Ses points forts se trouvent ailleurs, et si vous pouvez les exploiter, vous pouvez tout aussi facilement créer des applications à grande échelle que n'importe quelle autre technologie Web.
la source
Vous confondez le trafic («site Web petit et moyen» signifie généralement un site Web avec un trafic petit à moyen), avec le degré de complication de la logique métier (site Web simple ou solution d'entreprise). Dans le second cas, la performance n'est pas le facteur clé.
Par exemple, Facebook est un site Web à fort trafic, mais ce n'est pas une application d'entreprise. D'autre part, il existe une pléthore d'intranets basés sur des serveurs d'applications Java, qui ne pourraient pas gérer le trafic d'un site Web de taille moyenne.
PHP en termes de performances n'est pas la meilleure option, mais ce n'est pas si mal non plus. Surtout en comparant avec d'autres langages dynamiques. Cependant, encore une fois, les performances brutes ne sont pas le facteur le plus important. La création de sites Web à fort trafic consiste davantage à optimiser l'évolutivité au niveau architectural.
Pourquoi PHP est-il si méprisé par l'entreprise? Il y a peu de causes, la première serait sa terrible réputation en matière de sécurité . Deuxièmement, il est perçu comme un langage pour les amateurs créant un code de spaghetti HTML-PHP laid et ingérable. Cette perception persiste, même s'il existe des cadres MVC matures. Je suppose qu'avoir l'auteur original de PHP soutient que vous n'avez pas besoin d'un framework n'aide pas. Le fait que ces amateurs désemparés avec peu ou pas de compétences en programmation s'appellent eux-mêmes "programmeurs PHP" n'aide pas non plus. La troisième raison est que tout programmeur expérimenté sera d'accord, que PHP est simplement mal conçu comme langage. Vous pouvez clairement voir qu'il a été conçu par un webmaster,
Et oui, en entreprise, tout tourne autour de l'intégration de systèmes, où PHP ne brille pas non plus. Avec suffisamment d'effort, vous pouvez créer des modules C. Il existe un pont PHP-Java, qui est assez fastidieux à utiliser. Au-delà, vous n'avez pas grand-chose. Les tentatives de création de Boost :: PHP (intégration avec C ++) ont échoué. Les clones PHP fonctionnant sur JVM sont loin d'être proches de 100% de compatibilité avec PHP (en passant, il n'y a pas de définition de langage PHP formelle, la seule référence est l'implémentation par défaut).
la source
Aucune idée pourquoi les gens prétendent que PHP est pour les sites Web de petite et moyenne taille. À ma connaissance, ce n'est pas vrai. Je connais certains sites Web soutenus par PHP qui ont commencé petit, puis sont devenus les 100 meilleurs sites Web dans mon pays. Ils utilisent toujours PHP et n'ont pas l'intention de changer quoi que ce soit à ce sujet.
La chose, qui pourrait conduire les gens à une telle conclusion, c'est que dans le cas de Java (et je suppose aussi avec .NET), l'effraction des applications est un terme fréquemment évoqué dans la documentation et la littérature. La plupart des serveurs d'applications prennent en charge une certaine forme de clustering qui permet l'ajout rapide de «puissance» ainsi que la croissance de la popularité. Dans le cas de PHP, vous devez créer un cluster vous-même. Vous pouvez le faire de plusieurs façons, en utilisant différents composants et vous devez en savoir un peu ou deux sur le fonctionnement interne de PHP. Cela fait probablement penser aux gens qu'avec PHP, un seul serveur (et donc un site Web petit ou moyen) est une impasse pour PHP.
la source
Il n'y a pas que la seule application Web d'entreprise. Dans le monde de l'entreprise, vous disposez généralement d'un système d'entreprise complet, où le composant WebPart est assez petit par rapport à l'ensemble du système. Il existe de nombreux systèmes sous le Web qui effectuent le traitement par lots, la messagerie de file d'attente, l'intégration d'entreprise, les passerelles et bien d'autres. Événement au sommet, il pourrait y avoir non seulement
Alors que PHP est bon pour le web, ce n'est pas bon pour les autres types de systèmes distribués. Et puisque vous faites tous ces systèmes en Java ou .NET, il est facile de créer également la pile Web sur la même plate-forme plutôt qu'en PHP.
la source
Je dirais que les problèmes avec PHP proviennent moins des performances qu'un historique de failles de sécurité. Bien qu'il soit sans aucun doute possible d'écrire un site Web de toute taille ou complexité particulière en PHP et de maintenir la sécurité, à mesure que la complexité augmente, le maintien de la sécurité a tendance à devenir plus difficile.
Java, d'autre part, a été conçu avec au moins quelques idées sur la sécurité dès le premier jour. Bien que ceux-ci ne correspondent pas entièrement à la plupart des déploiements actuels (la pensée originale était principalement axée sur les applets, pas sur les servelets), cette accentuation signifie que ses fonctionnalités ont tendance à mieux s'adapter à la production de code sécurisé. Et, bien sûr, il ne s'est pas arrêté non plus - puisque les applets sont pour la plupart un problème mort maintenant, Java a été redéfini pour souligner le rôle côté serveur qu'il occupe maintenant (principalement).
Étant donné que .NET tente au moins de concurrencer presque directement Java, il offre à peu près le même type de fonctionnalités et de capacités à cet égard. Vous pouvez discuter (et les adhérents des deux camps le font) sur la question de savoir si Sun ou Microsoft font un meilleur travail à cet égard, mais le simple fait que les deux ont des équipes de personnes qui essaient vraiment de travailler dessus leur donne un avantage assez sérieux sur PHP dans ce domaine. le respect.
la source
1) Performance: plusieurs réponses ici sont trompeuses sur ce point.
Le projet Phalanger (que j'ai utilisé avec succès dans le passé) vous permet d'utiliser du code C # dans PHP et vice-versa, ou de passer complètement de l'un à l'autre langage. Vous devrez probablement faire quelques changements, mais au fur et à mesure qu'ils y travaillent, cela va de mieux en mieux.
Mon point est, ils ont découvert qu'il y a un facteur moyen de 2,5 vitesses en faveur de C # (ou .NET en général, VB ferait de même, c'est MSIL à la fin).
Découvrez leurs tests avec Wordpress, il a attiré beaucoup de développeurs.
Maintenant, nous ne l'avons pas encore vu, mais il y a toujours le mec qui va vous dire que FaceBook est écrit en PHP. Faux. C'était, à l'origine, jusqu'à ce qu'ils réalisent leur erreur et écrivent HipHop pour le transformer en C ++.
EDIT: Apparemment , ce dernier bloc ne sait pas, donc ce que je voulais dire est FaceBook EST écrit en PHP, mais HipHop fait RUN comme C ++, pour améliorer la vitesse globale, CAR PHP est lent.
2) Sécurité: Comme cela a déjà été dit, PHP a une longue histoire de problèmes de sécurité.
3) Temps de développement: Faire un site Web en PHP a tendance à être plus facile, surtout avec les frameworks et tous les "constructeurs de sites" disponibles. Créer un site Web PHP bon, fiable et sécurisé est une autre histoire.
la source