11
votes

Application Web côté serveur Java ou PHP Server et pourquoi?

Je crée une application Web qui implique beaucoup d'accès à la base de données et d'analyse et d'analyse des données, Java est la langue que je suis le plus à l'aise, mais on nous a dit que je devrais envisager d'utiliser PHP car il fabrique des protocoles d'accès à la DB. beaucoup plus simple.

Je n'ai pas de bonne connaissance de PHP, mais seraient disposés à apprendre à utiliser si cela allait être la meilleure option en ce qui concerne la fonctionnalité, la portabilité ECT est concernée.

L'application Web s'exécutera contre une DB Oracle et utilisez Flex pour l'interface graphique, s'il vous plaît des expériences de projets similaires et de ce qui a permis de mieux aider l'approche choisie aiderait ou simplement des opinions de toutes sortes.


2 commentaires

Que voulez-vous dire - "Protocoles d'accès à la DB"? Chaque langue utilise l'API, pas le protocole brut.


désolé mon erreur, je voulais dire que les procédures d'accès général


8 Réponses :


35
votes

Si vous êtes à l'aise avec Java, je ne vois pas la nécessité d'apprendre / utiliser PHP. Il n'y a rien que PHP puisse faire ce Java ne peut pas.

Il est vrai que, en général, PHP est un langage beaucoup plus permissive et que certaines tâches peuvent être remplies plus rapidement et avec moins de code. PHP a certainement une abstraction moins intégrée que Java. Mais si vous êtes à l'aise avec Java, je dirais que je vais rester avec elle.

(Je dis cela comme un développeur PHP.)


10 commentaires

+1. Je suis un PHP Dev, et un bon ami à moi développe des applications Web avec Java qui sont également efficaces.


Ha ha merci les gars, l'efficacité était un point que j'étais inquiet, mais c'est rassurant. Merci pour ton aide


@Pekk, divulgation complète: je suis un développement Java, et je n'ai jamais écrit une ligne de PHP. J'aime juste continuer la stigmatisation ....


@jjnguy j'ai compris autant :) Eh bien, cette stigmatisation est quelque chose que nous devrons vivre avec ... L'approche "moins de bureaucratie" est la raison pour laquelle j'aime PHP, mais il existe de nombreuses façons de construire un mauvais code avec elle.


@Pekka, j'avais travaillé pour environ 7 sites Web à PHP et beaucoup plus que celui de Java, j'ai trouvé Java un Superset. :)


@org il est sans aucun doute à bien des égards. Cela dépend de ce que vous voulez construire


@Pekka, si vous êtes également familiarisé avec les deux pour quel type d'application vous irez pour PHP?


@org Je ne peux pas prétendre être tout aussi familière avec Java, pas par un long coup. Mais d'après ce que je sais, pour tout ce que je veux être simple, portable et bon marché pour courir / déployer et entretenir, je préférerai PHP bien écrit n'importe quel jour. Mais cela a été discuté de nombreuses fois sur SO ...


@Pekka, d'accord, voulait que votre point de vue personnel: p


Je vois beaucoup plus de moteurs PHP sur mes services d'hébergement partagés que les conteneurs de servlet. Je vais coller à PHP pour de petites choses.



6
votes

IMHO Si vous connaissez Java, utilisez JPA.

Si vous voulez apprendre quelque chose de nouveau et de prototypage rapide, utilisez Python / Django.


2 commentaires

Merci, Paulo Il, je suis un coup d'oeil à Hibernate.


Remplacez le mot hibernate par JPA, comme vous devez examiner l'API et non dans l'une des implémentations spécifiques.



0
votes

Eh bien, le problème réel ici est que vous avez besoin de bibliothèques pour faciliter votre travail. JVM en tant que plate-forme a beaucoup d'options que PHP, si, sans autre raison que vous ne pouvez hybrider votre application avec des langues intégrées. En outre, Hibernate est fantastique comme une orm (cartographie relationnelle d'objet), prenant essentiellement vos tables et les regarde comme pojos.

Si vous faites beaucoup de choses «brutes», j'aime bien utiliser Suite, une bibliothèque rubis et fonctionne très bien sur Jruby. En général, je trouve que le code de typage de canard / concis que les gens aiment sur PHP sont absolument reproductibles dans Ruby via Jruby (ou Jython pour vos types d'enthousiastes de Python).

