Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

Web 框架满天飞,我们还需要构建自己的吗?

  • 2008-01-23
  • 本文字数:1380 字

    阅读完需:约 5 分钟

在 No Fluff, Just Stuff 会上经常发言的 Neal Ford 最近写了一些关于 Craptaculous Web 框架 的文章,这些文章使用了 Jay 在会议上发布的关于开发者目前都在使用何种 web 框架的投票所收集的一些结果。

一般来说, Struts 的使用数量依然占统治地位(但是最近他一直在调查在一个新的项目上有多少人会选择 Struts,而结果 却是数量大幅下降)。他又悉数论述了 web 框架(毕竟在 Java 世界中 web 框架太多了)。在我所在的分会场,我问有多少人在使用他们自己的,土生土长的 “Craptaculous”框架。非常有趣,有很多人举手。这个土生土长的 Craptaculous 框架打败了一些知名对手,像 JSF(谢天谢地)和 Tapestry(不好意思)。

Neal 认为这个现象表明了 Java 界对于 web 框架认识上的混乱。他说如果人们只有 3 个选择的话,他们就可以直接比较它们了;然而当人们面对 10 个或者 20 个选择时,麻烦就来了,他们会选择 Struts 收场或者干脆创建一个他们自己的框架。他将这种情况类比于果酱店这个经典实例( Paradox of Choice: Why More Is Less 一书描述了果酱店实例):

一个小商店开始派送果酱来吸引顾客。当他们提供 3 种不同口味的果酱时, 顾客会品尝他们,果酱卖的也非常好。更多一定会更好,难道不是吗?于是他们提供了 10 种不同的口味,但是销量却急剧下降了。当面对太多选择时,人们的决定能力就会下降。

Neal 又以 Groovy 为例继续论述,Grails 作为主流的 web 框架会促使开发者采用 Groovy 语言。因为它运行在 JVM 之上,他甚至相信 Grails“会拯救 Java 开发者现在仍在使用的土生土长的 Craptaculous 框架”。博客上的其他评论者认为在这些市场上甚至还存在更多的分 支。在 Python 世界中,框架的数量从 20 个减少到 4 个,存活下来的这些框架都彼此相当,谁都无法独领风骚;然而在.NET 中,与大家期望的 ASP.NET MVC(InfoQ.com 的 Jonathan Allen 报道过)相比,其他的框架就不值一提了。

正如 Charlie Collins 说到:即使选择很多,人们有时还是倾向于构建他们自己的解决方案,其他语言中 web 框架的繁荣证明或许有选择也是好的。

买果酱时,我只想做一个 5 秒钟的选择并且不期望有“太多的选择”。 但当选择配偶,买房子或者作出任何长期或者代价高昂的决策时,比如选择一个我将长期使用的框架,我期望选择会尽可能地多,而不是少。

Charlie 解释了为什么他坚信会有很多的 Java web 框架:

Java 的核心问题就是过多的 web 框架。但那是人们以不同方式来解决复杂问题的一种表现方式(很多问题并不是他们的错,而是 HTTP 协议的工作方 式造成的)。如果你想选择一个框架来帮助你,不要仅仅是随便看看,请你多花些时间,以此来了解你的需求是什么,同时深入的研究框架的细节来做出决定:到底 哪种框架才能真正满足你的要求。

聪明人以新的方式来看待问题,以不同的方式来解决问题,所以我认为 Java 是非常开放,非常健康的,而不是向相反。

你有什么想法呢?这么多的 Java web 框架是好还是不好呢?

查看英文原文: In a World of Web Framework Choices, Some Developers Still Build Their Own


译者简介:张龙,同济大学软件工程硕士,现就职于理光软件研究所。主要从事文档工作流和办公自动化解决方案的研发工作。热衷于 Java 轻量级框架的研究,对敏捷方法很感兴趣。曾有若干年的 J2EE 培训讲师经历。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2008-01-23 20:211504
用户头像

发布了 88 篇内容, 共 271.6 次阅读, 收获喜欢 9 次。

关注

评论

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

扣子,正式拥抱开源!

北京中暄互动广告传媒有限公司

图神经网络与AI公平性研究进展

qife122

图神经网络 知识发现

Xcode 26 beta 5 (17A5295f) - Apple 平台 IDE

sysin

xcode

数智先锋 | Bonree ONE 赋能通威股份有限公司提升全栈可观测性能力

博睿数据

Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

3000字节C语言实现GPT-2聊天机器人

qife122

自然语言处理 低代码实现

能自定义、能分享的智能体,还支持生成随机头像

北京中暄互动广告传媒有限公司

AI内容检测新工具SynthID与水印技术解析

qife122

ai检测 内容认证

“75%政府爆发RPA革命!‘数字员工’重塑政务,国产厂商强势突围

Techinsight

给「AI+软件工程」泼一瓢冷水

行云创新

氛围编程 AI + 软件工程 AI将取代程序员

火山引擎Data Agent:突破传统BI局限,用智能对话打造"数据决策大脑"

字节跳动数据平台

Elasticsearch Enterprise 8.19 (macOS, Linux, Windows) - 分布式搜索和分析引擎

sysin

elasticsearch

Cisco Expressway Release X15.3.0 - 统一通信网关

sysin

Cisco

Proxmox Backup Server 4.0 正式版发布 - 开源企业级备份解决方案

sysin

Proxmox

Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台

sysin

Splunk Enterprise

HCL AppScan Standard 10.9.0 新增功能简介

sysin

AppScan

FBI 成功瓦解 Hive 勒索软件网络的行动与技术内幕

qife122

网络安全 执法行动

Elasticsearch Enterprise 9.1.0 (macOS, Linux, Windows) - 分布式搜索和分析引擎

sysin

elasticsearch

Nexpose 8.17.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

都说 AI 能给研发开外挂,可企业为啥总玩不转?答案来了!

行云创新

软件工程 氛围编程 vibe coding

Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台

sysin

proxmoxve

垂直和领域 Agent 的护城河:上下文工程

阿里巴巴云原生

阿里云 云原生 agent

高性能椭圆曲线加密算法25519优化解析

qife122

密码学 形式化验证

文化误读与意见倒灌:品牌如何用全球舆情监测防范海外舆情危机?

沃观Wovision

出海企业 海外舆情监控 沃观Wovision 舆情监测系统

Bonree ONE发布直通车 | 可观测平台如何深度应用LLM技术

博睿数据

2025年空气净化器品牌选购避坑指南:除甲醛核心技术解析

编程猫

Amazon Bedrock的两年征程:从大放厥词到战略实现

Alter

Metasploit Pro 4.22.8-2025080401 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

Nessus Professional 10.9 Auto Installer for Windows (updated August 2025)

sysin

Nessus

送票!2025云栖大会9月24-26日杭州见

阿里巴巴云原生

阿里云 云原生 云栖大会

程序员:氛围编程爽啊!老板:我睡不着哇……

行云创新

平台工程 AI 编码 AI 编码隐患

Web框架满天飞,我们还需要构建自己的吗?_Java_Alexander Olaru_InfoQ精选文章