2017 年,编程语言领域发生了巨大的变化,一方面,Java、Kotlin 等语言在企业和移动开发方面吸引了很多开发者的关注;另一方面,对 Web 开发至关重要的 JavaScript 生态系统也在不断扩大;TypeScript 、C ++ 等编程语言的特性都迎来了较大的更新。
接下来,我们就与大家共同回顾一下 2017 年编程语言所发生的大事件并剖析其未来的发展趋势。
Java 的曲折之路
千呼万唤始出来,在经历了多次跳票的 JDK 9 最终于 2017 年 9 月正式发布了,作为 Java 标准的最新实现,曾因为其模块化技术引起争议。尽管模块化系统旨在提供可伸缩性,性能和安全性方面的优势,但包括 Red Hat 和 IBM 在内的关键参与者却不同意 Oracle 实施它。他们对应用的兼容性表示担忧,并对最初的建议投了反对票。直到最后的再次修改,才让反对方感到满意,通过了复审提案,为迟迟不能发布的版本扫清了道路。
下一个版本 JDK 10 计划将在 2018 年 3 月迅速推出,具有局部变量的类型推导和垃圾收集器接口等特性。
而 Java EE ,甲骨文已将其交由 Eclipse 基金会管理。同时,Oracle 在发布 Java 9 的同时也发布了 Java EE 8 。 Java EE 8 包含云、HTML5 和 HTTP / 2 等特性。
未来趋势
过去一年中,因 Google 开始拥抱 Kotlin、Python 因人工智能而兴起,由此不少开发者开始认为 Java 霸主地位即将被取代。
相比往年的 TIOBE 排行榜来看,Java 使用率确实有所下降,但是依旧稳居首位。同时根据去年 11 月 RebelLabs 发布的《 2017 年开发者生产力报告》分析得出,开发者主要使用的编程语言中,Java 8 高达 72%。最后综合 StackOverFlow 调查报告、IEEE Spectrum 排行榜的数据,虽然这些榜单的评分标准和涉及人群虽然有所差异,但在任何一个榜单中, Java 都占据编程语言前三的位置,无疑是最大的赢家。
从整体互联网开发的大环境来看,Java 语言的应用方向主要体现在三个方面:
大中型的企业应用中,如复杂的大企业的软件系统、各种类型的网站;
桌面应用,即 C/S应用,主要用来开发运行于不同的操作系统上的桌面应用程序;
移动开发应用,如 Android 开发、Java 游戏开发等。
基于以上稳定的排行榜以及数十亿设备都是 Java 开发的应用领域来看,未来一年中,不能说其他语言的兴起对这个老牌语言没有任何影响,但是想要短期之内想要撼动 Java 的位置也绝非易事。
学习资料
谁说 Java 要过时?2017 年 Java 大事件回顾!
知名互联网公司校招 Java 开发岗面试知识点解析
Java JDK 10:下一代 Java 有哪些新特性?
Java 性能调优的 11 个实用技巧
JavaScript 的大更新
在 Web 开发中,2017 年许多 JavaScript 工具迎来了大版本更新,包括:
11 月的 Angular 5:包含一个构建优化器,支持渐进的网络应用程序和 Material Design 组件。
9 月的 React 16 :重写了 React 内核以提高对复杂应用程序的响应速度。
3 月的 Angular 4 :专注于构建更小的应用。
同时,TypeScript 也迎来多次更新:
11 月的 TypeScript 2.6 具有严格的模式标记和错误抑制注释。
8 月的 TypeScript 2.5 使得复杂的重写变得更容易。
6 月的 TypeScript 2.4 具有动态展示功能,使应用更加节省资源。
4 月的 TypeScript 2.3 支持 ECMAScript 异步生成器和迭代器。
2 月的 TypeScript 2.2 强调与 React Native 框架的兼容性,以更好地构建原生移动应用。
即将于 2018 年 1 月推出的 TypeScript 2.7,将改进对象字面量的类型推断。
未来趋势
此前 Coding Dojo(编码道场)解析了来自 Indeed 的 25 们编程语言,得出有超过 80% 的开发者和 95% 的网站的都使用 JavaScript 来实现页面上的动态逻辑。 且未来随着物联网和移动设备越来越流行,React 和 AngularJS 等 JavaScript 前端框架具有巨大的未来潜力。
目前,据最新发布的《JavaScript 年度调查报告》来看,React 似乎会在 2018 年有更大的发展空间。
学习资料
JavaScript 框架这一年:React、Angular 们正在互相渗透
JavaScript 年度调查报告:React、Vue 和 Angular 三分天下,谁将在 2018 年独占鳌头?
精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!
14 个你可能不知道的 JavaScript 调试技巧
星星之火——Kotlin
成为 Android 官方支持开发一级语言的 Kotlin 在 2017 年时一颗冉冉升起的新星, 2017 年推出的版本包括:
Kotlin 1.2 于 11 月发布,提供在多个平台上重复使用代码的实验性功能。支持 Java 9 。
Kotlin 1.1 于 3 月发布,提供了对 JavaScript 支持。
未来趋势
距离 TIOBE 公布年度编程语言的时间已所剩无几。在 12 月的 TIOBE 指数中,Kotlin 和 C 语言成为年度编程语言的候选人。最终是否会花落 Kotlin,我们还需等待几日。
不过因 Google 而火的 Kotlin,从开发者角度来看,确实让代码更加简洁,并减轻了开发人员的代码量,为 Android 编程提升了效率。但是还处于渗透 Android 开发阶段的 Kotlin,只能说值得一试,具体还是需要根据项目来判断是否适合。
学习资料
不服来战,看 Kotlin 如何完爆 Java
Kotlin 一统天下?Kotlin/Native 开始支持 iOS 和 Web 开发
Kotlin和Java EE:让二者的转换更顺畅
微软发布量子编程语言——Q#
继斥巨资研制量子计算机之后,微软于 12 月推出一门新的程序语言,名叫“Q#”(念作Q Sharp),这是一种表达量子算法的特定语言,它将传统的编程概念如函数、变量、分支、以及语法高亮的开发环境和量子调试器带到量子计算领域。该语言与主要与 Visual Studio IDE 协同工作,并在 Quantum 开发工具包中集成推出。可以帮助编程人员为量子计算机编写软件。
未来趋势
对于刚刚发布的新语言,Q# 体现了微软用语言定义行为、用语言规范框架的思维,且该语言是一个独立的程序语言,未来前景可观。但就目前而言,不少开发者表示量子计算机离我们还有一段距离且如今量子线路规模太小,想要落地 Q# 语言 ,在实际应用中还有一定的难度。
为编程提速的 C ++
今年等到了 C ++ 17 的发布,旨在使 C++ 成为一个不那么臃肿复杂的编程语言,以简化该语言的日常使用,使开发者可以更简单地编写和维护代码。
接下来是 C ++ 20 ,预计将于 2019 年夏季完成功能并于 2020 年发布。它计划包含对并发性和库特性的改进。
未来趋势
随着工具的不断增加,许多开发者发现 C ++ 比 Python 或 JavaScript 等语言更复杂,学习和使用起来也更困难,因此开始逐渐弃用 C++,所以 2017 年中,C++ 的普及程度有所降低,但不容忽视的是,它仍然被运用在大型企业的许多遗留系统中,且在游戏开发、驱动程序、客户端服务器中都有不可替代的地位。
人生苦短,我用 Python
2017 年,可以说是 Python 的幸运之年。2 月,Python 正式迁移到 Github (https://github.com/python/cpython)上,拥抱了 Git 版本控制系统。7 月,据 IEEE Spectrum 杂志发布的一年一度的编程语言排行榜来看,Python 一路跃升至第一名。而在国内的编程环境之下,Python 淘汰了 VB, 被列入全国计算机等级考试。
未来趋势
为什么 Python 增长的这么快?不难看出,如今从 Web 开发到数据科学,机器学习再到 DevOps,越来越多的应用是基于 Python 开发。其次,电子、制造业、软件、政务,甚至如上所说的高校,也都在主推 Python 编程语言。未来,随着这些领域对开发者需求的增长,对 Python 的需求仍将势不可挡。
学习资料
用 Python 分析 CSDN 小姐姐一年都做了啥
执行效率太低又怎样? Python 照样火过 Java、C/ C++
从小白到大神,一文掌握 Python 密集知识点
不止 20K,Python 工程师薪资再飙升(内附转型指南)
总结
逐渐下滑的 Java、极具前景的 Javascript、新型 Q#、简化的 C++、飞速增长的 Python......各有千秋的编程语言,2018 年,你最看好哪种?