程序员入门必读:编程语言争霸 霸主是他

世界上的语言有千万种,但是却不只有汉语、英语、法语和俄语,还有Java、C++、Python和PHP。计算机的快速发展,使编程成为一种职业,程序员也成为近年来备受关注的一种职业。

语言争霸 谁为王?

在编程世界中,也有着不同的门派,各个门派都在强调自己是武林独尊,互不相让。今天笔者无意挑起武林争端,却要给那些想成为程序员的莘莘学子一个建议,参考备受认可的TIOBE编程语言社区最新排行榜,推荐十款备受关注的编程语言供大家选择,总有一款适合你的。

TIOBE世界编程语言排行榜(2016年3月)

1、Java

相信Java是很多非专业编程人员也听说过的语言,仅这一点看来,就足以证明Java的知名度。Java最初由SUN公司推出,并将其定位在简单、开放、高性能的语言。Java是一个纯粹面向对象的程序设计语言,与C++语言面向对象技术很像,同时Java虽然推出与1995年,属于编程语言中的“老者”,但是,Java一直在做内部的迭代,这也是Java经久不衰的重要原因。Java广泛应用在PC、数据中心、超算平台、游戏和移动等领域。

Java

2、C/C++

笔者这里将本是同根生的C语言和C++列到了一起,因为C++本就是C的增强版,但是其出现后迅速获得了大量的支持者,进而成为一种独立的语言。C++语言灵活,运算符的数据结构丰富、高效,且是一种可移植的多用途程序设计语言。他主要用于系统开发、引擎开发、嵌入式软件、高性能服务器和娱乐软件领域。C语言和C++分别位于TIOBE世界编程语言排行榜中的第二名和第三名,编程语言第一名为Java(以2016年3月为准)

C/C++

3、C#

C#是微软公司开发的面向对象的、运行于.NET Framework之上的高级程序设计语言。C#继承了C家族强大功能的同时,去除了其中复杂的特性。可能有人会说C#与Java太像了,的确,但是他同时借鉴了Delphi的特点:与com是直接集成的,同时它也是微软.NET windows网络框架的主角。更现代化的C#也曾一度挤入TIOBE世界编程语言排行榜的前三名,不过在最新一次的排行中,C#屈居第四。

C#

4、Python

Python是比Java更古老的语言,发明与1989年,是一款纯粹的自由软件。Python最大的特点莫过于其强大的库,Python丰富的第三方库资源就是它的优势,Python库能够简化程序员的编程过程,节省时间。

在2016年年初,Python火了一把。主要原因是,美国科学家成功监测出引力波,引力波研究机构LIGO在检测过程中使用了这个语言,并将其(GWPY)公布在GitHub上。根据第三方机构TIOBE的排名显示,Python与去年同期相比上升了三名,跻身前五。

Python

5、PHP

PHP也叫做超文本预处理器(Hypertext Preprocessor),其语法吸收了Java、C语言的优点,同时也自创了PHP新语法,支持几乎所有流行的数据库和操作系统。PHP属于开源脚本语言,所以是完全免费的,PHP源代码也能够看得到。PHP的便捷性让新手学习起来十分容易上手,而且程序开发快运行快,经常用于Web开发。

PHP

6、Visual Basic .NET

Visual Basic .NET在2014年开始挤入排行榜前十名,而在最新版当中,Visual Basic .NET更上升到第7名。Visual Basic .NET作为微软Visual Basic 6.0 version的继承者,一直备受压力,在发布之处甚至受到一些开发者抵制。很多开发者表示,VB.NET丢到了很多VB6中的constructs和用户界面功能,并没有很好的继承VB6的优点;但微软似乎在吧VB .NET作为一个全新的语言,目前看来也取得了不错的成绩。

Visual Basic .NET

7、JavaScript

这个看起来很像Java的编程语言JavaScript(以下简称:JS)是由Java压法公司Sun和Netscape合作完成的。主要目的是为了解决服务器端语言遗留的速度问题(如Perl),为用户提供更优的浏览效果。

同时,今年也是JS最受欢迎的库jQuery也迎来了自己十周岁生日,jQuery虽然只发布之日起就备受争议,但似乎已成为JB的“默认事实标准”。

JavaScript

8、Perl

Perl也被称为“实用报表提取语言”(Practical Extraction and Report Language),其最初设计者为为拉里·沃尔(Larry Wall),其貌不扬却拥有天才般的开发能力,拉里·沃尔曾表示:”无论你们怎么评论,我仍然爱她!”如今,Perl也从最初的发布到现在走过了近三十年。Perl最重要的特性就是内部集成了正则表达式的功能,拥有强大的第三方代码库CPAN。同时,Perl的解释程序是开放源代码的,所以使用者不用为费用问题而担心。

