Swing到底要不要学

最近脑子里面有个什么想法,想做个软件练练手,首先想到的就是Swing。在网上随便搜索java Swing的资料,充斥着,“都21世纪了,还有学Swing”,“Swing已死”,“不用学Swing,有空多学学SSH,MySQL”,类似这样的论调。
我作为一个10年老Java粉,心中满是不忿。
随着在网上看到资料越来越多,我大概总结如下观点:
1、认可Swing的价值,认为值得学。
2、完全否认Swing的价值,认为不值得学。

我赞成第一点:
1、Swing是JDK的基本类库,学习门槛低,学习曲线平缓,非常容易上手,且非常给人成就感,激发学习兴趣。比起你花了很长时间,学习SSM/H,搭建数据库,搞个WEB网站,Swing简直太简单了。
每一个Java新手都可以入手写一下Swing的程序。Java老手就看个人爱好吧。
2、由于Java在服务器端开发大获成功,所有投入Java阵营的程序员,都只关注服务器端技术,而忽略了桌面端开发技术。只是市场选择的必然。
Java的"Write once, run anywhere"理念,在桌面端也适用。
就像Python在数学算法处理上有优势,自然就有很多人用它来写数学分析、机器学习方面的应用。但并不妨碍Python也可以用来做网站开发。
Java和Python的这种倾向(其他语言某种程度上都有自己擅长的领域和擅长解决的问题),导致一旦选择了语言,方向就变窄了。
3、因为Swing用的少,而桌面应用程序已经不是主流,且桌面应用程序的开发方案特别多,导致Swing的发挥空间有限,如果你想以Swing为谋生的技术,想必不是一个好主意。
4、Swing市面上出色的应用非常少,商业上成功的,我知道的就是JetBrains家的IDEA。据说他们也在积极用Kotlin语言重写IDEA。
如果你的目标是加入JetBrains这样的公司,那就可以深入学习Swing。但或许这还不够。

关于IDEA是否是用Swing开发的,找了网上的资料,可以看Github上的JetBrains/intellij-communityPublic项目,是IDEA的社区开源版本。
其中下面这个类,可以看出来,是用到了Swing框架。
intellij-community/DarculaLaf.java at master · JetBrains/intellij-community (github)。

JetBrains现在推出了Compose Multiplatform框架,有兴趣可以了解。具体原理没有细究。
Kotlin 快速反应式桌面和 Web UI 框架,基于 Google 的现代工具包并由 JetBrains 为您提供

如果连JetBrains都不用Swing了,可能Swing真的要谢幕了。

更多推荐

Swing到底要不要学