2017 年最值得学习的编程语言是什么?

在新的一年里投入工作,大多数人都会考虑技能和职业选择问题。本文收集了大量有关“最好编程语言”的统计,让我们一起来看看吧……

Stack Overflow 程序员调查

2016 年,由来自 173 个国家的 56,000 多名程序员协作完成了这项 stack overflow 程序员调查。以下是几项使用最广泛的语言:

  1. JavaScript — 55.4%
  2. SQL — 49.1%
  3. Java — 36.3%
  4. C# — 30.9%
  5. PHP — 25.9%
  6. Python — 24.9%
  7. C++ — 19.4%
  8. AngularJS — 17.9% (JavaScript framework)
  9. Node.js — 17.2% (server-side JavaScript)
  10. C — 15.5%

调查同样询问了程序员最喜欢的几类语言:

  1. Rust — 79.1%
  2. Swift — 72.1%
  3. F# — 70.7%
  4. Scala — 69.4%
  5. Go — 68.7%
  6. Clojure — 66.7%
  7. React — 66.0%
  8. Haskell — 64.7%
  9. Python — 62.5%
  10. C# — 62.0%

和程序员最不愿意使用的语言:

  1. Visual Basic — 79.5%
  2. WordPress — 74.3%
  3. Matlab — 72.8%
  4. Sharepoint — 72.1%
  5. CoffeeScript — 71.0%
  6. LAMP — 68.7% (Linux, Apache, MySQL, PHP)
  7. Cordova — 66.9%
  8. Salesforce — 65.4%
  9. Perl — 61.3%
  10. SQL — 60.3%

以及程序员最有兴趣学习的语言:

  1. Android — 15.8%
  2. Node.js — 14.8%
  3. AngularJS — 13.4%
  4. Python — 13.3%
  5. JavaScript — 11.9%
  6. React — 9.2%
  7. Swift — 8.7%
  8. MongoDB — 8.1%
  9. Arduino / Raspberry Pi — 8.0%
  10. C++ — 8.0%

Stack Overflow 的顶级技术

Stack Overflow 随后对提问、回答及投票数进行了统计:

  1. JavaScript — 16.6%
  2. Java — 14.7%
  3. Android — 11.5%
  4. Python — 11.4%
  5. C# — 11.1%
  6. PHP — 8.6%
  7. jQuery — 6.7%
  8. C++ — 6.6%
  9. HTML — 6.6%
  10. iOS — 6.3%

PYPL 流行度

PYPL 编程语言检索使用来自 Google 的数据,用以确定编程语言在线搜索的频率:

  1. Java — 23.1%
  2. Python — 14.4%
  3. PHP — 9.7%
  4. C# — 8.4%
  5. JavaScript — 7.7%
  6. C — 7.1%
  7. C++ — 7.0%
  8. Objective—C — 4.4%
  9. R — 3.4%
  10. Swift — 3.0%

TIOBE 索引,2017 年 1 月

TIOBE 编程社区指数使用搜索引擎结果为语言提供排名百分比:

  1. Java — 17.3%
  2. C — 9.3%
  3. C++ — 6.3%
  4. C# — 4.0%
  5. Python — 3.5%
  6. VisualBasic.NET — 3.0%
  7. JavaScript — 2.9%
  8. Perl — 2.7%
  9. Assembly Language — 2.7%
  10. PHP — 2.6%

结果显示,在 2016 年幅度上升最大的似乎 Go,跳跃性从无上升到 2.3%,Java 跌落 4.19%,但分值仍然是 C 的两倍。

调查告诉了我们什么?

丝毫不觉惊讶的是,研究结果十分有趣但也时常相互矛盾,而且数据收集方法也很有限:

  • 搜索引擎的结果更能令那些拥有更多问题或更加广泛语言的长者满意。很少有人会期待 VisualBasic 语言高于 JAVA。
  • 在线调查只能局限于特定的参与者。Stack Overflow 很受那些在流行语言和框架中遇到问题的知识丰富的开发者欢迎。
  • 历史使用模式没必要表明未来的发展趋势。 Node.js 在十年前不曾出现。在 90 年代中期,对于服务器端的开发, Perl 或 C 是最好的语言选择。

例 如,所有的调查结果都显示 Java 排名高于 PHP。Java 常常被用于教学和命令行,桌面以及原生 Android 应用的开发。尽管在网页开发中 WordPress 占据了 27.3%,但是它依旧被编入 PHP。PHP 在 web 服务器中的使用率占据 82.4%,相比之下,Java 只占据了 2.7%。

