闲话开发语言 2017'
Jul 07, 2017
眨眼间2017年已经过去一半了,两个月前的“Boring IO大会”(Google I/O大会)仿佛就在昨天。会上最大的新闻就是Kotlin被选为Android的官方开发语言。平地一声雷,各大社区都炸了锅,纷纷讨论Kotlin是否会上位,取代Java的霸主地位。
天热,睡不着觉,正好和大家唠唠开发语言。
感慨Groovy、Scala火了几年后,又悄悄地归于平静,遑论几年前Groovy还被Pivotal选为Spring的推荐语言,但是在Spring5的后续版本Pivotal也投入的Kotlin的怀抱。
无疑,Kotlin入选2017年最火的(被谈论最多的)开发语言当之无愧。如果要问Kotlin是否会取代Java?我的观点是,从现在开始就用Kotlin吧!
说到开发语言,就不能不提去年的No.1—Go语言。Go语言像是C语言的增强版,简单而有效。作为Netflix、Docker等的主要开发语言,随着微服务的兴起,着实火了一把。但也因此,Go语言反而和微服务绑在了一起,更多的被限制在服务端中间件和后台服务的开发上。业务应用、前端、桌面、游戏、嵌入式?还是算了。
Go语言的竞争对手是谁?Java?非明日新星Rust莫属。这个Mozilla团队推出的新生开发语言,迅速飙升成为Stackflow上程序员最喜爱的语言。和Go语言相比,Go语言的思想是“做一件事只有一种方法”,隐喻“请把你的精力放在业务逻辑上”;Rust的思想是“只有你想不到,没有我做不到”,隐喻“请尽情地炫技吧!”。跑题了…,不过即便从纯技术角度比较,Rust的安全性和内存管理方式也更为先进。
如果你要开发iOS或OSX应用,你只有一个选择—Swift。Swift是从Object-C演化来的现代开发语言,如果你做过比较,就会发现Kotlin简直是照抄Swift!Swift吸取了Object-C中设计的很多不足,所以它比Object-C更快、更少出错、代码量更小。
如果说2016年是微服务年的话,那么2017年肯定是人工智能年。如果说人工智能在2017年火得不要不要的话,那么作为机器学习的代表开发语言—Python可谓是“老树发新芽”,也火得不要不要的。这里顺便提一句,今年Python程序员荣登薪水最高的职位榜首。虽然今年人工智能裹挟着Python亮瞎了各位程序员的氪金狗眼,但Python本身作为开发语言,其简单、易读、易学、Do More with Less Code…也是它在漫漫时间长河中弥久不衰的原因。
提到Python就不能不再说一下Ruby。这两种语言总是被人放在一起比较。Python简单,Ruby灵活。它们都支持多种语言范式。如果要不是编程能力很差的大学教授们用Python写的那些函数库,作为一个有坚持的程序员,肯定会选择Ruby,在有坚持的程序员眼里,Rudy是优雅的代名词。虽然Ruby貌似已经走在小众化的路上了(难道不是一直没大众化起来过嘛?),但是现在很多著名的中间件/工具上都能时不时地见到Ruby的踪迹。还有别忘了是谁让Ruby走入大众眼帘的?是Ruby On Rails。
C语言(包括C++)还是有很多簇拥者的,至少比你想像的多。不过,作为一门老牌开发语言,总而言之,用C语言做开发的,还在用C语言做开发;不用C语言做开发的,未来也不太会去用C语言做开发。
C#其实和C没太大关系(别看只差一个符号,C++还差两个呢!),C#是纯面向对象语言,而且现在看来比Java还要纯一些。对C#可能很多人有一些错误的认识:譬如,C#(.NET)是开源的(好像是去年开的);C#不但能用来开发Windows程序,还可以运行在Windows以外的平台上;并且还主要运行在Windows以外的平台上,这得益于著名的游戏引擎Unity3D的推荐语言是C#;而C#近来最广泛的应用场景其实是游戏。另外,在所有面向对象语言中,C#的内存模型(Strong Memory Backup)是最不容易产生内存泄漏的。
即然说了C#,那必须再说说Java了。其实没什么好说的,大家都很熟悉了。Java作为武林盟主,已经独占鳌头很多年了—使用人数最多的开发语言和最容易找工作的开发语言(但薪水不是最高的!)。不过,Java的精神领袖高司令已经不搞Java了,最近,据Java团队负责人说,Java将继续走保守路线,他们判断正是因为Java的保守路线,才使得Java获得了现在这种地位。(是不是Oracle不愿投钱搞Java的托词呢?我陷入了深深的沉思…)当然,不可否认,迄今为止,Java开发的程序是仍然是最健壮的和最可靠的。
在Java大教堂的另一面,是PHP的大集市。虽然Java程序员人数最多,但是全球使用PHP开发的网站最多,是基于Java的网站的数倍(开发效率高判立下)。据不知道哪里来的统计,基于PHP的网站全球达到百万级别,而这主要得益于WordPress是使用PHP开发的。无可否认“PHP是全球最好的开发语言!”
最后,让我们隆重请出近年来在各大开发语言排行榜上的王者—Javascript。无法辩驳,Javascript现在已经变成了一种万能语言!在这场开发语言的战争中,Javascript首先统一了浏览器,作为不同阵营浏览器的“官方”唯一指定语言,傲视群雄;其次,Javascript使用Node.js占据了服务端的半壁江山(夸张的修辞手法);npm简单发布、容易共享的特点,把Maven和Gems不知甩哪里去了;最后,React Native、Weex等又偷摸的把移动端统一了。而在“众人拾柴火焰高”的兴风作浪下,ES6和ES7得以迅速推出,不断地带来了更多、更优秀的语言特性。所以,虽然“PHP是全球最好的开发语言!”,但是“Javascript终将统一全宇宙!”