La meilleure bibliothèque va être dictée par la funkiness du schéma que vous traitez, en plus du type de travail que vous faites. Avez-vous besoin de faire beaucoup de requêtes compliquées, d'aller chercher des colonnes de plusieurs tables à la fois? Ou est-ce davantage sur les lignes de "Je dois chercher toutes les commandes pour un certain client et l'afficher dans un tableau d'historique de commande"? Les ormes conviennent mieux à ce dernier, ce que les applications Web ont tendance à être, mais votre mention de l'analyse et de l'analyse me fait me demander si c'est plus le premier.

Hibernate vous donne la plus grande flexibilité, je trouve. Ce n'est pas une bonne idée d'utiliser des trucs autogénérées sans l'examiner, mais si vous utilisez Eclipse, il y a un plugin qui générera les classes pour vous.

Une autre raison d'aller avec Java: Si vous regardez le conteneur de verre de verre pour votre application Web, il dispose de pools JDBC pour vous et vous pouvez examiner les statistiques et la gestion de la piscine. Si vous avez beaucoup d'accès à la base de données, cela pourrait être assez utile.


3 commentaires

Je trouve votre affirmation selon laquelle "JVM comme plate-forme a beaucoup d'autres options que php" est absurde! J'accepterais que J2EE, ou J2ME, aboutit à beaucoup de domaines que PHP ne le fait pas, mais pas la JVM.


Le JVM a des langues intégrées. Êtes-vous en train de me dire que la puissance combinée de J2Ee, Ruby, Python, Groovy, JavaScript, Scala et Clojure n'ont pas plus d'options que PHP?


Vous pensez que cela n'est pas possible avec PHP d'invoquer et d'interagir avec Ruby, Python. JavaScript, C, Perl, Prolog, Forth, Basic, Smalltalk, Awk, Cobol, Comal, Pascal, Fortran, Lisp, Mono, Eiffel, Algo, Algol, Oberon, Haskell, Pascal, Schéma, Java, SQL ..... La différence est que celles-ci s'assoient en dehors de la PHP Runtime et ne sont pas contraintes par l'environnement d'exécution d'invoquant



0
votes

Je pense qu'il n'y a pas besoin de PHP, vous pouvez simplement aller avec Java.Si vous considérez que cette application doit être une application Web, vous pouvez utiliser php.so vous pouvez y accéder de n'importe où


0 commentaires

2
votes

PHP vous permet de faire beaucoup de choses Web avec moins d'effort et de moins de lignes de code que Java, je pense (et je ne parle que de ma propre expérience - il y en a toujours des qui vous disent "utilisez Java, PHP est la merde "et il y aura ceux qui vous disent" php est tellement meilleur que Java ". Ne nous écoutaez pas, essayez-le simplement ou vous ne saurez jamais!). Je fais beaucoup de choses Java, mais en ce qui concerne les applications Web, je ne suis pas content de ça. Pour la plupart de nos clients, il n'est pas possible d'utiliser Java aussi, alors je n'ai pas beaucoup de choix, de toute façon.

