20 世纪 40 年代,世界上第一个高级编程语言 Plankalkül 在德国诞生,这甚至发生在电脑发明之前。从那开始,每年都有新的编程语言被创造出来。到目前为止,计算机领域已有上千种语言。而关于“谁是世界上最好的编程语言”这个问题的争论,也从未停止过。
JavaScript 仍在继续流行,与此同时,越来越多的前端项目尝试使用更安全、开发效率更高的 TypeScript 重构。
Go 在服务器开发领域不断开疆拓土,前景光明。Rust 也在性能敏感的领域逐渐获得应用,大有替代 C/C++ 等传统语言之势。
没有最好的语言,只有最适合的语言。
创新者:版本常更新,同名不同命
2020 年 3 月,Java 14 如期发布,而根据其每六个月更新一个版本的发布周期,Java 15 已经在路上。频繁的升级让人有些审美疲劳,甚至有点懒得去看有什么新特性。相较而言,长期支持版本 Java 8、Java 11 以及将于 2021 年 9 月发布的 Java 17 更值得关注,相关调查报告显示,目前仍有超过半数的开发者在使用 Java 8,还有一部分开发者在使用 Java 11,至于其他短期版本的使用者则寥寥无几。
为什么没什么人用,Java 还在不断发布新版本呢?我们认为这些短期支持版本可以看做是长期支持版本的超前点播,并非为生产而创造。而语言本身也需要根据时代的需求不断引入新的特性,向社区表示自己还在与时俱进。
新特性看起来不错,为什么你的项目仍停留在 Java 8 而不去迁移到更高的版本呢?大多数时候,升级版本是一件吃力不讨好的事情。而且,就算很多团队已经用上了 Java 8,但像 Lambda 表达式等 Java 8 中引入的新特性,普及率并不高。
早期采用者:Strings 有几种写法?
Go 语言很火,但没有你想象的那么火。在 TIOBE 近一两年的榜单中,Go 语言在前 20 位中,总体呈现稳中有升的趋势,今年 3 月又一次冲进前十。而在国内,没有哪个大厂不做 Kubernetes,微服务和 Serverless,这些正是云原生语言 Go 的主场。
有亲爹谷歌的扶持,有大厂背书,社区和生态持续良好发展,Go 语言的前途一片光明。因此,我们认为 Go 语言有希望越过早期采用者阶段,进入早期大众阶段。
那么,Go 会挤走 Java 成为下一个企业级编程语言吗?你可能想得有点多。虽然 Go 语言可以胜任那些业务简单和追求极致性能的项目,但是复杂业务还是要靠 Java——业务越复杂,Java 越厉害。不过能在 Java 身上啃一口,已经足以证明这个语言的优秀。
早期大众:都是太子,谁更稳?
在说 TypeScript 之前,必须得说一下它的主创,**人物 Anders Hejlsberg,他在 Borland 开发了 Delphi,后被 Bill Gates 亲自邀请到微软,接连创造了 C#、TypeScript,还主持了.NET 的开发工作。
TypeScript 是一门 KPI 语言吗?没事儿重构一下,彰显自身价值?那你就想岔了。如今,前端项目正在变得越来越复杂,项目规模越来越大,作为 JavaScript 生态的一部分,TypeScript 的强类型约束虽然带来了开发成本的增加,但是也帮助开发者减少了写出低级 bug 的概率,减少了后期维护成本。Vue3.0、Angular 2+、VSCode、Echarts 等知名项目都在用 TypeScript 重构,不经意间,TypeScript 已经在前端领域处处开花。TypeScript,真香!
晚期大众:小众与领域主流不冲突
JavaScript 在前端领域的地位不用多说,哪怕 TypeScript 等新语言出现,也不会对它造成太大的冲击,最终的结果就是这些语言统统变成了它的头花。著名的 Atwood 定律写道——任何可以用 JavaScript 来写的应用,最终都将用 JavaScript 来写。但业界还有一句话——JavaScript 的优点是可以写任何东西,缺点是你真的这样干了。
拥簇者爱之,嫌弃者有之,不管怎样,目前 JavaScript 在浏览器端依然无可替代,有了 Node.js,它在服务器端也不容小觑。至于火不火什么的,这不是 JavaScript 会关心的事,它已经不是小孩子了。
写在最后
编程语言,对程序员有着来自灵魂的致命吸引力。也许,一个普通程序员,他有限生命的每一分钟都在写经验重复性的业务代码,但这不会阻止他探索一门老语言,学习一门新语言,哪怕这门语言他可能永远不会在工作中用到。
百家峥嵘,各有千秋,所有的编程语言,是人类积攒了半个多世纪的财富,是专门为你们准备的礼物,秃头吧,程序员!拥抱变化,一起奔涌在代码的河流!
|
请发表评论