摘要:一叶知秋,回顾我的Java之路,最感谢还是阿里巴巴能够给我们这些技术人员创造出这样有挑战的业务场景和业务需要,也感谢有这样一群人能够为了这个目标一起努力到现在。

Java的不解之缘

看到这个专题名字的第一眼,真是感慨万千:Java已经有20年历史了啊,我竟然也用了这语言8年了,真是转眼一瞬。

王晶昱(花名:沈询)

回想起8年前的我,应该是正在大学宿舍里努力地从网上搜索C语言的各种教程,在“值传递和指针传递的区别是什么?”“如何避免引用计数循环引用?”等问题中东突西撞不得要领吧。然后在某天,我偶然间看到了一门据称比C++简单的Java语言,恰巧还碰上一个好老师——莫倩老师,自然而然地激发起我去了解和学习Java的兴趣。现在还记得当时在学习《ThinkinJava》时,我还不是特别理解BruceEckel介绍Java与C++的差别时提到的一句话:“Java是一种生产力语言”。当时我看着这句话,心里一直在想:语言嘛,应该大同小异,能有什么生产力提升?一个解释型语言怎么可能超越编译语言呢?

转眼,我使用Java已有8个年头了,现在想想,Java真的带给了我很多:它尽可能地避免我写出错误的代码。它不需要我去计算指针偏移量,也不需要我去关心垃圾回收问题,连Collection类都有DougLea这样的大神做好了封装。这些语言内建机制和类库极大地减轻了我的头脑负担,让我能够更加专注地完成业务逻辑。而最让我惊喜的是,Java一直不懈地追求JVM虚拟机的持续优化,各种眼花缭乱的锁优化、动态字节码编译调优、GC新算法等JVM优化层出不穷。

在最近的几年,我也可喜地看到,在Oracle的带领下,Java语言的演进变得非常迅速。当我还在熟悉Java7的forkJoin框架的时候,支持Lambda的Java8已正式发布了。

现在,我也想从我个人角度,给Java点个赞。确实,对我而言,这是一门生产力语言,而Java也成功地帮助阿里巴巴、淘宝走过了高速发展时期,并造就了我们阿里的一支明星团队:阿里巴巴-共享业务-中间件和稳定性平台。

说起这个团队,其实它在内部的名字一般称为Java中间件。你看把Java放在了团队的名字里,这就是真爱啊!从2007年开始,我们就逐渐发现,外部企业级中间件并不是非常适合我们互联网业务的实际发展需要。面对着每年翻番的用户量和用户请求,我们不得不开始进行分布式应用体系的探索。当时可真是没什么能够参照的,全都得靠自己去探索,经过了三年多不断摸索,我们彻底地将系统进行了服务化、分布式改造。

目前,整个阿里集团几乎所有的应用都在使用这些中间件。我想,这也是阿里技术体系的精华所在吧。

最近这几年,阿里的核心技术体系架构已经非常稳定可靠了。我们又在这些核心中间件的基础上,不断地深入细化运维体系,尽可能地做到自动化、智能化,为集团节省了比较多的设备成本和运维成本。在2015年,Java中间件更是响应了阿里集团上云的梦想,将阿里集团七年的技术积累,一股脑地搬到了云上,目前所提供的主要产品有:企业分布式应用服务(EDAS)、分布式关系数据库(DRDS)、分布式消息服务(ONS)。它们都是使用Java编写的,为大家量身定做的分布式中间件,与互联网应用体系相结合,能够非常轻松地实现企业IT架构的随需定制和可线性扩缩。如果大家有需求,可以按照自己的需要来进行选择。

Java一起成长

能够取得这样的成绩,Java功不可没。除了我上面提到语言特性对我们的帮助之外,在团队之中,我们也非常关注整个Java的生态体系。基本上,无论我们有什么新的想法,都可以立刻在Java的开源世界中找到对应的一些实现,里面有很多还非常靠谱,Netty、Tomcat、Ibatis、Hibernate、Spring、Struts、ZooKeeper、Hadoop、Mahout、Cassandra……我能举出无数的开源软件,它们都对我们的平台积累起到了非常大的作用。

