大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

Javascript 的兴起是否意味着 LAMP 的终结?

  • 2011-04-20
  • 本文字数:1400 字

    阅读完需:约 5 分钟

Metamarket 的 CTO Mike Driscoll 最近发表了一篇略带煽动性的帖子,讨论了Web 应用的架构。他认为 Node.js 框架预示着 LAMP 的终结。

三个月前,我们决定废弃仪表盘选用的框架:Python 的 Django,并用 Node.js(服务器端的 Javascript)重新构建了框架。鉴于 LAMP 堆栈已经死亡,我们才做出了这个决定。

Mike 认为 Web 有三个阶段:

  • 1991-1999:HTML 时代——这是个文档的时代。
  • 2000-2009:LAMP 时代——使用数据库的时代。
  • 2010-??:Javascript 时代。Javascript 时代是事件流的时代。

现代的 Web 页面已经不再是页面了,它们都是事件驱动的应用,信息会通过这些应用流转。

他解释道:

LAMP 架构已经死了,因为对于响应里的 Mashup,很少有应用愿意把全部的有效负载转移到很小的事件上去;他们只想用 Javascript 更新 DOM 的一个片段。AJAX 做到了这一点,但如果服务器端的 LAMP 模板有 10% 的 HTML 和 90% 的 Javascript,这么做显然是不对的……

Mike 认为,服务器的主要作用就是带着数据(JSON)把应用发送到客户端(Javascript),并让客户端从中构造 UI。服务器的次要作用则是监听处理事件的流,并有效地把响应推回客户端,这些事件可能是一次新的编辑、一条消息、或是 Ticker 发生了变化。

一些人对此发表了评论:

Bruce Atherton 赞成 Mike 的观点,但他认为事件并不会通过 HTTP 来流转:

Websockets 和 SPDY 将会接管这方面的处理,因为和 HTTP 相比,它们更合适这个任务。

Chase Sechrist 已经在很多地方使用了 Node.js,即便如此,他仍然列举了一些对 Node.js 的担忧:

你还需要知道一些高级知识,比如竞态条件的调试方法、事件循环的工作原理,甚至在递归回调导致栈溢出时,调用堆栈的处理方式。正因为如此,对那些写了二十年 C 的人、还有刚开始编程的初级工程师来说,控制流还是非常奇怪、令人费解的。

“Jorjun”指出,以现在的变化速度来看,即使 Javascript 这个新的架构是合理的,它也不会太持久:

两年之内会有一种更高效的方式对宝贵的 IP 进行编码。需要注意的是,新的方式正在出现,Java 对它们没有任何意义——这些方式在九十年代末还没有出现。Javascript 的愚蠢名副其实。它有大括号、奇怪的 Fudgery、极其恼人的 Artefact,对我这样的老学究来说,Javascript 看起来轻率、讨厌、太复杂而容易混淆。

NOLOH 的联合创始人 Asher Snyder 认同帖子的前提条件:“Web 应该、也正在转向事件。”但并不相信 Javascript 能引领方向。他认为“我们正在走向一个平台或统一语言的时代,因为只有平台或统一语言才能让快速开发真正处理好 Web 的疯狂”。

Subbu Allamaraju 最近发布了 Node.js 和 Play 的一些性能对比数据,InfoQ 和他简单讨论了一下:

就个人而言,我发现 Node.js 和 Play 等框架让 Web 开发人员觉得很兴奋,因为它们带来了一些新的思想。在 Web 框架领域,特别是在 Java 端,这样的简单性已经很久违了。尤其是 Play,它在 Netty 之上,而不是传统的 Servlet 框架,是一个很不错的选择。

Web 应用架构的演进确实很快。由于 Web 应用变得越来越“厚重”,特别是在事件驱动的世界里,人们只能思考 REST 还剩下什么,看来我们要回到最初开始的地方了。最近我们确实没怎么听说有关 REST 及其统一接口的消息,还有它怎样成功改变 Web 应用架构的相关内容。你对 Web 应用架构的未来持什么观点呢?你怎么看 Javascript 成为主流的编程语言?

