docs/about-the-author/deprecated-java-technologies.md
前几天,我在知乎上随手回答了一个问题:“Java 学到 JSP 就学不下去了,怎么办?”。
出于不想让别人走弯路的心态,我回答说:已经淘汰的技术就不要学了,并顺带列举了一些在 Java 开发领域中已经被淘汰的技术。
我的回答原内容如下,列举了一些在 Java 开发领域中已经被淘汰的技术:
JSP
Struts(尤其是 1.x)
EJB (Enterprise JavaBeans)
Java Applets
SOAP / JAX-WS
RMI(Remote Method Invocation)
Swing / JavaFX
Ant
没想到,评论区果然出现了一类很常见的杠精:
“学的不是技术,是思想。那爬也是人类不需要的技术吗?为啥你一生下来得先学会爬?如果基础思想都不会就去学各种框架,到最后只能是只会 CV 的废物!”
这句话表面上看似有道理,但实际上却暴露了一个人的无知和偏执。
知识越贫乏的人,相信的东西就越绝对,因为他们从未认真了解过与自己观点相对立的角度,也缺乏对技术发展的全局认识。
举个例子,我刚开始学习 Java 后端开发的时候,完全没什么经验,就随便买了一本书开始看。当时看的是 《Java Web 整合开发王者归来》 这本书(梦开始的地方)。
在我上大学那会儿,这本书的很多内容其实已经过时了,比如它花了大量篇幅介绍 JSP、Struts、Hibernate、EJB 和 SVN 等技术。不过,直到现在,我依然非常感谢这本书,带我走进了 Java 后端开发的大门。
这本书一共 1010 页,我当时可以说是废寝忘食地学,花了很长时间才把整本书完全“啃”下来。
回头来看,我如果能有意识地避免学习这些已经淘汰的技术,真的可以节省大量时间去学习更加主流和实用的内容。
那么,这些被淘汰的技术有用吗?说句实话,屁用没有,纯粹浪费时间。
既然都要花时间学习,为什么不去学那些更主流、更有实际价值的技术呢?
现在本身就很卷,不管是 Java 方向还是其他技术方向,要学习的技术都很多。
想要理解所谓的“底层思想”,与其浪费时间在 JSP 这种已经不具备实际应用价值的技术上,不如深入学习一下 Servlet,研究 Spring 的 AOP 和 IoC 原理,从源码角度理解 Spring MVC 的工作机制。
这些内容,不仅能帮助你掌握核心的思想,还能在实际开发中真正派上用场,这难道不比花大量时间在 JSP 上更有意义吗?
我把这篇文章的相关言论发表在我的公众号之后,又收到另外一类在我看来非常傻叉的言论:
这种观点完全是钻牛角尖!如果按这种逻辑,那你还需要去学 Struts2、SVN、JavaFX 等过时技术,因为它们也还有公司在用。我有一位大学同学毕业后去了武汉的一家国企,写了一年 JavaFX 就受不了跑了。他在之前从来没有接触过 JavaFX,招聘时也没被问过相关问题。
一定不要假设自己要面对的是过时技术栈的项目。你要找工作肯定要用主流技术栈去找,还要尽量找能让自己技术有成长,干着也舒服点。真要是找不到合适的工作,去维护老项目,那都是后话,现学现卖就行了。
对于初学者来说别人劝了还非要学习淘汰的技术,多少脑子有点不够用,基本可以告别这一行了!