曾经是“杀手级”桌面语言,Java桌面开发为何走向衰落?

Java 不适合编写桌面应用,这是事实还是偏见?
本文作者以个人视角对 Java 桌面发展历程做了回顾,内容来自他在上世纪九十年代后期担任 Java 开发者时的所见所感,主要讲述曾经的“杀手级”桌面语言 Java 是为何从 21 世纪开始颓势尽显、步入衰落的。值得一提的是,作者如今在做一款开发者友好型 Java 桌面部署工具(jDeploy),其实他还是希望 Java 可以重拾风采,再度变得对桌面开发具有吸引力。  

我的大学时代正好赶上 2000 年之前的最后那几年,当时 Java 是计算科学专业里的官方语言。虽然也有几门课程要求使用 C 和 C++,但所有基础知识教学都是围绕 Java 语言来设计的。为了防止有读者朋友较真,我再说得更准确些:这些课程会用 Java 语言来教学,不是说只教 Java。

其实大学的计算机科学课并不教授特定的编程语言,教学内容主要是相关概念,再使用时下流行的编程语言来演示这些概念,所以学生们得拿出课余时间掌握编程语言。也有些课程要求更严格,比如“这份作业必须使用 Java 完成”,但大多数高级课程就不再做此限制,大家想用什么语言就用什么语言。(有些作业需要使用特定的库或者编程语言。我还记得有一份作业就是用 pthreads 库为操作系统分配线程,相当于强制使用 C 语言。)

我上大学那会,对 Java 的认知还仅限于 Applet。我既不清楚 Java 在行业里是什么地位,也不知道它跟其他编程语言相比到底有什么优势。而且越是深入学习,我就越觉得 Java 这东西有点名不副实——它更像是种玩具语言,毕竟那些“真正”的严肃开发都是用 C++ 这类语言实现的。反正系里总有一帮故作深沉、头发胡子一大把的家伙,总爱吹嘘跟 C++ 一比、Java 屁都不是。

Java 很慢

他们倒也不是胡搅蛮缠,最常见的理由就是“Java 很慢”。相信任何用过 Java GUI 应用程序或者包含 Java Applet 网页的朋友都同意这个观点。那时候用 Java 编写的桌面应用程序就只有开发工具,我能想起的就是 ArgoUML 和 NetBeans,它们确实不好用而且速度很慢。那种慢,就像是双脚陷进了泥潭——无论是上下滚动还是打开菜单,所有操作都有“粘粘”的延迟。

但支持 Java 的教授们则坚持认为,只要配合即时编译,Java 也是可以快起来的。而且在编译了代码路径之后,“理论上”它的运行速度可以追平甚至超越 C++。但我们这帮学生根本不买账,单纯觉得他们是在嘴硬。

Java 应用程序不是“真正的”应用程序

另一个让人感觉 Java“不上档次”的原因,在于我们开发的应用程序都不是本机应用程序。Java 构建的应用程序只是一堆.class 文件的集合;哪怕再“高阶”一点,生成的.jar 文件也只能在安装了 Java 的计算机上运行。相比之下,其他学校的朋友们展示的项目就洋气多了,这些可是货真价实的可执行文件——双击之后,它们就像真正的专业应用程序那样开跑,有程序容器、也有屏幕顶端菜单,这才像话嘛。

我记得自己问过一位教授关于 Java 能不能生成本机可执行文件,他的回答是“为什么非得这样?生成本机可执行文件,Java 的跨平台优势不就没了吗?”

如果真的想把应用程序部署成桌面程序,他建议我研究研究 Java WebStart。这样不用本机程序包,Mac 和 Wi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值