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