2009-10-31 5 views
1

Dans le développement d'une application web qui traitera les cartes de crédit, les achats, les téléchargements numériques, y a-t-il un réel avantage à utiliser Java sur PHP?PHP ou Java pour le commerce électronique

Ce sera un magasin qui vend des téléchargements numériques.

+0

Sans doute dupliquer de http://stackoverflow.com/questions/1341837/java-vs-php-how-do-this-technology-stack-up-for-web-application-development – cletus

+0

@cletus, je pense que le le contexte est différent. –

Répondre

1

Il n'y a rien que vous ne puissiez faire dans l'un que vous pouvez faire dans l'autre. Choisissez celui que vous connaissez le mieux. C'est beaucoup plus important que tous les avantages techniques allégués. Les différences les moins importantes sont:

  • L'hébergement PHP est généralement moins cher;
  • Java gère beaucoup mieux le multithreading;
  • Vous finissez par écrire beaucoup de code standard en Java pour des choses dont PHP a des fonctions API;
  • Le développement PHP a tendance à être plus fluide simplement parce qu'il n'y a pas d'étapes de construction et de déploiement. Vous cliquez sur enregistrer et recharger votre navigateur;
  • Java a probablement plus de frameworks et de bibliothèques que PHP;

Edit: Êtes-vous vraiment en argumentant Java n'a pas beaucoup de code passe-partout? Sérieusement? Je vais vous donner un exemple: lire un fichier dans une chaîne.

Java:

public String readFile(String fileName) { 
    StringBuilder s = new StringBuilder(4096); 
    BufferedReader in = null; 
    try { 
    in = new BufferedReader(new FileInputStream(file)); 
    char buf[] = new char[4096]; 
    while ((numRead = in.read(buf)) != -1) { 
     String chunk= String.valueOf(buf, 0, numRead); 
     s.append(chunk); 
    } 
    } catch (IOException e) { 
    // handle 
    } finally { 
    if (in != null) { try { in.close(); } catch (Exception e) { } } 
    } 
    return s.toString(); 
} 

PHP:

$s = file_get_contents("filename.txt"); 

Au-delà, regarder le passe-partout hashCode(), equals(), toString() et lecture/copie du code setter qui se termine dans la plupart Java Des applications Web.

+0

Boilerplate - comme quoi, par exemple? –

+0

Je pense que cela dépend des technologies Java que vous utilisez. Si vous êtes coincé en utilisant l'ancien EJB 2.0, il y a beaucoup de passe-partout. Si vous utilisez des approches plus récentes, pas tellement. (Une chose que j'aimerais voir en Java est la génération automatique du getter/setter de la propriété JavaBean, comme ce que fournissent Scala et Ruby.) –

+0

pour lire dans un fichier une chaîne dans java: IOUtils.toString (new FileInputStream (new File (fileName, "UTF-8"))); Bien sûr, votre code est passe-partout si vous ne connaissez pas les outils les plus importants. (Ici, IO utilise des paquets d'E/S) – Chris

3

Java a des tonnes de support d'entreprise, beaucoup plus que PHP a. Vous disposez de transactions distribuées, de nombreux pilotes de base de données, de files d'attente de messages, de gestionnaires de persistance tels qu'Hibernate et iBatis, de Spring Framework, de moteurs de modèles, de services Web, etc. Il existe de nombreux serveurs d'applications hautes performances tels que Glassfish, JBoss et WebLogic. Donc, vous devriez considérer Java sur PHP à mon avis, sauf si votre application est à petite échelle a des besoins de commerce électronique à petite échelle et vous vous sentez déjà à l'aise avec PHP. Pour ce que ça vaut, c'est un conseil que j'ai reçu l'an dernier du vice-président de l'ingénierie d'un grand site de commerce électronique nord-américain.

Mise à jour: Java gagne également sur les performances brutes, environ 30 fois plus vite que PHP selon these benchmarks (qui n'utilisent probablement pas la mise en cache des opcode, voir les commentaires).

Mise à jour: Une prise sur Java à partir de highscalability.com. Il souligne le fait que Java la langue est moins importante que Java la plate-forme et Java la communauté. Beaucoup d'outils matures à choisir, beaucoup de gens y travaillent. Même beaucoup de nouveaux langages JVM spiffy que vous pouvez utiliser avec Java (Scala, JRuby, Groovy, Clojure, Jython et ainsi de suite). Les exemples de grands sites utilisant Java intégralement ou partiellement incluent Fotolog, Amazon, E-Bay, Flickr, LinkedIn, GoogleTalk.

+4

-1 Petite échelle comme ... Wikipedia, Flickr, Facebook ou Yahoo (tous PHP)? C'est un conseil terrible (et sans fondement). – cletus

+0

@cletus: Très vrai, les sites Web évolutifs de Cal Henderson montrent comment cela se fait avec PHP. Je me concentrais davantage sur les besoins du commerce électronique «à petite échelle», un mauvais choix de mots. –

+0

En ce qui concerne les pilotes de base de données, c'est un problème. Mais pour les performances, PHP bytecode était-il en cache ou était-il exécuté entièrement? – Chris

9

Les navigateurs ne se soucient pas si le code HTML qu'ils voient a été généré par PHP ou Java, donc les différences sont de backend pur.

Vous devriez généralement utiliser la langue que vous connaissez déjà, étant donné la quantité de travail nécessaire pour apprendre une autre plate-forme logicielle "assez bien", par ex. Java avec n'importe quel framework Web donné sera plutôt élevé. C'est à vous de décider s'il y a suffisamment de code à écrire pour que votre produit fini justifie même d'y penser. Mon opinion personnelle est que Java est la substance utilisée pour construire des cathédrales. Cela prend un certain temps à construire, mais ils restent debout pendant des siècles. Si c'est ce dont vous avez besoin, optez pour Java (et apprenez-le bien). Sinon, choisissez la langue que vous connaissez le mieux.

4

J'ai construit une application de commerce électronique en neuf mois (www.perqworks.com) avec le framework PHP Symfony (symfony-project.org) et la doctrine ORM ne connaissant que très peu de code ou de conception de base de données côté serveur. Pourquoi je crois que PHP était le bon choix est:

  1. je pouvais apprendre le code PHP rapidement à php.net
  2. documentation Symfony et forums ont été très utiles
  3. être vierge avec SQL, la doctrine était logique et a moi une certaine confiance que mes questions étaient bien écrites
  4. le coût de la pile LAMP est imbattable
  5. Il est difficile de passer au crible par J2EE, Spring, haricots, JMV, et plusieurs autres problèmes Java Domaines remplit

Maintenant que l'application est écrite et que j'ai un peu de recul, je me demande quel aurait été le produit final et l'expérience de développement de l'application avec Django, Rails ou Java. Ce que j'ai conclu, c'est que la différence entre les principaux langages de développement web n'est pas la somme de leurs petites différences, mais la capacité du programmeur à écrire du code intelligent et efficace.