php - Java EE vs PHP - 为什么这么多人认为 Java 更好?

标签 php spring hibernate codeigniter jakarta-ee

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

我更熟悉 php,但客户要求我用 JAVA EE 来做。

我对 Java 及其框架的看法始终相同:

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

我想我可能会有些困惑,因为很多人和大公司都在继续使用 JAVA 网络。为什么?是关于整合?

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

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

提前致谢,

阿尔伯托

最佳答案

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

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

人们经常谈论语言及其功能,但当必须讨论第一个业务用例时,没有任何框架可以为您节省这么多时间来使其发挥作用。大多数编程语言都会以某种方式解决这个问题。

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

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

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

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

我不是最大的 Java EE 粉丝,所以我不会提示。

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

Java 中也有轻量级的方法。我同意 Java 中的标准确实有更胖的趋势。

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

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

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

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

关于php - Java EE vs PHP - 为什么这么多人认为 Java 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479495/

相关文章:

php - 如何转义 .htaccess 中的井号 (#) 字符?

phpunit xml 文件 (phpunit.xml)

spring - SBT/Spring-AspectJ/编译时编织

spring - 处理将用户名作为 url 一部分的 url 模式

java - 如何正确捕获、包装和重新抛出 Hibernate 异常?

java - PESSIMISTIC_WRITE 是否锁定了整个表?

php - 使用 AJAX、MVC 实现 OOP PHP?

php - 数据库架构 - 基于 'item' 创建私有(private)消息传递

java - 应用程序部署在unix环境下的JBoss中时如何实现Spring LDAP身份验证?

java - 无法解析 'javax.persistence.EntityManager' 的 bean