C语言占据榜首,但大数据类是最大赢家。
IEEE Spectrum的第三次“最受欢迎编程语言”交互式排行榜新鲜出炉。因为不可能顾及到每一个程序员的想法,Spectrum使用多样化、可交互的的指标权重来评测每一种语言的现行使用情况。
数据记者Nick Diakopoulos从10个线上资源中选取了12个指标,这其中的每一个都能反映某一种编程语言在某一方面的受欢迎程度,加权这些指标就能得出一个排名。

何为“交互式”排名?
因为我们每个人都可能会看重不同的东西,比如大众最热衷在开源代码中使用什么语言?哪种语言的客户需求量最大?Spectrum的“交互式编程语言排行”让用户可以根据自己的喜好调整不同评价指标所占的权重,从而得到所需的排名。
用户还能根据自己的需要过滤榜单中的结果,例如我们可以选择只显示用于嵌入式系统和移动终端的语言。当然,用户既可以定制榜单中的每一项权重,也可以使用榜单预设的评价方案。
榜单中的默认预设是根据IEEE成员的平均兴趣权重来设定的,那么2016年Spectrum评选出的排名前十的编程语言都有哪些呢?

在连续两年屈居亚军后,C语言终于替代了Java榜首的位置。放眼前五名,Python和C++在3、4名上互换了位置,C#跌出前五,其位置由近几年上升势头迅猛的R语言所取代。近年来,包括R在内的大数据类编程语言总体呈现出一种上升趋势。
谷歌和苹果在榜单上同样你追我赶,最新的榜单显示谷歌的Go语言击败了苹果的Swift并杀入前十,但swift的上升同样不容小觑,其今年排到了第11位,相比于去年上升了5个排名。值得一提的是,去年曾有若干新兴编程语言和Swift一起初涉榜单,但今年却不见了它们的踪影。