同样的,我们也在积极尝试将自己系统的积累反馈回到社区里,大家可以在github.com/alibaba下面找到很多我们开源出来的软件,在这里面我想特别的提几个:RocketMQ(消息队列)、Druid(连接池)、FastJson(JSON解析引擎)、Dubbo(RPC框架)等等。这些开源软件与其他友商的各种开源、闭源的Java软件一起丰富了Java生态体系,也让我们解决问题变得更加轻松。

对我个人而言,Java的生态体系之所以能够这样丰富,主要原因在于它编写一次、多点运行的特性,以及一直坚持着的向下兼容能力。这些都非常有利于Java生态体系的积累和演进,也造就了现在如此丰富的Java开源软件环境和体系。

提到Java的向下兼容能力,我也想稍微聊一下我的看法。我经常能看到很多人谈到,Java的历史包袱太重了,为了兼容这些历史遗留的包袱,Java的演进已经非常困难,这会导致Java语言的崩溃。针对这个问题,我个人的看法是:首先,Java作为一个被这么广泛的使用的语言,有着这么深厚的系统积累,完全不考虑系统的兼容性而演进整个系统,这其实是比较危险的,对其他革新进行兼容并包可能才是它最好的发展方向。就目前而言,我几乎没看到过哪个语言能够比较好地解决这种语言升级所导致的软件断层问题,所以,更多的只是两害取其轻的过程吧。同时,我也非常高兴地看到,依托于JVM,我们有了大量的新的语言实现,这里面有Groovy,Scala,JPython等等。它们都非常优秀,这些新生的语言与Java一起,进一步丰富了整个Java的生态体系,也更加坚定了我对Java生态体系的信心,它一定还能再战十年!

寄语现在,展望未来

一叶知秋,回顾我的Java之路,最感谢还是阿里巴巴能够给我们这些技术人员创造出这样有挑战的业务场景和业务需要,也感谢有这样一群人能够为了这个目标一起努力到现在。

能够跟这些大牛们一起工作,耳濡目染,不断提高,是我的工作生涯中最为宝贵的一笔财富。而如果能够回到过去,我最想告诉8年以前的自己:“要买房!”

笑~~

其实是:“还是要特别注重基础,操作系统、网络、算法数据结构、离散数学、数据库原理与实践,这些看起来枯燥而无味的基础科学,是我目前感到知识最为匮乏,但却最为急需的部分,要了解它们是必须付出非常多的时间才有可能理解通透些。而这些基础的扎实程度,就直接决定了你的高度”。可惜,我没办法在21天内学会C++,这些建议,也就只能提供给还有机会实践的各位做参考了。

作者简介:王晶昱花名沈询,阿里高级专家,来自阿里巴巴中间件和稳定性平台。目前主要负责阿里的分布式数据库DRDS(TDDL)和阿里的分布式消息服务ONS(RocketMQ/Notify)两个系统。


本文选自程序员电子版2015年5月B刊,该期更多文章请查看这里。2000年创刊至今所有文章目录请查看程序员封面秀。欢迎订阅程序员电子版(含iPad版、Android版、PDF版)。

本文转载自:csdn

