JavaEE与PHP - 为什么这么多人认为Java更好?

时间:2012-02-28 09:35:37

标签: php spring hibernate codeigniter java-ee

我需要对网络项目使用什么技术,该团队由4名开发人员组成,项目时间为1年。

我对php比较熟悉,但是客户要求我用JAVA EE做这件事。

我对Java及其框架总是有同感:

  • 这么多xml和类是为了做简单的事情。在codeigniter中我要使用3个文件(模型,视图和控制器)和hibernate + spring + JSF我需要超过10个文件!!!
  • 滥用服务器。 javascript代码失去了重要性,现在它并不好。当然我们可以添加javascript代码,但似乎“java web guys”更喜欢在服务器而不是客户端上做东西。
  • 不好看的应用程序。 Richfaces似乎是几年前的网络。
  • 当我看到像liferay,alfresco这样的java应用程序时,它们看起来很沉重而且很慢。

我认为我可能有点困惑,因为很多人和大公司继续在网络上使用JAVA。为什么?这是关于整合的吗?

另一方面,Java比PHP快,但JAVA的服务器需要大量内存(更昂贵)。在具有许多请求的服务器中,我们可以使用像php这样的语言来改进,每个进程的时间更长,每个进程的内存更少,因为服务器永远不会因为内存而崩溃。有时JAVA服务器可能因内存而崩溃,实际生产环境中的平均响应时间将大于php。

我对Codeigniter非常满意,为什么这么多人认为Java更好?

提前致谢,

阿尔贝托

1 个答案:

答案 0 :(得分:28)

我没有使用CodeIgniter,所以我的比较已经不完整了。

问题一是:他们为什么要求Java?通常,大公司只为生产系统提供Java或.Net环境,因此他们可能没有人员有效地运行PHP应用程序。我知道它并不复杂,但维护人员定义了他们正在运行的东西。

在人们谈论语言及其功能之后,但是当必须讨论第一个业务用例时,没有任何框架可以为您节省大量的时间来计算它。大多数编程语言都会以某种方式解决问题。

Java不仅仅是RichFaces或JSF。有很多可供选择。很多。没有优势。

经常忘记的东西是工具支持。 Java附带了一个JVM,可以详细分析它对内存,垃圾收集器,线程等的作用。 Java中的Profilers允许您在几小时内识别几乎任何内存泄漏。 大多数JVM监控实时工作(开销约为5%)。 谈论工具:重构支持远远超出了PHP IDE的功能。

如果第一次看Java与PHP相比看起来像大象和马,那你就是对的。 (好的,php的标志是大象,完美的比较......)。马可以更灵活地转弯,但是它们可能不会携带那么多。 我认为从语言角度来看,Java仍然比PHP更先进。命名空间,类,类型 - 安全。这些在PHP中可用,但仍然很新。

像Spring这样的框架允许您在架构级别上利用您的应用程序,而不仅仅是库。

我不是最大的Java EE粉丝,所以我不会抱怨。

一个简单的方法可能是Tomcat + Spring + SpringMVC和GUI的模板引擎。如果您针对更高速度的客户端行为(还有很多更多),还有GWT(Vaadin)。

Java中也有轻量级方法。我同意Java中的标准确实有更多的脂肪倾向。

根据我的经验,与PHP相比,Java没有重大缺陷。语言选择只会影响项目的成功,如果人们的知识少于所需知识,并且花费太多时间学习东西。并试图找到关于Java的正确书籍可能是一个自己的项目:) (算作优势)

但我毫不怀疑PHP会允许你完成这个项目。

在选择技术之前,我宁愿研究目标和要求。这通常意味着或简化了决策。

我希望我在这里至少回答了一个问题:)