其他引人瞩目的变化包括Ladder Logic,它从去年的39名上升到了今年的34名。LadderLogic用于PLC(可编程逻辑控制器),尤其是在工厂中的PLC上应用较广。通常人们认为编程语言在制造业中无利可图,然而Ladder Logic的成功揭示了编程语言在制造业应用中的巨大商机。
另外HTML仍然流行,今年排名上升到了第16位,之前有用户甚至还在担忧其是否能入选榜单(为准确起见,我们秉承着实用至上的原则,并且将编程语言定义为一种给计算机下指令的特殊语法——就算这种语法只是用于数据的结构化——我们并不要求编程语言是图灵完备的)。
在退步名单里,最出人意料的当属Shell的衰落(Shell是一种统称,指对脚本的直接创造,通常为系统管理员所钟爱,常见的有bash shell等),其下降了7个名次落到了第19位。这种趋势或许反映了用于云端数据中心的复杂系统的发展壮大,但现在我们还不能妄下结论,我们还需要观察下一年的排名来确定这种趋势是否会持续,抑或仅是一种统计学上的偶然结果。
注:
IEEE Spectrum:一本IEEE(美国电气电子工程师学会)出版的旗舰杂志,其中文版名为《科技纵览》,旨在探讨未来技术发展趋势及其对社会和商业的影响,主要内容为报道国际航空航天、计算机和电信、生物医学工程、能源和消费电子等领域的最新技术进展和成果。
PLC:可编程逻辑控制器,是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
图灵完备:Turing Completeness,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。
稿源:dy.163.com
引用来自“abmin”的评论
php应用范围太窄了引用来自“SY泷涯”的评论
有所发展,但是相对一些语言来说还是偏窄,加上因为基数大导致大牛只占极少数引用来自“starstroll__”的评论
php本身支持范围是很广的,只是没有人去发掘而已。作为一个Javaer最近回头看C++、PHP确实感觉这些语言有他们的可取之处,并非传言的那么差,一直标榜着OOP概念的语言到了我朝结果还是一个过程性语言,大部分情况的Class只起了命名空间的作用,回去看看你们的代码Controller、Service、DAO层是不是如我所说?
引用来自“eechen”的评论
@rieon 死脑筋就是死脑筋,不懂得变通,居然还拿什么AngularJS跟PHP比.国人搞的Electron和NW.js都把Node部署到客户端基于Node(访问本地资源)+Chromium(图形界面)开发客户端应用.JS代码是不是明文?浏览器里的JS逻辑是不是明文?
PHP开发的桌面应用不需要自带一个浏览器运行时,直接调用用户浏览器即可,这样所见包的体积,做到几个MB,前端库用jQuery即可,保证对大多数浏览器的兼容.置于代码保护,可以用PHP7的opcache.file_cache导出脚本中间码.
PHP开发的桌面应用要跟服务器交互,方法之一可以用浏览器里的JSONP跨域获取,方法二是PHP用curl获取:
Browser jQuery AJAX <-> Local PHP curl <-> Server PHP
对比Electron/NW.js:
WebKit(Chromium) <-> Local Node <-> Server PHP
引用来自“eeecheng”的评论
@eechen引用来自“bhzhu203”的评论
你和eechen什么关系?引用来自“eechen”的评论
@rieon 死脑筋就是死脑筋,不懂得变通,居然还拿什么AngularJS跟PHP比.国人搞的Electron和NW.js都把Node部署到客户端基于Node(访问本地资源)+Chromium(图形界面)开发客户端应用.JS代码是不是明文?浏览器里的JS逻辑是不是明文?
PHP开发的桌面应用不需要自带一个浏览器运行时,直接调用用户浏览器即可,这样所见包的体积,做到几个MB,前端库用jQuery即可,保证对大多数浏览器的兼容.置于代码保护,可以用PHP7的opcache.file_cache导出脚本中间码.
PHP开发的桌面应用要跟服务器交互,方法之一可以用浏览器里的JSONP跨域获取,方法二是PHP用curl获取:
Browser jQuery AJAX <-> Local PHP curl <-> Server PHP
对比Electron/NW.js:
WebKit(Chromium) <-> Local Node <-> Server PHP
国人搞的Electron和NW.js都把Node部署到客户端基于Node(访问本地资源)+Chromium(图形界面)开发客户端应用.JS代码是不是明文?浏览器里的JS逻辑是不是明文?
PHP开发的桌面应用不需要自带一个浏览器运行时,直接调用用户浏览器即可,这样所见包的体积,做到几个MB,前端库用jQuery即可,保证对大多数浏览器的兼容.置于代码保护,可以用PHP7的opcache.file_cache导出脚本中间码.
PHP开发的桌面应用要跟服务器交互,方法之一可以用浏览器里的JSONP跨域获取,方法二是PHP用curl获取:
Browser jQuery AJAX <-> Local PHP curl <-> Server PHP
对比Electron/NW.js:
WebKit(Chromium) <-> Local Node <-> Server PHP
引用来自“eechen”的评论
@rieon 你知道PHP除了有"Personal Home Page"的含义,还有"PHP's Hypertext Preprocessor"的含义么?Hypertext Preprocessor是什么?就是HTML预处理器.所以说,有HTML的地方,有HTTP的地方,有浏览器的地方,就有PHP用武之地.jQuery可以在浏览器操作HTML实现交互,PHP可以在服务器操作HTML实现逻辑,相辅相成,都是"Write Less Do More"的设计哲学.引用来自“jQer”的评论
本来不想说些什么,但是看了某些观点,还是忍不住跳出来说那么一些。1. React极其高效。纯粹是扯淡,比起 Android、IOS 原生代码,在移动端一点都不高效。比起浏览器 JS 模板引擎,没有任何区别。它顶多只能算移动编写方便,学习成本低。
2. JSX语法。垃圾!特别是你在编辑器看到 JS 代码、return HTML 的时候,HTML 完全没有语法高亮,丢失标签是很可能的,对于调试维护都是愚蠢的。
3. 对于SEO真的太棒了。我觉得这个纯属没事找事。对于移动端,不需要 SEO。对于浏览器,大部分模板引擎都是服务器端编译,哪怕是 Java 的JSP。而且 ReactJS 的 render string 接口并不优雅。
如果不是为了移动端开发,你不想学 Android、IOS,那么可以选择 ReactJS。如果纯粹为了写模板,挑一个好的模板引擎更方便 ------ 因为它们能让你支持 HTML 语法高亮。
引用来自“临峰不畏”的评论
在嵌入式领域,除了C/C++,也没sei了。引用来自“沧海_Sea”的评论
汇编表示不服,要精确控制寄存器还是看汇编引用来自“临峰不畏”的评论
汇编从严格上讲,不算高级语言。每类芯片都不是完全通用的。除非性引用来自“临峰不畏”的评论
能要求高,硬件配置极低,不太考虑汇编的。引用来自“沧海_Sea”的评论
有时候不是要求高低的问题,要的是精确控制每一块内存,还有寄存器,c没法做引用来自“临峰不畏”的评论
你是做哪块开发的?我没遇到这样极端的情况。除了功能寄存器需要地址访问外,其它都需要。寄存器访问直接*(uint32_t*)adderss就可以了。引用来自“临峰不畏”的评论
在嵌入式领域,除了C/C++,也没sei了。引用来自“沧海_Sea”的评论
汇编表示不服,要精确控制寄存器还是看汇编引用来自“临峰不畏”的评论
汇编从严格上讲,不算高级语言。每类芯片都不是完全通用的。除非性引用来自“临峰不畏”的评论
能要求高,硬件配置极低,不太考虑汇编的。引用来自“沧海_Sea”的评论
有时候不是要求高低的问题,要的是精确控制每一块内存,还有寄存器,c没法做引用来自“临峰不畏”的评论
在嵌入式领域,除了C/C++,也没sei了。引用来自“沧海_Sea”的评论
汇编表示不服,要精确控制寄存器还是看汇编引用来自“临峰不畏”的评论
汇编从严格上讲,不算高级语言。每类芯片都不是完全通用的。除非性引用来自“临峰不畏”的评论
能要求高,硬件配置极低,不太考虑汇编的。引用来自“临峰不畏”的评论
在嵌入式领域,除了C/C++,也没sei了。引用来自“沧海_Sea”的评论
汇编表示不服,要精确控制寄存器还是看汇编引用来自“临峰不畏”的评论
汇编从严格上讲,不算高级语言。每类芯片都不是完全通用的。除非性引用来自“临峰不畏”的评论
在嵌入式领域,除了C/C++,也没sei了。引用来自“沧海_Sea”的评论
汇编表示不服,要精确控制寄存器还是看汇编引用来自“abmin”的评论
php应用范围太窄了引用来自“临峰不畏”的评论
在嵌入式领域,除了C/C++,也没sei了。引用来自“eechen”的评论
@rieon 你知道PHP除了有"Personal Home Page"的含义,还有"PHP's Hypertext Preprocessor"的含义么?Hypertext Preprocessor是什么?就是HTML预处理器.所以说,有HTML的地方,有HTTP的地方,有浏览器的地方,就有PHP用武之地.jQuery可以在浏览器操作HTML实现交互,PHP可以在服务器操作HTML实现逻辑,相辅相成,都是"Write Less Do More"的设计哲学.引用来自“abmin”的评论
php应用范围太窄了引用来自“SY泷涯”的评论
有所发展,但是相对一些语言来说还是偏窄,加上因为基数大导致大牛只占极少数引用来自“starstroll__”的评论
php本身支持范围是很广的,只是没有人去发掘而已。作为一个Javaer最近回头看C++、PHP确实感觉这些语言有他们的可取之处,并非传言的那么差,一直标榜着OOP概念的语言到了我朝结果还是一个过程性语言,大部分情况的Class只起了命名空间的作用,回去看看你们的代码Controller、Service、DAO层是不是如我所说?
引用来自“eeecheng”的评论
@eechen引用来自“abmin”的评论
php应用范围太窄了引用来自“SY泷涯”的评论
有所发展,但是相对一些语言来说还是偏窄,加上因为基数大导致大牛只占极少数引用来自“starstroll__”的评论
php本身支持范围是很广的,只是没有人去发掘而已。作为一个Javaer最近回头看C++、PHP确实感觉这些语言有他们的可取之处,并非传言的那么差,一直标榜着OOP概念的语言到了我朝结果还是一个过程性语言,大部分情况的Class只起了命名空间的作用,回去看看你们的代码Controller、Service、DAO层是不是如我所说?
引用来自“abmin”的评论
php应用范围太窄了引用来自“SY泷涯”的评论
有所发展,但是相对一些语言来说还是偏窄,加上因为基数大导致大牛只占极少数作为一个Javaer最近回头看C++、PHP确实感觉这些语言有他们的可取之处,并非传言的那么差,一直标榜着OOP概念的语言到了我朝结果还是一个过程性语言,大部分情况的Class只起了命名空间的作用,回去看看你们的代码Controller、Service、DAO层是不是如我所说?
引用来自“eeecheng”的评论
@eechen引用来自“keep_wan”的评论
这个山寨我服;引用来自“eeecheng”的评论
@eechen引用来自“abmin”的评论
php应用范围太窄了