Perl

9、Ruby

Ruby有日本人研发,最初由于语言不通,受到很多人的诋毁,但随着Ruby的更新和非日文资料的增多,Ruby逐渐开始被接纳。Ruby也有红宝石的含义,其logo也是一颗红宝石,而其语言本身也如红宝石般优雅,十分美丽。与JAVA不同,Ruby是一种动态的,侧重于简单高效的开源的语言。Ruby的设计者认为,减少编程时不必要的琐碎时间很有必要,所以简便、人性化成为Ruby的一大特性。

Ruby

10、Swift

Swift虽然在最新的TIOBE榜单中排位14名,但是相比去年3月的24名,进步速度可谓飞快。Swift拥有Python的易用性,还有Objective-C、C++和Ruby的影子。Swift一直是苹果生态系统中的一员,直到去年WWDC大会上,苹果宣布开源自己的Swift语言;Swift语法十分简单,且高效强大,但是他同样有一个缺点就是,只能运行在苹果的系统中(OS X和iOS)。

你用的是哪个编程语言?

总结:所谓术业有专攻,不同的程序员选择了不同的语言种类,对于任何一个想要学习编程语言的人来说,应该去选择适合自己工作场景的语言。这里给读者推荐了现在最流行的十款编程语言,你可以选择最适合自己的那个进行学习。

2015 年 JavaScript 开发者调查报告

年底将至,JavaScript 开发者调查也已经结束,此次调查总共有 5000 份回复,我真的迫不及待要分享这次调查的细节,感谢所有的参与者,这是 JavaScript 社区伟大的时刻。

你写什么类型的 JavaScript?

97.4% 的受访者写 JavaScript 的 Web 浏览器,其中有 37% 写移动 Web 应用。

一些参与者回复,他们会在其他地方用 JavaScript,特别是在开发中的 CLI 和桌面应用。有少部分还会在 Pebble 和 Apple TV 上开发。这些归类到其他类别上,占总选票的 2.2%。

An screenshot of the percentages for the first question

你在哪使用 JavaScript?

不出我所料,94.9% 的投票者用 JavaScript 工作。然而,有 82.3% 的投票者也在其他项目中使用 JavaScript。其他回复包括教学,好玩或者非盈利目的使用。

An screenshot of the percentages for the second question

你写 JavaScript 多久了?

超 过 33% 的人写 JavaScript 代码超过六年了。除去那些精准回答的选票,5.2% 在一年前开始写 JavaScript,12.4% 两年前开始写 JavaScript,还有 15.1% 三年前写 JavaScript。总共有 32.7% 的人在近几年开始写 JavaScript。

An screenshot of the percentages for the third question

你使用哪种 complie-to-JavaScript 语言,如果有的话?

85% 参与者表示,他们将 ES6 编译为 ES5。同时有 15% 使用 CoffeeScript,有 15.2% 用 TypeScript,只有可怜的 1.1% 使用 Dart。

这是我想要进一步合作的问题之一,因为它有 13.8% 的“其他”回复。这个问题绝大多数的答案是 ClojureScript、elm、Flow 和 JSX。

An screenshot of the percentages for the fourth question

你喜欢哪种 JavaScript 文体选择?

JavaScript 开发者绝大多数似乎青睐分号,总共有 79.9%。相比之下,11% 的人表示他们不喜欢使用分号。说到逗号,44.9% 的人赞成放置后的表达,而 4.9% 的人喜欢用逗号第一语法。当涉及到缩进,65.5% 更喜欢空格,而 29.1% 的人更喜欢使用制表符。

An screenshot of the percentages for the fifth question

你使用 ES5 哪个功能?

有 79.2% 的人使用 Array methods,并且有 76.3% 的人使用 strict mode。30% 的人使用 Object.create,而 getter 和 setters 只有 28% 的人使用。

An screenshot of the percentages for the sixth question

你使用 ES6 哪个功能?

值得注意的是,Arrow functions 是本次调查中最常用的 ES6 特点,占了总票数的 79.6。Let and const
总共占 77.8% 的投票,Promise 功能依旧强劲,有 74.4 %的人选择了它。不出人意料的是,只有 4% 的人使用 proxies。只有 13.1% 的人用 Symbols,超过 30% 的人使用 Iterators。

https://i.imgur.com/okcvuos.png

