聊聊:Java

用户头像
谢烟客
关注
发布于: 2020 年 04 月 24 日
聊聊:Java

个人首次接触 Java 应该是在 2010 年这一晃过去也有十年了,十年前最火的编程培训课程是 Java web 而十年后的今天 Java 依然活跃在编程舞台的中央。即使纵观过去二十几年间的 Tiobe 排行版你也会发现 Java 的排名从未跌出前三,而且有将近一半的年份抢占了头名,不得不令人感叹流水的程序员铁打的 Java 啊!



从工程角度来说 Java 应该算是我的第一门编程语言,虽然大一时我首次学习的编程语言是 C 语言,但是当时还不会打字的我被大学课程被迫安排的 C 语言折磨的痛苦不堪,直到结课时仍根本无法完成有意义的工程,甚至还因此差点放弃编程这个方向。而 Java 则不同从大三开始学习 3 个月 Java 后便可以通过 JavaBean + JSP (现在提及 JavaBean 可能会有人感觉有点 low 了)完成一些相对有意义的 Java Web 工程了,可以说 Java 给了我作为一名 coder 的信心。说到这里可能会使人感觉 Java 能在过去的 20 几年间长盛不衰的主要因素是因为入门比较容易,对初学者比较友好等因素,当然这方面的因素肯定是有的,例如:Java 的垃圾回收机制,面向对象的设计等等,但是我个人觉得仅仅有这些还不够,因为同时期并非只有 Java 独具这些特征。 而我个人觉得更核心的因素是 Java 是一门快速演进、不断变异的语言。说到演进我们一起回顾一下 Java 的发展历程,你就会发现 Java 的诞生及发展颇具戏剧性,甚至可以说我们今天熟悉的 Java 要解决的问题都并非是当初设计的本意。1990 年末 Sun 公司高管们头脑风暴预感到接下来嵌入式系统将普及到民用家电领域必将大热(当时主要以电视机顶盒为代表),因此准备为即将来临的智能家电时代编写一个通用系统,最开始 Sun 公司希望使用 C++ 完成这个系统的开发,但是在项目进行的过程中就发现面临的不单有业务问题,还有技术上的平台可移植性、内存资源昂贵等问题,开发团队苦不堪言,就在这时一个名叫 Jame Gosling 的人站了出来,说我们来开发一门新的语言来解决这些技术问题吧。就这样 Java 的前身 Oak 诞生了,通过 Oak 语言 Sun 公司完成了该系统的开发,当然也解决了前面要面临的技术问题。就在这时 Sun 公司的高管们发现自己的商业眼光很失败,研发出来的通用嵌入式系统并未投标成功, Oak 也因此一时没有了用武之地。就这样时间来到了 1994 年,这一年里一家名为雅虎的伟大公司诞生了,标志着互联网时代的到来。早起的互联网通过浏览器仅能查看文字及静态图片,这样的窘迫场景使 Jame Gosling 等人看到了生机,他们对 Oak 语言进行了微调,诞生出了 Applet 这样的一个浏览器嵌入式小程序,通过 Applet 可以在浏览器中实现简单的动画效果,这无疑给当时的互联网领域带来了一点小小的波动,同时也给 Oak 语言打了一针强心剂,但是由于当时 Oak 商标已经被注册了,Sun 公司也一下面临了起名难的问题,最后被迫以一种咖啡的名字进行了重命名,由此 Java 语言正式诞生。一时之间 Java 小程序(Applet)火便了整个互联网领域,但是好景不长另一门技术 Flash + ActionScript 进入了人们的眼帘,人们发现 Flash 入门更加的简单,无需太多的编程知识便可以实现 Applet 同样的动画效果,甚至执行效率更加的出色。因此 Java Applet 在浏览器中的地位被 Flash 逐渐的蚕食殆尽。就这样到了 1998 年 Java 不得不再次壮士断腕,将自己一分为三:J2SE、J2ME、J2EE,J2ME 面对移动市场的手机等嵌入式系统。J2EE 面对企业应用,J2SE 为 J2ME,J2EE 提供标准库的支持。Java 1.2 也同步推出了 JSP、Servlet、EJB 等标准,这一次的改革吹响了 Java 在企业应用领域高速发展的号角,Java 不再是一个面向浏览器的小工具,而是一个企业应用软件的全面解决方案,在此期间 开源领域的 Java 的企业应用生态框架 WebWork、Structs、Spring、Hibernate 、Tomcat 等也如雨后春笋般诞生,从此 Java 开启了针对 Tiobe 排行版的统治。但是 Java 的高速发展不但没有为 Sun 公司带来新的辉煌,返到再次证明了 Sun 高管们商业眼光的不足,在 J2EE 推出将近 10 年后,Sun 公司因为经营不善,不得不将自己包括 Java 与 MySQL 两大利器一同贱卖给了 Oracle,可能有人会因为 Java 的易主为这门语言感觉遗憾,但是从现实角度看 Oracle 接手 Java 后便迅速推出了 Java 7、Java 8,相对于 Sun 时期 Java 版本时间规划的举棋不定,Oracle 在资金、人力上的优势确保了 Java 语言不断高速迭代的有迹可循,这也为 Java 在 2010 年开启的云计算,分布式等领域占得先机打下了坚实的基础。虽然 Oracle 针对 Java 之前的移动设备嵌入式领域的内容貌似不是很感冒,这也直接导致了 Java 的 J2ME 即使在移动互联网时代到来之后也没有再热起来,但是因为 Google 的 Android 选用了J2SE 作为 Android App Framework 的核心语言,间接地导致了 J2SE 也占据了移动互联网领域编程语言的半壁江山。



说到这里回顾一下:Java 从早期的嵌入式系统领域到->浏览器桌面嵌入式小程序领域到->企业应用领域到->分布式计算领域到->移动互联网领域,可以说无论时代如何的发展,Java 都可以快速实现蜕变并迎头赶上,那么为什么只有 Java 语言做到了呢?如果简简单单的归功为 Java 具有高性能、简单易用、有自动的垃圾回收机制等因素恐怕就有点太单薄了。每一门语言的高度,跟它最初的核心理念其实是有很大关系的,Java 早期为了推广有一句 solgan 我觉得很能代表它的核心理念及某种高度:"Write once,Run anywhere"。



发布于: 2020 年 04 月 24 日 阅读数: 100
用户头像

谢烟客

关注

职业打杂儿,业余编程 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
聊聊:Java