乔人尹 - 淘汰
type: channel
link: https://underestimated.cn/tag/%E6%B7%98%E6%B1%B0/
items: 那些年被淘汰的技术

那些年被淘汰的技术
type: item
date: 2022-08-14T01:41:00+00:00
description: 前言：技术的"生死轮回""在这个行业里，唯一不变的就是变化本身。" —— 某位被迫学了三遍前端框架的后端程序员如果你是一个有着十年以上工作经验的 Java 程序员，那么恭喜你，你已经见证了无数技术的兴衰更替。那些曾经让你熬夜加班、掉光头发的技术，如今可能已经静静躺在技术博物馆的角落里，等待着后人前来"考古"。今天，让我们一起翻开历史的篇章，缅怀那些曾经辉煌一时、如今却逐渐淡出舞台的 Java 技术。别担心，这不是一篇让你伤感的文章——毕竟，送走它们之后，我们又迎来了更多让我们加班的新技术。第一章：被淘汰的主要原因在正式开始"悼念"之前，让我们先来分析一下，为什么这些技术会被淘汰：1. 技术发展的自然规律就像诺基亚被智能手机取代一样，技术的发展是不可阻挡的洪流。新技术往往能够提供更高的开发效率、更好的性能表现和更优雅的解决方案。当 Spring Boot 出现时，那些还在手动配置 XML 的程序员们，眼泪都流下来了——不是因为不舍，而是因为太香了。2. 安全性和可靠性的硬伤某些技术在设计之初就存在安全隐患，随着互联网的发展和攻击手段的升级，这些隐患变得越来越致命。当一个技术三天两头爆出高危漏洞时，再深厚的感情也扛不住运维的怒火。3. 复杂性——程序员的头号敌人"简单就是美，复杂就是加班。"有些技术设计得过于复杂，学习曲线陡峭得像珠穆朗玛峰，配置文件多得像是在写一部长篇小说。当程序员需要花费 80% 的时间在配置和调试上，只有 20% 的时间在实际业务开发上时，这项技术就离被淘汰不远了。4. 社区和生态的萎缩技术的生命力很大程度上取决于其社区的活跃度。当 Stack Overflow 上的相关问题越来越少，GitHub 上的 star 数开始停滞，那些曾经的技术明星就开始走向黄昏了。第二章：那些年，我们一起追过的"前任"1. Servlet/JSP：Web 开发的"老祖宗"生卒年代：1997年至今（名义上还活着，实际上已经退居二线）辉煌时刻：// 曾经，我们是这样写 Web 应用的 public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(" "); out.println(" Hello, World! "); out.println(" "); } }淘汰原因：在 Java 代码里写 HTML？在 HTML 里嵌 Java 代码？这操作简直是代码界的"油水混合"JSP 的 <% %> 标签让代码变得像一锅乱炖没有前后端分离的概念，改个页面样式都要重启服务器接班人：Spring MVC + RESTful API + 前端框架（Vue/React）墓志铭："我不是被打败的，我只是太老了。"2. Struts：曾经的"一哥"生卒年代：2000年 - 2017年（Struts 2 在这一年爆出了致命漏洞）辉煌时刻：在 21 世纪的头十年，如果你不会 Struts，你都不好意思说自己是 Java Web 开发者。面试官问的第一个问题就是："讲一下 Struts 的工作流程"。 <form-bean name="loginForm" type="com.example.LoginForm"/> <forward name="success" path="/welcome.jsp"/> <forward name="failure" path="/login.jsp"/> 淘汰原因：配置文件多得能绕地球一圈Struts 2 的安全漏洞层出不穷，2017年的 S2-045 漏洞直接让无数企业的服务器"裸奔"架构设计过于复杂，ActionForm、Action、ActionForward... 概念多到让人头秃接班人：Spring MVC（以优雅的注解配置完胜）墓志铭："我曾经是最受欢迎的，直到安全漏洞让我身败名裂。"3. EJB（Enterprise JavaBeans）：企业级的"噩梦"生卒年代：1998年 - 2010年前后（EJB 3.0 虽然有所改善，但已经难以挽回颓势）辉煌时刻：在 Sun Microsystems 的愿景中，EJB 是构建企业级分布式应用的终极解决方案。PPT 上的架构图看起来无比优雅...// 这只是冰山一角 // 你还需要写一堆 XML 配置文件、Home 接口、…