PHP 用于 web 开发,具备更广泛的平台选择。Java 并没有什么问题,但是如果你想做一个 web 开发者,PHP 会更合适你。也许,这也取决于你在哪居住,在哪工作,你所从事的行业以及你在做的是什么。

调查是不完美的,所以也许我们可以寻找……

其他开发者的观点

这些年我一直在写“最好的编程语言”的相关文章,它们也吸引了许许多多的评论。每个人都有属于自己的观点,这很好。但是每个人都是错误的。

没有开发者能具备使用所有开发语言的经验。一些开发者可能会具备几门语言知识,但是没人能给出一个公正的选择。不管开发者选择和使用哪门语言作为日常使用,这门语言都将会成为他们的首选。他们将会充满激情地维护所选的语言,因为如果他们无法维护,他们将转换到其他语言上。

另一些开发者会从他们自身的经验中提出值得借鉴的地方。这很有用,但是你不可能和他们有同样的需求。为拨开这个问题,我们从那些一直被强迫使用同一门语言或框架的开发者中找寻观点:大多数开发者会讨厌那项技术。为什么要信任别人来为你做选择呢?

如果我们不能依赖调查或其他人的观点,那我们依赖什么?

没有“最好的语言”

如果你学习开车,那么开车知识也可用于开公交车,卡车或者拖拉机。相同地,大多数电脑语言执行输入,输出,变量,循环,条件和功能。如果学习了任何一门语言的基础,那么学习其他语言就变得更加容易。主要是语法不同。

你不能选择“错误”的语言;所有的开发知识都是好的知识。也许,为IOS游戏开发选择COBOL语言不是最好的,但是你可以快速地发现用它开发是不实际的,然后你会知道这门语言真正有用的地方。

任何学习过程最艰难的一部分都是开始学习……

你在问正确的问题吗?

那些有一些编程经验的人知道他们在朝什么方向努力。他们之间的知识差距更加明显:

  • 如果您花费太多时间手动操作电子表格数据,请投入一些努力学习宏语言。
  • 如果你一直在开发一个网站,并且对布局不满意,下一步就应该提高 CSS 知识。
  • 如果您正在开发服务器应用程序并需要存储数据,合理的选择是学习 SQL 或 NoSQL 替代方案。

那 些问“我应该学习什么语言?”的人,在软件行业可能是新人。这样的问题就类似于问“我应该穿什么衣服?”。 没有人可以回答,除非他们知道你的年龄、性别、尺码、品味、喜好、国家、当地的天气、习惯、理发、场合等等。所以,在不知道下面几条的情况下,不可能推荐 一种语言的:

  1. 你是否对编程真正感兴趣
  2. 你想解决什么样的问题
  3. 什么硬件和系统是可用的
  4. 你拥有多少时间和学习机会
  5. 所有与上述因素相关的变量

没有人一醒来,在没有任何编程经验的情况下就决定去发展专业性事业。如果你真的对开发感兴趣,选择一个小项目,选择一种语言,挖掘一些教程,然后再开始。SitePoint 上一些参考文章…

  • 构建你的第一个网站: HTML & CSS
  • JavaScript 简介  (网页客户端和服务器端开发)
  • 初学者的 PHP & MySQL Web 开发 (web服务器端开发)
  • Ruby 简介 (web 服务端开发)
  • 聚焦 Python (Python 编程入门)
  • Swift 简介 (原生 iOS 开发)

坚持学习

尽管其他开发者的意见不会与您的情况完全一致,我就 SitePoint 的主要 Web 开发受众提供一点建议:

  • 如果你主要从事前端开发,偶尔尝试后端编码。 可以尝试 PHP、Node.js、Ruby 或任何你感兴趣的语言,然后添加 SQL 到你的技能集中。
  • 如果您主要从事后端开发,可以学习 HTML、CSS 和 JavaScript。 浏览器 API 和数据格式(如 JSON)也是有益的。

框架不算在内! 首先学习语言的基础知识。无论开发社区想法、观点和工具集如何变化,知识依然是无价的。

你可能不想成为全栈开发人员,但至少,它将帮助你欣赏别人的工作,并能让你更好地为项目做出贡献。

本文文字及图片出自 OSchina

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注