细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅相关推荐

  1. 沈询 java进阶,7细品这杯香浓的咖啡 阿里中间件高级专家沈询的JAVA之旅

    细品这杯香浓的咖啡--阿里中间件高级专家沈询的Java之旅 发表于2015-05-1915:38|5850次阅读|来源CSDN|13条评论|作者王晶昱 Java20周年特别策划Java<程序员& ...

  2. Barsetto百胜图智能胶囊咖啡机测评香浓不必久候

    作为咖啡控的我,经常去星巴克喝咖啡,不过忙的时候真没有时间去,有时候在想如果自己买个咖啡机在家煮,岂不是很有情调?虽然我爱喝咖啡,但是真的对煮咖啡不懂行,如何有比较智能的轻松可以操作的咖啡机会比较好. ...

  3. 90%人会猜错:比浓缩咖啡更浓的咖啡是什么?

    1.什么是Ristretto? 如果你想要一杯很浓的咖啡,不添加任何额外的东西,你会点一杯espresso.咖啡厅主打的意式咖啡在全世界都很受欢迎,但它并不是最浓烈的饮品.与更少但更强的ristret ...

  4. 百胜图咖啡Barsetto滴滴香浓惬意生活

    咖啡由舌尖滑入口中,滴滴香浓,苦涩中略有回甘,边品边回味,惬意镶嵌的美好,能给予明天更多瞎想,或许这些正是人们迷恋咖啡的原因吧. 为了满足人们随时随地的咖啡需求,来自于意大利的咖啡品牌Barsetto ...

  5. 餐饮大单品「真香」,却没有穿透周期的能力

    (图片来源于网络,侵删) 来源 | 螳螂观察 文 | 易不二 编辑 | 图霖 这个暑假,长沙的人气比天气还热. 有不少去过长沙的网友表示,在长沙只做三件事:吃饭排队.茶颜排队.景区排队.仿佛全国一半的 ...

  6. css就近原则_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

  7. 【16.8】苹果四代蓝牙耳机+吉萌兔保温杯+小红杯拿铁黑咖啡+公务员教材真题

    逆锋起笔捡漏群开启啦~ 扫码加入,位置有限,先到先得 NO.1 [多色可选]吉萌兔保温杯380ml [券后16.8元]包邮秒杀,原价:21.8 [送贴纸]日本象印同款!吉萌兔保温杯!一键弹盖,304不 ...

  8. 【杂谈】打工人如何喝一杯精致健康的咖啡

    作为打工人的我们,常常都需要996地保持高效工作,每天不得不借助一杯咖啡来续命.而人性化的公司也往往会配备一些简单的咖啡设备,例如美式咖啡机等等,满足大家的咖啡需求. 这也带来了一些问题:虽然美式咖啡 ...

  9. css为什么要用浮动_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

最新文章

  1. PHP基础-自定义函数-变量范围-函数参数传递
  2. macos 全局快捷键 打开 iterm_在 macOS 上实用的十大软件!你get了吗?
  3. LInux主机与虚拟机网络链接
  4. 简单的FTP应用程序
  5. MySQL 5.6 Threadpool(优先队列)介绍及性能测试【转】
  6. MariaDB 脚本
  7. 学习vim 从常用按键开始
  8. 浅谈管理数据平台的一些想法
  9. 每日一题(49)—— 有符号数与无符号数
  10. 自动化运维专题之zabbix课程内容大纲
  11. Python 路径问题--No such file or directory
  12. 多级队列调度算法可视化界面_多级反馈队列调度算法
  13. 入门级微单反性能对比
  14. 计算机接口学平时作业,西电《计算机接口与通信技术》平时作业[教学作业]
  15. 氚云ajax,氚云帮助中心
  16. STM32H7高性能MCU系列 STM32H7A3NGH6 32-bit RISC内核
  17. 深入探索REST(1):如何设计好的RESTful API?
  18. bailian2705
  19. Oracle练习:用表连接实现查询平均工资最高的部门信息
  20. 随机波动率微笑模型及套利

热门文章

  1. 前端ajax实现分页思路详解
  2. 初识、初使 MySQL
  3. Linux 文件的加密解密
  4. 将未加入域的电脑加入域的步骤
  5. 手推向量投影长度、投影向量
  6. 科学计算机解三角函数方程,用科学计算器解方程 急!!!
  7. curl命令发送Post请求
  8. java怎么捕捉游戏窗口_捕捉桌面上的窗口信息
  9. (转载)多少年来心血的结晶
  10. 你还记得当年上课天天玩 JAVA游戏吗