著名网站StackOverflow每年都会进行一次开发者调查。今年有来自世界各地的65,000名程序员参加。他们来自这些地方:美国和印度圈子很大。在加拿大、西欧等国家,巴西的圈子也不小。中国的圈子有点出乎意料的小。它们没有伊朗、土耳其、巴基斯坦等国家大。我猜想可能是由于语言和墙的原因。调查中有几个很有意思的项目:你最喜欢的编程语言,你最害怕的编程语言,你最想学的编程语言。程序员通过投票表达自己的态度。这是最受欢迎的10种编程语言。注意这里百分比的意思是:使用某种语言的程序员有多少百分比希望继续学习这门语言?让我意外的是,有高达86%的Rust程序员想要继续学习。这种语言有那么吸引人吗?我写了一篇文章《自从我学了Rust,就开始了受虐之旅,连编译都没成功过!》来说明这门语言的严格语法。但是Rust有其独特的优点:1.非常快2.Runtime很小(虚拟机就是一个巨大的Runtime)3.可以直接访问内存,内存是安全的。C和C++满足1和2,但内存不安全;Java、Python、Ruby除了内存安全之外都不满足,只适合应用层编程。Rust满足了这三点,解决了系统级编程的核心问题。虽然有些概念比较怪异,但从调查来看还是受到程序员的青睐,想要继续学习和使用。TypeScript和Python非常接近,排在第二和第三位,可以理解。一种是静态JavaScript,它对我这样的Java程序员极具吸引力。另一种非常方便写小程序,非常值得深入研究。让我们来看看前10名最令人恐惧的编程语言:有多少百分比的使用某种语言的程序员不想学习它!VBA高居榜首,Objective-C以76.6%排名第二,因为大家都想学。转向斯威夫特?Perl、PHP、C++等被吐槽多的语言榜上有名,不足为奇。但是Java和Ruby居然也进入了前十,一个排在第7,一个排在第9。实际上有55.9%的Java程序员想要“抛弃”Java。这里发生了什么?Java不是经常在TIOBE编程语言榜单上排名第一吗?Java拥有庞大而丰富的生态,开源的框架和工具数不胜数,世界上无数的系统都是由Java开发的,再加上强大的JVM,虽然语法啰嗦,但Java在保持兼容性的同时也在不断完善。怎么会沦落到一半人都不喜欢的地步?O'Reilly的MikeLoukides在一篇文章中总结了几个可能的原因:使用Java的人很多,总会有相当一部分人不喜欢它,正如C++之父BjarneStroustrup所说:世界上有两种编程语言,一种被吐槽,一种没有人用。Java周围有很多坏习惯,比如名字很长的ClassWithARallyLongNameBecauseThatsHowWeDoIt,比如设计模式FactoryFactoryFactory的滥用,这样的代码很烦人。Java已经有20多年的历史了,号称是企业级应用的开发语言。Java程序员将面临更多的大型程序。这些程序是正在维护的遗留代码,使用旧技术和旧框架。程序又写不好了。文件很少,或者根本没有文件。每次看到这么狗屎的山码就想吐,但还是要捂着鼻子走一遍。你说你整天干这种活,还想深入研究吗?有57.1%的Ruby程序员不喜欢Ruby在我的印象中,用过Ruby开发过程序的人,基本上都会爱上它。简洁大方,利用强大的元编程能力,可以写出简洁得惊人的代码。人们不再有兴趣学习它,时代已经把它抛在脑后了。Ruby因RubyonRails(RoR)而流行起来。RoR是写Web2.0程序的神器。可以说Web已经变成了DSL。但是现在已经进入移动互联网时代,移动端是iOS和Android,后端需要更好的性能和更强的扩展机制,所以Ruby的表现并不理想。所以现在很多后端开发都会用到Go语言,Node.js。当然,Ruby也在不断发展。例如,Elixir也是由Ruby社区的人开发的。他们希望使用Ruby风格编写Erlang代码,然后在ErlangVM上运行以实现高性能。这是一个非常漂亮的组合,但是生不逢时,竞争者众多,很难像RoR那样产生革命性的影响,所以才一炮走红。本文主要从个人感受的角度解读调查结果。Stackoverflow有更多的调查,比如最流行的框架,开发者的年龄等等,有兴趣的可以去Stackoverflow了解更多:https://insights.stackoverflow.com/survey/2020【这篇文章为专栏作家“刘欣”原创稿件,转载请通过作者微信获取授权公众号coding】点这里,阅读更多本作者好文
