翻开你的 Coding 记忆,是否还记得那些曾经火爆一时,如今却渐渐淡出视野的“古老”技术?前端刚入行时,你可能满怀热情地钻研 JQuery,写着繁琐的前端代码,如今已被 Vue、React 等新宠取代;后端或许从 C# 的“天下第一”,到如今 Spring Boot、FastAPI 的微服务潮流;数据库从 MySQL 的单机时代,到 NoSQL 的 MongoDB、Redis 热潮,再到现在的分布式 NewSQL…… 技术迭代的速度快得让人措手不及,昨天还是必备技能,今天可能就成了"上古知识"。
你见证过哪些技术的兴衰?快来评论区分享你的"考古发现",看看谁经历的技术变迁更丰富,谁才是真正的"互联网活化石"!
●活动时间:2025年7月17日~2025年7月23日,本次互动截至到2025年7月23日24时。
●本期奖品:开发者社区定制手机支架*1,我们将为点赞数最高的答主及最真情实感的答主分别送上一份奖品。
【特别说明】
●获奖名单将于活动结束后3个工作日内公布,礼品将于7个工作日内发放,节假日顺延。
●拒绝与问答话题不符的内容,拒绝抄袭、与其他回答雷同的内容,否则将取消获奖资格。
相信很多通过网上视频学习Java开发的小伙伴都是从Maven+IDEA开始的,工作之后就是在搭建好的框架下CRUD搬砖,但是我入职的新公司,接手的Java项目像是从时间胶囊里挖出的文物:Eclipse工程里没有pom.xml,SVN仓库中散落着jdbc-2005.jar
、common-utils-2008.jar
等十余个年份各异的依赖包,甚至还有某乙方公司早已消失的加密工具包。手动导入jar包的仪式感,瞬间让我梦回大学课堂——老师正演示如何下载Tomcat插件和SQL Server驱动
老项目的Controller层是赤裸的Servlet
,映射关系在手写web.xml中硬编码:
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>com.xxx.legacy.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/user_add.do</url-pattern>
</servlet-mapping>
而所谓的“Service层”,是直接继承HttpServlet
的类,内部用字符串拼接SQL完成数据操作:
public void doPost(HttpServletRequest req, HttpServletResponse resp) {
String name = req.getParameter("name");
String sql = "INSERT INTO users VALUES('" + name + "')"; // SQL注入风险赤裸暴露
DBUtil.executeUpdate(sql); // 手工管理连接池
}
这种写法的震撼之处:
ThreadLocal
都是手动实现的;Filter
里用try-catch-finally
手动管理事务,比Spring的@Transactional
早了十年;main()
方法调用Service类,没有Mockito,但测试意图极其直白。老系统前端是Delphi编译的exe桌面程序,新系统则用ExtJS 3.x实现B/S转型:
// ExtJS的Grid数据加载方式(2009年风格)
var userStore = new Ext.data.JsonStore({
url: 'loadUsers.do',
root: 'data', // 字段映射全靠手动配置
fields: ['id', 'name']
});
userStore.load();
技术代差的撕裂感:
<template>
只需30行;All tasks completed successfully
。维护这类项目如同技术考古:
common-utils.jar
,发现注释:“加班修复日期bug@xxx”;oracle-driver-9i.jar
,被迫安装JDK 1.4;对比现代Spring Boot+Vue的流水线开发,老项目反而揭露了技术本质:
BaseServlet
也能实现清晰的职责分离;PreparedStatement
和ORM框架;JSX
重生;Delphi的快速开发理念,被低代码平台继承。运维日志中的哲学:
[LegacySystem] Daily data archive completed.
那些在Eclipse里手动导入jar包的人,在Delphi控件面板前拖拽的程序员,才是真正“理解每一行代码重量”的工程师。
维护老系统如同在技术断层带中行走,但其中蕴含的原始工程思想(如手动管理连接池、硬编码MVC)仍是理解现代框架本质的钥匙。我相信相比于现在的流水线生成,那时候的程序员应该会更有成就感吧
时代的眼泪,还是挺多的,我来说几个吧:
1.jQuery
以前写网页都是jq一把梭,jq操作dom非常方便,比原生用起来更简单,不需要写一长串的querySelector,each、eq等方法都很好用。只是如果页面复杂了,jq还是不太方便,比方说要有时候要显示一些元素,有时候又要隐藏,这个操作比较频繁,需要一个个手动操作,很容易出错。后面有了vue就可以通过双向绑定的变量来操作了。
2.angular
这个是谷歌出的mvvm框架,算是vue和react的前辈了。曾经流行过一段时间,后面不知道怎么搞的,语法改动非常大,版本升级像是两个框架。据说后来谷歌开发者大会上,angular的会场几乎无人问津,可叹!
3.php
以前博客和cms都很流行,建站都用wamp或者lamp,可以快速搭建自己的网站、论坛、博客等,即便不懂技术,也可以参照别人的教程一步步操作,顺利搭建WordPress、Discuz这样的开源网站。可惜后来市面上对php的需求越来越少,很多phper转了go。以前有个梗叫做“php是世界上最好的语言”,现在新入行的程序员估计都不知道吧。
4..net
这个是微软出的编程语言,也是比较老了,现在市面上后端大多都是Java,我记得以前我待的一家公司后端是.net,用的还是Windows系统的服务器。每次写一个H5 页面,还需要用.net的模版aspx来包裹,没有做前后端分离,不太适合现在的开发节奏。
5.flash
以前 4399 小游戏就是flash带火的,还有各大视频网站,优酷、土豆 、56、酷6等视频网站都是用的flash player,记得当年很多网站都用的flash做的网页特效,QQ和QQ空间还要专门下载安装flash呢。flash还分ie内核和chrome内核等版本,装错了还用不了。现在HTML5发展迅速,流媒体技术日渐成熟,就不再需要flash了。
总结一下,每个技术都会有自己的生命周期,就好像游戏会有很多个版本,不同时期市面上会流行不同的游戏一样。老的旧的技术如果没有更上时代,就会被逐渐淘汰掉,成为时代的眼泪。
开发语言是有传承的,C、C++、Java、Python、PHP,一种语言代表一个时代,但是PHP在其中就很像一个过渡时期,短暂而又不璀璨;唐宋元明清,PHP在这个里面代表的是历史时期的五代十国,历史的车轮化身成GO语言的样子,无情地在PHP身上辗过,只留下一句,PHP是世界上最好的开发语言在空中回荡。
相似问题