查看英文原文: Will the Rise of Javascript Mean the End of LAMP?

2011-04-20 09:329036
用户头像

发布了 151 篇内容, 共 66.7 次阅读, 收获喜欢 18 次。

关注

评论

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

英特尔拥抱开源,岂能没有杀手锏?

E科讯

让AI发展避开“暗礁”,索信达控股推出自研区块链+联邦学习解决方案

索信达控股

区块链 金融科技 联邦学习 金融监管 风控

解密开源技术的污点

BeeWorks

存储大师班:NFS 的诞生与成长

青云技术社区

存储 分布式存储 NFS

WICC 2021来袭 融云领衔探索互联网通信云技术新方向

融云 RongCloud

JAVA 面向对象 (十二)-- 关键字this

加百利

Java 关键字 this 6月日更

深度学习分类任务常用评估指标

华为云开发者联盟

机器学习 深度学习

电梯“惊魂”事故频频发生,可视化全平台覆盖,远程值守高效监控

一只数据鲸鱼

数据可视化 智慧城市 智慧园区 智慧电梯

英特尔院士Johanna Swan:极致的异构集成是半导体封装未来趋势

E科讯

使用高级视频质量工具 AVQT 评估视频 | WWDC 演讲实录

网易云信

机器学习 算法 音视频

深入C语言中数据的存储

小写丶H

作为后端开发者的思考:如何看待如今的前端架构

吴脑的键客

大前端 后端

CloudQuery 安全系列(一): Http 与 Https

BinTools图尔兹

数据库 网络安全 https 数据安全 数据库管理

安卓工控主板显示接口有哪些呢?

双赞工控

安卓主板 工控主板 ARM开发主板

数字化时代,为什么解决信任问题是科技公司最重要的事情?

CECBC

未来法律科技发展现五大趋势,区块链、AI、大数据吸引资本目光

CECBC

数字人民币双层运营架构下缘何衍生出2.5层?看完才明白,原来这么重要!

CECBC

华为云数据库GaussDB(for Cassandra)揭秘:内存异常增长的排查经历

华为云开发者联盟

nosql 云原生 Cassandra 华为云数据库 GaussDB(for Cassandra)

🏆「终」【JVM 性能调优】「CMS 垃圾回收器」优化实战分析(补充版)

码界西柚

CMS JVM GC调优 6月日更

技术解密 |阿里云多媒体 AI 团队拿下 CVPR2021 5 冠 1 亚成绩的技术分享

阿里云CloudImagine

阿里云 AI 计算机视觉 经验分享 CVPR

用超出行业平均薪资招人?

石云升

职场经验 管理经验 6月日更

云小课 | MRS基础入门之HDFS组件介绍

华为云开发者联盟

hadoop hdfs 分布式文件系统 MapReduce服务 数据读写

法国政府的"安全 "WhatsApp替代品在短短90分钟内被破解

BeeWorks

透过 3.0 Preview 看 Dubbo 的云原生变革

try catch

Vue Conf关于Vite的分享给我带来的启发

前端森林

vite esm Vue 3

社群编码识别黑灰产攻击实践

百度Geek说

在北鲲云超算平台上做球体落入水中的流固耦合仿真模拟记录

北鲲云

数仓备机DN重建:快速修复你的数仓DN单点故障

华为云开发者联盟

数据仓库 主机 华为云 备机 DN

Facebook Chat真的是世界第三大即时通讯客户端吗?

BeeWorks

Spring @Transactional 注解是如何执行事务的?

程序员小航

Java MySQL spring 事务 代理

CloudQuery 使用教程之《No.2数据查询(上)》

BinTools图尔兹

sql dba 数据库管理工具 国产数据库 开发运维

Javascript的兴起是否意味着LAMP的终结?_Java_Jean-Jacques Dubray_InfoQ精选文章