你写测试吗?

有 21.7%  的人来不写任何测试,大多数人写一些测试,34.8% 经常写测试。

An screenshot of the percentages for the eighth question

你运行连续集成测试吗?

和 CI 一样,很多人不用 CI 服务器 —— 超过了 40%。有 60% 的人偶尔使用 CI,有 32% 的人在 CI 服务器上运行测试。

An screenshot of the percentages for the ninth question

你怎么运行测试

59% 的人喜欢运行和 PhantomJS 相似的自动化浏览器测试,51.3% 的人也喜欢在网络浏览器上人工测试。自动化服务器端测试则占了 53.3% 的得票。

An screenshot of the percentages for the tenth question

你用什么单元测试库?

大多数人要么选择 Mocha 要么选择 Jasmine 运行 JavaScript 测试,Tape 收到 9.8% 选票。

An screenshot of the percentages for the eleventh question

你用什么代码质量工具?

似乎参与者都在 ESLint 和 JSHint 之间纠结,不过 JSLint 经过了这么多年依旧坚挺,几乎有 30%。

An screenshot of the percentages for the 12th question

你怎么处理客户端的依赖?

Npm 接管客户端依赖管理体系,拥有 60% 的选票。Bower 依旧占据了 20% 的选票,而普通的 <script> 下载和插入获得13.7% 的选票。

An screenshot of the percentages for the 13th question

你首选的构建脚本解决方案是什么?

Gulp 最流行,超过 40% 的投票。接下来的是 NPM,为 27.8%, Grunt 获得了 18.5% 的选票。

An screenshot of the percentages for the 14th question

你首选的 JavaScript 加载工具时什么?

大多数参与者在 Browserify 和 Webpack 之间徘徊,而后者领先前者 7 个百分点。

An screenshot of the percentages for the 15th question

你用什么库?

jQuery 依旧强劲,占据票数 50% 以上,而 XHR 微库只有票数的 8%。

An screenshot of the percentages for the 16th question

你用什么框架?

不出人意料,React 和 Angular 处于领先地位。Backbone 也在靠前的位置,有 22.8% 的选票。

An screenshot of the percentages for the 17th question

你用 ES6 吗。。。

有 20% 的人几乎从不使用它,有 40% 的人偶尔使用,接近 30% 的人广泛使用。

An screenshot of the percentages for the 18th question

你知道 ES2016 有哪些特性吗?

粗略地说,有一半的人不知道 ES2016  有哪些新特性。

An screenshot of the percentages for the 19th question

你理解 ES6 吗?

超过 60% 的人理解基本的概念,有 10% 的人完全不理解,有 25% 的人理解 ES6。

An screenshot of the percentages for the 20th question

你会说 ES6  是一种进步吗?

近 95% 的人认为 ES6 是一种进步。

An screenshot of the percentages for the 21th question

你首选文本编辑器是什么?

超过一半的人喜欢 Sublime Text,超过 30% 喜欢 Atom 和它的开源复制版。超过 25%  WebStorm  和 vi/vim。

An screenshot of the percentages for the 22th question

你首选的开发系统是什么?

超过 60% 的人用的是 Mac,而 Linux 和 Windows 用户接近 20%。

An screenshot of the percentages for the 23th question

你如何找到可重用代码,库和工具?

受访者似乎赞成使用 Github 和搜索引擎,也有用博客、Twitter 和 npm  网站。

An screenshot of the percentages for the 24th question

你参与 JavaScript 社交事件吗?

近 60% 的人至少参加一个会议,而 74% 的人表示,他们喜欢去的聚会。

An screenshot of the percentages for the 25th question

你的 JavaScript 应用程序里支持什么浏览器?

很多样的答案,但幸运的是大多数的受访者没有使用 IE6 了

An screenshot of the percentages for the 26th question

你了解 JavaScript 的定期最新的功能吗?

当 JavaScript 有更新时,80% 受访者保持会去了解。

An screenshot of the percentages for the 27th question

你在哪里了解最新的 JavaScript 功能?

Mozilla 开发者网络在 JavaScript 领域和新闻更新上处于领先地位。JavaScript 周刊也非常流行,占了 40%。

An screenshot of the percentages for the 28th question

这些功能你听说过吗?

超过 85% 的选民听说过 ServiceWorker,我很好奇有多少人用它!

An screenshot of the percentages for the 29th question

除了 JavaScript,你还用什么语言?

有这么多的语言可供选择,我肯定会忘了一些,但结果不言自明。

An screenshot of the percentages for the 30th question