[置顶] Java的第20年:Java和我的故事
Java诞生20周年,Java编年史,TIOBE,Java感悟,成长经历2016-11-03
Java技术诞生于1995年的5月23日,这样一个在程序设计领域长时间占据统治地位并且拥有最好的生态系统的语言起初只是太阳微系统公司(Sun Microsystems)一个失败的机顶盒项目的附产品。Java的第一个正式版本发布于1996年1月23日,在这个最原始的Java版本中,类和接口加起来总共只有211个,那时候的Java并不完美也不强大,但是由于它紧紧的抓住了当时最时髦的两样东西——互联网和浏览器,并拥有完美的平台可移植性,再加上计算机领域的全能奇才James Gosling(Java技术的创始人之一,被誉为Java之父)对它的炒作和推广,这个语言用了大约5年的时间就在TIOBE发布的编程语言排行榜上坐上了头把交椅,达到了它的人生最巅峰。盛开得再绚烂的花也免不了有凋谢的时候,日中则昃月满则亏,Java这朵程序设计语言中的奇葩也摆脱不了自然的规律,从下面的图中你可以发现,Java语言在经历了它的人生巅峰以后已经走了很长时间的下坡路,尤其是在甲骨文公司(Oracle)收购了太阳微系统公司以后,虽然Java的生态系统依然良好,但是语言本身已经江河日下。今年是Java诞生的第20年,写这样的一篇文章纪念那个曾经让我执着和疯狂的Java,也纪念那个从单纯到迷茫再回归单纯的我。
新特性或功能:
我的故事:这一年我和初恋分手了,痛定思痛,我告诉自己不应该再浪费时间去做那些没有结果的事情,于是我结识了我们年级的编程第一人“阿牟”,那时候他对Java已经有很深的认识和研究了,他带着我把我之前了解过的Java知识在一个项目中实践了一遍,这时我才算真正感受到了程序的魅力,真正学会用程序去解决问题并在代码中表达自己的精神和情感,这是我大学生涯最重要的事情之一。这一年的10月,“阿牟”邀我一起作为创始人在四川大学成立了Java技术俱乐部,成立伊始我们就接纳了400名以上的会员,此后我们几个负责人轮流为大家讲解如何用Java技术进行软件开发,同时也为会员提供SCJP(SUN认证的Java程序员)和SCJD(SUN认证的Java开发者)考试的培训和辅导,做这件事情不仅提升了自己也帮助了别人,很有意义。
新特性或功能:
我的故事:为了在学习和科研之余不荒废Java,我自己做了一个数据库的GUI(图形用户界面)工具,能够以可视化的方式操作数据库中的表和视图等,也能够执行SQL(结构化查询语言)语句并显示执行结果。虽然没有不是什么有技术含量的作品,但是里面却包含了我对Java的热爱。后来这个作品被我当作研究生中期遴选的作业提交了,不过它并没有获得什么好评,因为那时候从老师到学生根本不关注Java技术,Java在行业中已经火了但是在高校中还没有火,等到Java在高校中火了,Java在行业中已经显得有些明日黄花了(这算是从某个方面折射出中国高等教育的失败)。于是,这一年我最好的作品就被忽略掉了,后来我也没有继续去改进和维护它。这一年我找到两家软件公司做兼职程序员的工作,同时还在一家培训学校做兼职讲师,生活状况终于得到了一些改善。这一年,我遇到了我现在的妻子,初次的印象是美丽、勤谨、善良。
新特性或功能:
我的故事:这一年因为一些原因我去了广西,广西省会南宁的软件产业在那个时候应该是不怎么景气的,没有几家专业的软件公司(现在什么情况我就不知道了)。当时我的想法是做一家专业的软件公司并让这家公司走进大学,或者让大学生走进这家公司来参与软件项目,把公司的项目经验传授给计算机相关专业的大学生,帮助他们成为更优秀的职业人。第二年我的另一个朋友也有这样的想法,于是邀我去他们公司做项目经理同时也担任技术顾问。但是我们的想法在操作上有着重重障碍,到我离开广西的时候,理想仍然没有照进现实,留下了一堆的遗憾。但是,这一年我清楚的感觉到我能够做一名优秀的职业培训师,我觉得我有能力传道、授业、解惑。当然,这可能只是当时的一种错觉。接下来的很长一段时间,我在成都和南宁这两个城市之间无数次的往返,为了学业、工作和将来。那段时间,我在乘坐各种交通工具的过程中结实了几位朋友,其中有两位后来还介绍了项目给我做,这也让我的经济状况一直保持良好。
新特性或功能:
我的故事:终于走出了阴霾,我开始像以前一样把自己的生活安排得满满的,但是我也清楚的知道自己已经过了而立之年,生活状态却仍然是随遇而安的,这是一个大问题。这一年我自己接了项目来做,也带了一些学生,教他们用Java写程序做软件,同时也在代码中表达自己的精神和情感,就如同我当年一样。 这一年,我结识了一位优秀的程序员“二万”,他对编程充满了热情,对代码有着近乎于苛刻的要求。除了写代码,其他时候他基本上都犯二,所以才有了“二万”这样一个光荣的绰号。我确信他是一位优秀的程序员是因为他有良好的编码习惯,我现在仍然坚信一个程序员是否优秀跟他做过什么样的项目没有必然联系(现在有很多面试官却经常拿这个说事),也就是说即便你参与开发过像12306那样牛逼的系统,也不能证明你的水平有多么厉害,你可能仍然是一只菜鸟或者小白。正所谓,善战者无赫赫之功。
2010年以后,我对Java的未来总体态度是比较悲观的,因为就像上面说的那样,作为全球首屈一指的软件公司,Oracle注重的是利益,Oracle收购Sun要拿下的绝对不是Java,而是Solaris以及它带来的服务器产品市场。而在完成收购以后,Oracle清理了Sun很多管理精英和优秀的工程师(包括Java之父James Gosling),从惠普挖来一个人品并不怎么好的人接手了Sun的硬件生命线。在Oracle收购Sun的第二年,Apache就宣布退出JCP,原因当然是Oracle将开源世界对Java的贡献拒之门外,要独自控制Java平台。同年,Oracle还跟Google干上了,告Google的Android系统侵犯了Java相关知识产权。如果我没有记错,Oracle在2012年日销售额就达到了近1亿美金,但是只要Oracle的市值没有超越微软,拉里·埃里森的个人财富没有超过比尔·盖茨,他就不会停止他追逐财富的脚步,这些都无可厚非,就像卡尔·马克思所说的"资本来到世间,每个毛孔都流着血和肮脏的东西"。作为一个Java程序员,真的不愿意看到Java就这样走上一条通往没落的道路或者最终被Oracle毁掉。当然也没有必要因此而沮丧,至少目前Java的生态系统还是非常良好的,无数的工具、框架、产品都是基于Java的,就像有人说的"像Java这样的开源技术就如同百足之虫死而不僵",所以没有必要担心自己的职业生涯会就此终结。我经常跟自己的学生讲:"重要的不是技术细节,而是技术背后的思想",如果你在学习和使用这门语言时,关注得更多的不是某些API或框架,而是这些API的设计理念以及框架背后的指导思想,就算不使用Java做开发,你仍然可以是一名优质的程序员。不管TIOBE发布的数据还是作为一个职业人的直觉,我们都能感受到编程语言时下流行的趋势是动态语言和函数式编程,只要想想最近几年JavaScript有多么火爆,新生贵族Swift有多么受宠,Java 8为什么要引入Lambda表达式,这个结论就不应该被质疑。当然,我个人最希望看到的Java的改变包括:真正的泛型(不是糖衣语法)、传引用(方法调用不仅仅是传值)、元组、类型推断、可选择的垃圾回收机制(可以让程序员执行显示的内存释放操作)、微内核等。
每次回想自己求学和工作的经历,内心真的是五味杂陈。一直以来,我还是很认真很努力的生活、学习和工作,除了被颓废掉的三十岁那年,但是到三十好几的时候还在过随遇而安的生活,究其原因其实就是缺乏生活计划和职业规划。以前在新东方学习的时候,新东方的创始人之一徐小平先生曾经说过"有计划的人生和没计划的人生是截然不同的"。现在想想,我的一位好友(以前在中央电视台主持《同一首歌》,现在应该是在天津卫视的《非你莫属》做主持)他从中学时代起就对自己的生活和将来要做的事情有着长远的规划,在高考的时候也毫不意外的考上了北京广播学院(现在叫中国传媒大学),当然作为朋友我知道他为此付出了多少努力,但是更让我感慨的是他的执行力,为了实现自己职业规划所展示的强大的执行力。以前他每次在给我的贺年卡上签名的时候都会提醒我要好好保存,说这个签名将来很可能值一百万,虽然是句玩笑话,但是他一直都在向着这个目标前进,百度百科对他的介绍是"内地主持人、歌手、演员",这些其实都在他当初的规划之中。很多时候我们缺的真的不是时间、金钱、外部环境、各种资源,我们欠缺的是高瞻远瞩的规划和强大的执行力。作为一个搞IT的人,在现在的年纪来讨论这个问题似乎有些荒唐和可笑,但也算是"知耻近乎勇"吧,今年我一定会好好的为自己做一个职业规划和一个恰当的选择。
我觉得我必须要先感谢我的妻子,因为她给了我家的温暖,让我还能够有闲情逸致坐在这里用博客记录和总结过去,将自己的所想所感分享给大家。我必须感谢我的女儿,因为我把本该陪伴她的时间用来学习和写博客了,我会试着慢慢减少这些时间或者至少不占用陪女儿的时间,相信我。
感谢我读博士时的导师曾华燊教授,他是一位真正的学者,也是计算机网络领域真正的专家。他在英国伦敦大学和国家物理实验室(这是牛顿曾经工作的地方)学习和工作期间所获得的成就是很多所谓的专家学者永远也无法超越的。他从不随大流,对任何问题都有自己深入的分析和独到的见解,他也是一位敢于说实话讲真话的人,有知识分子的责任和担当。可惜因为各种原因,我读书的时候跟在他身边学习的时间太少太少,但学到的那些皮毛也让我受益良多。
感谢我的室友路献辉博士(前面提到的“小胖子”),他把他会的东西无私的分享给了我,他是个低调但是学习和科研能力都很强的牛人,听说近几年的欧密会上都有他的文章,真的很厉害!衷心希望他不管是当老师还是做科研都能够取得更好的成就。
感谢我的多位师兄曾给予我无私的帮助。感谢所有曾经伤害和帮助过我的人。