【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

《Java 20 年:道路与梦想》迷你书发布

  • 2015-05-26
  • 本文字数:2531 字

    阅读完需:约 8 分钟

互联网与 Java 的诞生

1995 年春天,那是我第一次亲眼见证并体验互联网的魅力,当时网景公司刚刚发布了 Navigator 浏览器。因为我有 C 语言和 SQL 的软件开发背景,所以我立刻问自己——如何进行互联网编程?应该使用哪种计算机语言?虽然这些问题一时还找不到答案,但有一点我非常清楚:我应当投身于互联网,到那里去学习互联网编程。

同样是在 1995 年,Sun Microsystems 公司正式推出了 Java 1.0.2 版本。我马上就被其简洁的语法及内置的各类网络功能所吸引。当然,我也被其语言扩展性和跨平台能力深深折服。遥想当年,软件工程师们已经被跨平台这一老大难问题困扰了数十年之久,Java 则利用虚拟机解决了这个难题。我希望能在 DLL、DCOM 以及难于使用但又将自己牢牢锁定的其它开发工作之外找到新的编程乐趣。紧接着,我就搬到了硅谷,开始在众多项目中使用 Java 语言。坦率地讲,Java 当时还没能成为主流的开发语言。不过我认为它代表着一种新的趋势。

Sun 公司加大了对 Java 项目的投入,为 Java 迎来了快速发展期。此后不久,Java 1.1(又一主要版本)发布,让 Java 的下载量很快就突破了 100 万。然后微软公司也决定顺应这股潮流,并由此发布了微软的 Java 语言—Visual J++,而这进一步提升了 Java 的人气。不过问题来了,微软加入自己的私有扩展的 Java 语言只能运行在 Windows 平台之上,而非 Linux/Unix 环境下,这导致了一场旷日持久的官司,最后微软败诉。不过微软方面并没有因此而放弃努力,他们转而着手开发.Net 与 Java 分庭抗礼。

Java 的下一个五年

2001 年互联网泡沫破裂,Java 语言的普及速度也开始放缓。在这段低迷时期,有一家公司开始成长并在电子商务领域取得了卓越的成绩,它就是 eBay.com。我有幸能够在 eBay 公司领导技术平台的重新设计并根据 Java 平台对其进行全面调整。值得一提的是,面对 C/C++ 平台的各种挑战,eBay 仍然成为发展速度最快的电子商务网站。当时的问题在于,随着网站流量的不断增长,Java 语言编写的应用程序能否扛的住?毕竟 Java 当时的性能很有问题。这一切在调优后能否得到改善?Java 在开发效率方面是否有机会压倒其它编程语言?

经过三年的平台重组工作,Java 全面地完成了所有的承诺,之前的问题也烟消云散了。到 2005 年,eBay 已经成为全球规模最大的 Java 业务平台。那时,我们已经全面完成了由 C/C++ 代码库到 Java 的迁移工作。在此过程中,我们接连经历了从 Java 1.1 到 Java 1.3,再到 Java 1.5 的几次颇具难度的版本升级。JVM GC 算法随着时间的推移而不断改善,Java 在 eBay 的成功已然成为 Java 在第一个发展十年内出色能力与巨大潜力的最有力证明。

在开源领域的巨大成功

2006 年,Sun 公司开源了 Java。在接下来的十年中,整个开源社区在利用 Java 构建开源项目方面获得了巨大的推进与发展助力。InfoQ、JUG、JCP 等社区赞助方在 Java 平台与开发的促进方面起到了积极作用。原本的开发者社区逐步成为 Java 成果的重要载体,并从多个方面推动着 Java 的发展。开源社区中有越来越多高质量的 Java 框架出现,然后这些框架吸引了更多开发人员到 Java 平台中。社区培育出了一系列以 Java 为基础的工具与框架,使得整个生态丰富多彩。在由 Java 构建而成的项目当中,最为成功的当数 Hadoop 技术。Hadoop 已经在 Java 开发者当中获得了极高人气与信赖。Hadoop 的大数据概念当前正推动着众多行业寻找新的发展模式。时至今日,Java 开源社区中的活跃开发者数量超过 100 万,全世界 Java 开发人员的总数更是突破了 1000 万。

发展的生命周期

如果在诞生后的第一个十年,Java 走过了从婴儿到儿童的历程,那么如今的 Java 已经成为能够独挡一面的成年人,其语言功能已经全面成熟,开发人员拥有丰富而友好的开发环境。在使用 Java 与基于 JVM 的其它语言(如 Groovy、Scala、Clojure、JRuby 以及 Jython 等)时,开发人员的工作效率要远高于使用其它语言——特别是 Java 拥有大量开源框架及工具支持。Java 在开发后台服务方面一直领先于其它语言,这主要是由于 Java 代码拥有良好的可维护性与可管理性。在生产环境中,以 Java 为基础的解决方案拥有运营可追溯性优势以及更出色的社区支持力度。在招聘工程技术人才时,企业往往能够从 Java 开发者群体中更好地找到应聘对象——得益于 Java 的庞大开发者群体。

Java 的未来二十年

时至今日,Java 的身影在设备、云计算以及数据技术领域可谓随处可见。Java 对众多行业的发展产生了深远的影响,例如 ERP、电子商务、移动、社区、金融、游戏乃至一些我们想不到的领域。虽然自 Java 面世以来又有众多其它语言陆续出现,但它们在普及程度上仍然无法与 Java 相提并论。Java 对我的早期从业经历产生了巨大影响,在过去二十年中培养出整整一代开发人员,并将在未来继续为新生代程序员们指明发展方向。

