用于电子商务的PHP或Java

时间:2009-10-31 20:33:12

标签: java php e-commerce

在开发处理信用卡,购买和数字下载的Web应用程序时,使用Java而不是PHP有什么现实的好处?

这将是一家销售数字下载的商店。

4 个答案:

答案 0 :(得分:9)

浏览器不关心他们看到的HTML是由PHP还是Java生成的,因此差异是纯后端。

您通常应该使用您已经熟悉的语言,因为学习另一个软件平台所需的工作量“足够好”,例如:任何给定的Web框架的Java都会相当高。由您来决定是否需要编写足够的代码以使您的成品保证甚至可以考虑它。

我个人认为Java是用来建造大教堂的东西。需要花费很长时间才能建造,但它们已经存在了几个世纪。如果这就是你所需要的,那就选择Java(并学好它)。如果没有,那么选择你最熟悉的语言。

答案 1 :(得分:4)

我在九个月内(www.perqworks.com)使用PHP框架Symfony(symfony-project.org)构建了一个电子商务应用程序,而ORM Doctrine对服务器端代码或数据库设计知之甚少。为什么我认为PHP是正确的选择是:

  1. 我可以在php.net
  2. 快速学习PHP代码
  3. Symfony文档和论坛非常有用
  4. 作为一个有SQL的处女,Doctrine很有意义,让我有信心我的查询写得很好
  5. LAMP堆栈成本无与伦比
  6. 很难筛选J2EE,Beans,Spring,JMV以及Java填充的其他几个问题域
  7. 既然已经编写了应用程序并且我有一些事后的想法,我想知道开发应用程序的最终产品和经验是用于Django,Rails还是Java。我得出的结论是,主要的Web开发语言之间的差异并不是它们的微小差异的总和,而是程序员编写智能,高效代码的技能。

答案 2 :(得分:3)

Java拥有大量的企业级支持,远远超过PHP。您有分布式事务,大量数据库驱动程序,消息队列,Hibernate和iBatis等持久性管理器,Spring Framework,模板引擎,Web服务支持等等。有很多高性能的应用服务器,如Glassfish,JBoss和WebLogic。所以你应该考虑Java而不是PHP,除非你的应用程序是小规模的有小规模的电子商务需求,你已经对PHP感到满意了。

值得一提的是,这是去年北美大型电子商务网站工程副总裁给我的建议。

更新:根据these benchmarks(可能没有使用操作码缓存,请参阅注释),Java也会在原始性能上获胜,比PHP快30倍。

更新:从highscalability.com获取Java。它强调Java语言不如Java平台和Java社区重要。有很多成熟的工具可供选择,很多人都在研究它。甚至还有很多可以和Java一起使用的新的JVM语言(Scala,JRuby,Groovy,Clojure,Jython等)。完全或部分使用Java的大型网站示例包括Fotolog,亚马逊,E-Bay,Flickr,LinkedIn,GoogleTalk。

答案 3 :(得分:1)

在另一个你可以做的事情中你无法做任何事情。选择一个你最熟悉的人。这比任何所谓的技术优势重要得多。不太重要的区别是:

  • PHP托管通常更便宜;
  • Java更好地处理多线程;
  • 你最终用Java编写了许多样板代码,用于PHP的API函数;
  • PHP开发往往更顺畅,因为没有构建和部署步骤。单击“保存并重新加载浏览器”;
  • Java可能比PHP更多的框架和库;

编辑:你真的在争论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");

除此之外,请查看样板hashCode()equals()toString()和getter / setter复制代码,这些代码最终会出现在大多数Java Web应用程序中。