Il existe de bonnes frayères PHP (Yii, par exemple, que j'aime la plupart) et vraiment bon ormes comme doctrine ou enregistrement actif. Si vous devez apprendre la langue et que vous êtes intéressé par le développement agile, pensez également à Ruby (Ruby sur rails) ou à Python (Django), comme ce sont les enfants cool de la ville:)


0 commentaires

0
votes

Pourquoi ne pas utiliser les deux? Quercus va diriger PHP en Java. Vous pouvez appeler le code Java comme s'il s'agissait de fonctions PHP natif. Vous obtenez le meilleur des deux. Et votre PHP fonctionnera effectivement plus vite que sous Apache.

Je suis un programmeur PHP et, tandis que les protocoles d'accès PHP DB peuvent être "plus simples" (discutable), je ne dirais pas qu'ils sont meilleurs. Java peut utiliser la mise en commun de la connexion DB et peut "persister" des données, du code et des objets.


1 commentaires

Vous ne voulez pas utiliser les deux parce que vous ne voudrez peut-être pas ajouter de risque et de complexité à votre projet si vous n'avez pas besoin de.



6
votes

Il y a une énorme quantité de différence entre la syntaxe, la phuilosophie et la mise en œuvre des 2 langues. Je suggérerais que «rend plus simple les protocoles d'accès à la base de données de db» n'est pas une raison particulièrement bonne de manière isolée pour choisir une langue sur une autre.

Mon origine est en tant que programmeur PHP, mais je prends en charge actuellement plusieurs grandes applications Web Java. Si vous commencez à partir du même point avec les deux langues, je favoriserai certainement PHP sur Java - mais une discussion complète sur les raisons pour lesquelles vous ferait beaucoup plus de temps et d'espace que sont disponibles ici. Toutefois, si vous avez déjà de fortes compétences Java, vous devez éveiller les coûts d'acquisition du bon niveau d'habileté de PHP - en raison des différences de la manière dont ces systèmes fonctionnent, vous allez trouver votre connaissance de Java autant d'un obstacle comme un avantage pour atteindre la maîtrise de PHP.

D'autres facteurs que je suggérerais de regarder sont:

1) Architecture - PHP nécessite une meilleure compréhension des protocoles sous-jacents que Java (où beaucoup de fonctionnalités sont fournies par des libs / cadres)

2) Facilité de déploiement

3) Considérations de performance - L'utilisation d'un cache de fonctionnement signifie que la différence entre des programmes simples écrits en Java et PHP est faible, car les premiers sont généralement écrits dans des cadres très complexes, PHP peut souvent avoir le bord. Il n'a certainement pas la même complexité de la mémoire MNGMNT

4) TCO - PHPS Facilité d'utilisation est une épée à double tranchant - vous devez en savoir plus sur Java pour obtenir un programme en cours d'exécution, mais le monde et son chien pensent pouvoir écrire un bon code dans PHP. IME sa plus difficile à trouver des programmeurs PHP compétents que les programmeurs Java.


0 commentaires

3
votes

Pour moi, cela revient à la performance. Lorsque vous regardez PHP, il a certainement été déployé sur des plates-formes extrêmement importantes (Facebook l'utilisa presque exclusivement au début), mais en général, il est utilisé sur des plates-formes plus petites. Java, pour moi, lorsque vous regardez, les avantages de l'évolutivité sont supérieurs, mais uniquement lorsque vous savez que vous allez être à l'échelle.

Comprendre le cycle de vie sous-jacent d'une demande est très important. C'est-à-dire savoir ce qu'est un conteneur Java et comment un serveur Tomcat s'exécute m'a aidé à comprendre énormément les implications de la performance.

N'essayez pas de choisir un sur l'autre sur les autres attributs, tels que «Facilité de codage» ou «Connectivité de base de données» - ils sont suffisamment différents que en mettant l'accent sur un couple de choses «importantes», vous serez essentiellement sélectionner en fonction des informations biaisées. C'est-à-dire que PHP facilite la connexion à un dB si vous les regardez sur un niveau de surface- "Ugh! Je dois installer un JDBC, WTF est-ce ???", etc- mais c'est l'excuse de l'homme paresseux. Il n'y a rien que Java ne puisse pas faire ce PHP peut (que je suis au courant).

Pour moi, la question est de savoir comment ( Lire: réalisme ) Voir votre demande de travail - Préposez-vous des milliers de visites par heure ou parlez-vous cent coups par jour comme la grande majorité des petits projets là-bas?

Les avantages du PHP sur des projets plus petits, en particulier pour le programmeur qui ne comprend pas complètement l'architecture de OOP sont énormes - mais ne soyez pas paresseux et ne prenez pas à PHP car il est plus facile hors de la boîte. Java est extrêmement puissant et simplement en apprenant que cela peut vous apprendre plus que ce que vous avez compris que vous ne connaissiez pas sur OOP et de bonnes pratiques de programmation en général (si vous venez du royaume autodidacte comme moi).

Fondamentalement, je dirais que vous analyserez votre chargement de projet estimé, plus de temps de ramassage si vous devez apprendre l'un ou l'autre, évaluer vos exigences d'efficacité et d'évolutivité, continuez à poser des questions, puis décidez quelle plate-forme est meilleure.

espère que cela aide ....!


0 commentaires