尽管当下仍不断有新语言出现,但毫无疑问,未来二十年,Java 仍将会是最受欢迎的编程语言。如大家所知,Java 不仅仅只是一种主流编程语言,它同时也代表着一整个活跃的生态系统。Java 开发者们将自己的聪明才智投入到这个平台上,而平台则回报给他们工作岗位与相应薪酬。要打理好现有的 Java 解决方案,我们需要 Java。而为了顺利推动未来的业务发展,我们必将打造出更多 Java 应用程序。

随着移动互联网的井喷式发展,市场上出现了非常多的 Android 应用程序。而其发展依靠的正是 Java 的强大力量。随着科技的发展,越来越多的物联网设备将在未来几年中与我们见面。而 Java 也将继续在应用程序及服务的开发当中扮演重要角色,进而通过 Android 等技术方案实现网络设备互通互联。这种趋势目前刚刚起步并拥有可观的发展动力。随着整套开发平台的成熟与改进,Java 必将在未来的技术创新领域找到属于自己的定位。

携程网 CTO 叶亚明

携程网高级技术总监 吴其敏

目录

卷首语一:Java 20 年,道路与梦想

卷首语二:Java 20 岁生日快乐

Java 20 年:转角遇到 Go

Java 20 年:历史与未来

Java 20 年:JVM 虚拟化技术的发展

借助开源工具高效完成 Java 应用的运行分析

双重检查锁定与延迟初始化

Gradle 在大型 Java 项目上的应用

深入理解 Java 内存模型——锁

深入分析 ConcurrentHashMap

HotSpot 虚拟机对象探秘

Java 字节码忍者禁术

DukeScript:随处运行 Java 的新尝试


点击此链接下载

2015-05-26 06:212644
用户头像

发布了 219 篇内容, 共 134.5 次阅读, 收获喜欢 190 次。

关注

评论

发布
暂无评论
发现更多内容

基于qiankun的微服务落地实践

GFE

微服务 前端 qiankun

RocketMQ Flink Catalog 设计与实践

晓双

flink Apache RocketMQ catalog

从recat源码角度看setState流程

flyzz177

React

前端高频手写题自测,你能做出几道

helloworld1024fd

JavaScript

【C语言】前言关键字

謓泽

11月月更

探索行为可回溯系统的应用与实现

GFE

前端 监控

react的useState源码分析

flyzz177

React

高频js手写题之实现数组扁平化、深拷贝、总线模式

helloworld1024fd

JavaScript

Wallys//IPQ8072/IPQ8074/IPQ8072A/IPQ8074A/HighPower 802.11ax SoC for Routers, Gateways and Access Points

Cindy-wallys

802.11AX IPQ8072 IPQ8074 HighPower

基于BPMN2.0的业务流程引擎

GFE

前端 BPMN 流程引擎

以开发之名 | 小红书:用年轻人的方式开发年轻人喜欢的应用

HMS Core

视频超分 小红书

11月月更开启啦!冬天到了,不写点东西暖暖身子吗?

InfoQ写作社区官方

热门活动 11月月更

案例解读华为隐私计算产品TICS如何实现城市跨部门数据隐私计算

华为云开发者联盟

云计算 华为云 隐私计算 企业号十月 PK 榜

币安DAPP系统开发技术概念及篡改逻辑

I8O28578624

从react源码看hooks的原理

flyzz177

React

深度理解Redux原理并实现一个redux

夏天的味道123

React

关于“React 和 Vue 该用哪个”我真的栓Q

京东科技开发者

Vue 前端 Vue 3 VUE 3.0 源码 react rout

深度讲解React Props

夏天的味道123

React

Docker不香吗?为什么还要用k8s

源字节1号

微信小程序 软件开发 前端开发 后端开发

爆肝整理高频js手写题请查收

helloworld1024fd

JavaScript

珠宝加工厂:我的成本下降空间在哪里

华为云开发者联盟

云计算 物联网 华为云 企业号十月 PK 榜

京东云开发者|提高IT运维效率,深度解读京东云AIOps落地实践

京东科技开发者

人工智能 异常检测 时序架构 运维‘

量化合约系统开发逻辑篡改方案

I8O28578624

这可能是你需要的vue考点梳理

bb_xiaxia1998

Vue

应用实践:Paddle分类模型大集成者[PaddleHub、Finetune、prompt]

汀丶人工智能

nlp 文本分类 关系抽取 命名实体识别 11月月更

公链defi质押挖矿分红dapp系统开发(合约定制)

开发微hkkf5566

探究Presto SQL引擎(4)-统计计数

vivo互联网技术

浏览器 presto 引擎

PaddleBox:百度基于GPU的超大规模离散DNN模型训练解决方案

百度Geek说

企业号十月 PK 榜 PaddlePaddl 模型训练框架 大规模离散模型

没想到GoFrame的gcache天然支持缓存淘汰策略

王中阳Go

Go golang 高效工作 学习方法 11月月更

云小课|MRS基础原理之MapReduce介绍

华为云开发者联盟

大数据 华为云 企业号十月 PK 榜

面试官:请实现Javascript发布-订阅模式

helloworld1024fd

JavaScript

《Java 20年:道路与梦想》迷你书发布_Java_小盖_InfoQ精选文章