写点什么

辩论:为什么多数大型网站不是用 Java 写的?

  • 2007-11-01
  • 本文字数:1990 字

    阅读完需:约 7 分钟

GigaSpaces Nati Shalom 最近问到为什么多数大型网站是用非Java 语言编写的。这个问题在Java 社区引发了一场大辩论,InfoQ 抓住机会了解到更多围绕这个问题的主要观点。

Shalom 在他的帖子中指出,他所知道的许多站点使用了 LAMP(Linux, Apache, MySQL, PHP/Perl)组合,有几个网站还开发了自定义的文件系统(如 Google’s GFS )或利用了缓存技术(如 memcached )。Shalom 指出了为大型 Web 应用和大型财务应用开发的各种可伸缩性解决方案的相似之处:

在数据层我们看到如下特征: 1. 增加一个缓存层以利用可用内存资源并减少 I/O 开销
2. 从中央数据库方式转向分区方式,也称为 shards(注: shards 是 google 贡献给 hibernate 的一个项目,目标是通过 hibernate 在多重数据库上提供一个统一的视图。)

在业务逻辑层: 3. 给应用层增加并行语义(如 MapReduce)
4. 转向向外扩展(scale-out)应用模型以达到线性可伸缩性
5. 远离经典的两阶段提交和 XA 事务处理(参见:来自 Pat Helland 的教训:生命超越于分布式事务

Shalom 接着质疑这些相似的解决方案怎样能有这么不同的应用组合数量。Shalom 指出一个可能的原因是由 Todd Hoff 提出的——LAMP 组合强大且免费,Java 是被使用了,但是作为一个辅助组件而非核心来使用。

其他一些观点:

GigaSpaces 的 Mickey Ohayon 有一个更细致的回应:

从技术的角度看: - 用 Php / Perl 开发快且简单,而用 JEE 更复杂

  • 从历史上讲有更多可用的知识、主机服务和开发者
  • LAMP 被证明是稳定且流行的,而 JEE 更多的是一个基础架构
  • JEE 需要应用服务器,而这对 Web 系统来说有时过于有杀伤力了
  • 从短期看,轻量级 Web 语言(Php/Perl)应对变化更加灵活(作为基于非 MVC 的糟糕架构,当然从长期看任何改变的花销都非常高)
  • 部署和测试 Java 应用很慢而且需要相对性能更强的机器

从财务的角度看: - JEE 开发者比 Perl / Php 更昂贵

  • 学习曲线和上市时间更长
  • 托管 JEE 应用服务器更昂贵

诺基亚的 Jilles Van Gurp 评论说 Java EE 是对企业领域来说是最优的,这一领域需求集合不同于面向消费者大型网站:

这些网站有相对简单的数据基础结构;对诸如事务和持久层(mysql + 非事务 ACID 后端大多数情况下就足够好了)的需求不严格;实际上没有对重型 Web 服务栈的需求;等等。基本上所有 J2EE 素材都是优秀的,大部分只是对面向消费者网站实现具有过度杀伤力。在这里你不需要迷人的 IDE;灵活的消息传递总线;难忍复杂的事务逻辑等等。取而代之,焦点集中于极度可伸缩性;内存使用;cpu 使用;缓存;等等。那些事情可由现货供应组件如 squid、apache、分布式 linux 文件系统等等来解决。他们也可由 Java 组件解决,但是这需要你有 J2EE 方面的专家去整合它们。这并不容易招募到,因为当前劳务市场缺乏,而且这些人倾向于从事报酬很好的企业类型的工作。

Van Gurp 也认为 Java 占据了今后的有利位置:

最终,我认为所有这些都正在改变。运行 ruby 或 php 的 Java 实现可以给你的 php 或 rails 应用给出一个好的安全性、性能、可伸缩性及可管理性推进。如果你正在运作这些大型系统部署却不尝试这一点是愚蠢的。这对 php 和 ruby 开发者来说仍是相对未知的,相当多的人没有对完成事情的效率给予足够的关心,相反它们宁愿在硬件上投资。但是一旦他们转而使用 Java 应用服务器上的 php 或 ruby,他们将发现一个额外组件的世界,可以进一步增强他们的应用。作为证据,Google 的 Web 开发工具链(部分开源)代表了极端大型和快速原型 Web 开发的技术发展水平。而且从 Web 开发者的视角看,应用逻辑 100% 用 Java 书写。据我了解,Google 在它们的 Web UI 层没有大规模部署 php 或类似架构 (如果不是这样,我很有兴趣去学习学习)。

看到辩论展开之后,Shalom 表示他与 Michael O’Keefe 的观点一致,该观点囊括了上面表述的几个观点。Shalom 还提及,伴随诸如 Spring on Rails Caucho 的基于 Java 的 PHP 实现 的出现,市场出现了集中的趋势,而且开发可伸缩站点的挑战将使 LAMP 套件和 Java 在将来日趋靠拢。

你怎么认为?

查看英文原文: Debate: Why are most large-scale websites not written in Java?

2007-11-01 01:498732
用户头像

发布了 150 篇内容, 共 52.9 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

极限科技亮相TDBC2025可信数据库发展大会 连续三年荣登信通院《中国数据库产业图谱》

新消费日报

Android适配16 KB Page Size,看这一篇就够了! | 优测云真机实验室

优测云服务平台

an'droid 优测

“天翼云息壤杯”高校AI大赛总决赛在京启幕,全国顶尖战队竞逐AI巅峰!

天翼云开发者社区

AI大赛 天翼云

局域网IM聊天软件,安全的政企内部沟通工具

BeeWorks

即时通讯 IM 私有化部署

VMware ESXi 8.0U3f macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版

sysin

esxi

行业研究 | 2025金融可观测性实践与趋势洞察报告重磅发布!

博睿数据

以“息壤”一体化智算服务平台夯实新质生产力,助力千行百业实现高质量发展!

天翼云开发者社区

算力 天翼云

springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务

刘大猫

人工智能 算法 DolphinScheduler 调度器 大模型

VMware ESXi 7.0U3w macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

sysin

esxi

VMware ESXi 8.0U2e macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

sysin

esxi

语音 AI 公司 Deepgram 发布 Saga,面向开发者的语音操作系统;OpenS2S:完全开源的共情语音大模型丨日报

声网

行业AI先锋,为何网络先行?

脑极体

AI

VMware ESXi 7.0U3w macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版

sysin

esxi

在Google Play应用上实施中间人攻击 | 金融科技漏洞赏金系列第3部分

qife122

移动安全 Android逆向

直播预告 | 头部券商实战案例分享!可观测性如何守护业务零中断?

博睿数据

VMware ESXi 8.0U2e macOS Unlocker & OEM BIOS 标准版和厂商定制版

sysin

esxi

这款企业级IM即时通讯软件,可私有化免费部署使用!

BeeWorks

即时通讯 IM 私有化部署

从手写CRUD到一键生成:Sponge如何将Go开发效率推向新高度?

vison

后端 gin #go

VMware ESXi 9.0.0.0100 macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版

sysin

esxi

电商分析必备!淘宝API+社媒监测:实时追踪爆款商品数据

tbapi

淘宝API 淘宝商品详情API接口 天猫API 天猫商品详情API接口 社媒监测

淘宝关键词搜索商品列表API接入指南(含Python示例)

tbapi

淘宝商品列表接口 天猫商品列表接口 淘宝关键词搜索接口

VMware ESXi 8.0U3f macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

sysin

esxi

优测发布IoT云联解决方案,赋能生态应用创新跨端体验!

优测云服务平台

解决方案 loT 优测

火山引擎DataAgent:AI完成从“数据洞察”到“自主行动”质变

字节跳动数据平台

跨越“演示”到“生产”鸿沟,亚马逊云科技开启AI Agents新纪元

Alter

AI agent

新华视点:人工智能时代,我们需要怎样的人才 ?(附网易伏羲专家采访观点)

网易伏羲

大模型 网易伏羲 AI 智能体 群体智能

TDBC2025大会聚焦AI与数据库融合 极限科技发布新一代Coco AI搜索平台

新消费日报

海外营收增长700%!阿里云助力云鲸智能出海

新消费日报

百度智能云携手香港大学,开启AI出海教育新征程

百度Geek说

国际认可!天翼云“云顶”AI赋能营销服务应用案例成功入选联合国AI for Good创新扩大影响案例集!

天翼云开发者社区

人工智能 天翼云

辩论:为什么多数大型网站不是用Java写的?_Java_Ryan Slobojan_InfoQ精选文章