要是优达菌提起“哪个编程语言才是最好的”这个问题,相信大家都得争得打破脑袋才行。今天我们要搁置争议,只聊聊哪些编程语言就是个大坑,你最好别学。不过,在这之前,我还是要说一下,我即便是死了,被钉在棺材里了,也要在墓里,用这腐朽的声带喊出:“ Python 才是最好的编程语言!” (被拖走
“世上其实只有两种编程语言,一种是大家一直喷它难用的,一种是根本没人用的。” —— C++ 的作者 Bjarne Stroustrup 如是说
咳咳,那么,什么样的语言算是“没人用”的呢?我们决定从3个方面综合分析,即:
1、使用这个语言的用户数量少;
2、招聘这个语言相关工作的职位少;
3、这个语言的相关讨论少。
这三方面分别代表了一种编程语言的总体用户增长状况、就业市场前景、社区活跃度——要是这三个指标都堪忧,那你最好还是早点弃坑为妙。
好了,不卖关子了,我还是先放出最后的分析结果吧。我们奉劝各位在2018年千万别碰的 5 种编程语言是:Dart、 Objective-C、 CoffeeScript、 Lua 以及 Erlang 。声明:我们并不是在毁谤这些编程语言的有用性,也不是在质疑它们的价值,本文仅仅是对这些编程语言的总体用户增长状况(也就是程序员有多愿意用这个语言开发产品)、就业市场前景、社区活跃度等三大指标进行量化分析和横向对比。
#1 Dart
Dart 是 Google 在 2011 年推出的一种开放源代码的,面向对象的通用编程语言。它常被用来开发 web 应用,服务器和移动应用,还被用在物联网设备上。
注:本文撰写时,Google Flutter SDK 还未正式发布,所以这一新的开发框架能不能给 Dart 带来起死回生的第二春,还要看它在 2018 年的表现。
Dart 的社区活跃情况
诚然, Dart 是一门比较新的编程语言,有人可能会觉得,一门新语言的用户量不大,应用不太广,也无可厚非呀?但看看,跟它同期的还有 Kotlin 和 Elixir,而在它之后还有 Elm 、 TypeScript、Rust 和 Swift 等。特别是把 Dart 和新生的 Swift 一比,差距就相当明显了。
从6大不同社区平台的活跃情况来看,虽然 Dart 的数据也不是特别低,但相对来说都大大低于跟它同期的 Kotlin、Elixir、TypeScript 以及 Swift 等编程语言。
Dart 的增长情况
在增长情况方面,Dart 的表现相对于它在社区和就业方面的成绩来说,还算尚可。比如,Dart 的用户数量曲线总体保持稳定,比起 Elixir 和 Rust 来说,Dart 在 2014 年还有小小的提升。这和 Swift 形成了鲜明的对比——从发布以来,Swift 的大起大落就一直非常具有戏剧性。
Dart 的就业市场
从就业情况方面分析,Dart 基本上已经死透了。上图是在技术栈中包含有 Dart 语言的公司数量统计。虽然有 Google、Wrike、Workvia 以及 Blossom 这样的公司还在使用 Dart,但总体上来说,并没有很多职位是面向 Dart 开发者的。
对于 Dart 语言的开发者,好消息是,对需求 Dart 语言的职位来说,竞争会不那么激烈。毕竟用这门语言的人比较少,如果企业有相关的需求,那跟你竞争的人也多不到哪里去。然而,坏消息是,这种类型的职位需求也没几个。
所以,为啥我最好别学 Dart?
Dart 是由 Google 开发并维护的编程语言。虽然 Google 在推广 Dart 上不遗余力,但这反而成为了一个痛点:这玩意的存活和发展太依赖于 Google 了,导致 Google 以外的程序员不是太敢以它为主要开发工具。
另外,虽然 Dart 也有两把刷子,但在如今的编程世界里,它的价值并不显著。有业内人士认为,Dart 会死的主要原因是“不管它的特性有多牛,或者宣称用它进行 Web 开发有多简单,事实上,类似的编程语言海了去了,它们也都这么说…所以 Dart 看起来也并不怎么脱颖而出嘛。”
虽然除 Google 外,确实也还有一些企业在使用 Dart ,但如果你认真分析,你就能发现,一门好的编程语言需要的“用的人多”、“社区活跃”、“钱景广泛”这三点,Dart 没有一项能挨得上边——这也是为啥我们把它放在榜首的原因。
#2 Objective-C
Objective-C 是一门面向对象的通用编程语言,最初是在 1984 年问世的。你对它应该会有点印象——这是在 Swift 面世之前,用来给 OS X 和 iOS 系统编写应用程序的官方指定语言。虽然许多程序员已经改用 Swift,还是有人依旧深爱着 Objective-C。
Objective-C 的社区活跃情况
如今 Objective-C 在社区活跃度方面排行倒数第三,仅仅优于 CoffeeScript(倒二)和 Dart(倒一)。虽然在 Stack Overflow 和GitHub 仓库的数量上还算不错,但在其他社交媒体平台上,Objective-C 已经褪去了往日的光环,变回了小透明。
虽然和 Erlang 相比, Objective-C 的仓库数量确实比较多,但这似乎主要还是归功于 Objective-C 那业已不再的往日荣光——毕竟它曾是 Apple 官方的指定编程语言,推出的时间也比 Erlang 早了两年。然而,自从 Apple 有了新欢以后,虽然还有程序员在用 Objective-C 进行开发,但明显已不再那么倾力投入,毕竟在 Swift 的光环之下,宝刀已老的 Objective-C 能活多久还得打个问号。
Objective-C 的增长情况从图中我们可以明显看到,自从 2014 年 Swift 问世后,Objective-C 就一直在走下坡路。然而,每年 Objective-C 还是会有一些小小的反弹——然而这也无法阻止它一步一步走向衰亡。这和 C 语言每年上下波动起伏的曲线形成了鲜明的对比。
Objective-C 的就业市场
虽然廉颇老矣,又有强敌 Swift 环伺, Objective-C 在就业市场的表现还算相当不错了。它在使用的企业数量中排行第四,在程序员岗位数量上排行第五,总体就业市场评分排行第六。
对于目前 Objective-C 开发者来说,需要维护用 Objective-C 写成的旧代码的企业还是很多,职位也不少。然而,由于历史原因,会 Objective-C 的程序员总体上更多,所以目前基本上算是买方市场,这门技术并不算奇货可居。
所以,为啥我最好别学 Objective-C ?
虽然目前 Objective-C 的就业市场还算吸引人,但建议你别学 Objective-C 的主要理由是,这门语言已经不再发展了。
如果你是新接触编程,正在考虑学哪门语言,你可能会发现,当你学完 Objective-C 的时候,许多企业可能已经更新了技术栈,不再需要这方面的职位了。这就使得学 Objective-C 变成一项风险巨大而回报堪忧的精力投入。
不仅如此,Objective-C 在用户增长和社区活跃度上都不理想,这表示主流开发者已经逐渐抛弃了它,它将慢慢被 Swift 所代替。既然如此,你不如直接去学 Swift 对吧?
#3 Coffeescript
Coffeescript 是 2009 年发布的一个编程语言,它是 javaScript 的转译语言。它的语法糖(指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用)受 Ruby、Python 和 Haskell 的启发。Coffeescript 不会在编译过程中进行解释. 已有的 JavaScript 类库可以无缝地和 CoffeeScript 搭配使用。事实上,甚至有开发者声称,你应该用 CoffeeScript 代替 JavaScript。
Coffeescript 的社区活跃情况
在社区活跃度方面,CoffeeScript 在这20门编程语言中只拿到了倒二,比 Objective-C 还惨,只比 Dart 高一点。特别在 GitHub 仓库数量和 StackOverflow 的标签数量上,CoffeeScript 的表现实在是太惨淡了。最后,它也只是在推特上稍微表现好点,粉丝数大约是 18400 个。这说明大家似乎只是围观一下 CoffeeScript 的各种新闻,真正投入使用的寥寥无几。
CoffeeScript 的增长情况
CoffeeScript 的就业市场
在就业市场方面,CoffeeScript 总体评分排行第九。在技术栈里采用 CoffeeScript 的公司数量接近1000个,排行第七;在开发人员数量方面,CoffeeScript 排行第八,居于中等。
对现有的 CoffeeScript 开发者来说,这样的评分算是个好消息。这意味着有相对足够数量的职位,而竞争这些职位的人不算太多。同时,不像可怜的 Objective-C,起码目前还没有哪种语言是专门来挤占 CoffeeScript 的生态位的。
所以,为啥我最好别学 CoffeeScript ?
类似 Objective-C ,CoffeeScript 在社区活跃度和用户增长情况方面都不太乐观。从社区活跃情况来看,程序员们对这门语言并不是太热衷。
另一方面,CoffeeScript 也已经发布了快10年了,各种新的语言,以及更新版本的 JavaScript 带来了更新的特性,这使得 CoffeeScript 相对竞争力不足。虽然并没有一个主要的竞争者来直接代替它,虽然还有一些技术栈采用 CoffeeScript ,但程序员的目光更多地还是落在哪些新兴的事物上,对 CoffeeScript 的关注和依赖与日俱减——对 CoffeeScript 来说,这可不是什么好兆头。
#4 Lua
Lua 是一款开放源代码的,多范式可嵌入脚本语言,在 1993 年由里约热内卢天主教大学的一个开发团队创造。目前 Lua 在游戏和 web 服务器领域十分热门。虽然 Lua “年事已高”,也没什么特别值得吹捧的热点,但许多程序员依然在各种地方使用 Lua 。
Lua 的社区活跃情况
Lua 的社区活跃度总体排行第 17 位,超过了 Dart、Objective-C 以及 CoffeeScript,仅次于 Elm。虽然 GitHub 上 Lua 仓库的数量排到第 15 位,但被 fork 的数量居然只有倒数第二。
在 Facebook 和 Freenode IRC 上,Lua 的社区活跃情况还算不错,排到了第九位。这意味着虽然 Lua 在总体上虽然并不是那么热门,但还是有一些忠实粉丝的。虽然我们还是不建议新手从 Lua 开始学编程,但起码 ,Lua 还不算没人疼没人爱。
Lua 的增长情况如上图所示,Lua 的用户增长情况还是相当的稳定。在过去的五年中,虽然 Lua 没有太大的衰落,但基本上也没有什么增长。和其他类似语言(比如 Perl 和 Haskell )一样,Lua 也基本上算是宝刀已老,趋于停滞。和它相比,可能是受数据科学热潮的影响,同样是 1993 年问世的 R 语言近年来却不断攀升。
Lua 的就业市场Lua 在职位需求方面排行第 18 位,而开发人员数量排行第 12,总体就业市场评分排在第 17 位。虽然类似 9GAG 和 Shopify 这类的企业把 Lua 列在他们的技术栈里,但 stackshare.io 的数据显示,Lua 的就业市场弱于其他同时期问世的语言。
和我们分析的其他语言不同,Lua 的开发者目前是供过于求,这对求职者来说,可不是什么好消息。
所以,为啥我最好别学 Lua ?
确实,Lua 在游戏脚本和 Web 服务领域的应用还是十分广泛的,但它在社区活跃度和就业市场方面的疲软态势不容乐观。
总体上说,Lua 的发展已经停滞不前,就业市场供过于求,社区也缺乏亮点。如果你学 Lua 是希望能给自己带来一份竞争不多而的潜在工作机会,希望能融入活跃的开发者群体,那 Lua 估计并不适合你。
#5 Erlang
Erlang 是一门 1986 年问世的函数式编程语言,当时就自带运行时垃圾回收、代码热更新和容错处理等先进机制。Erlang 被广泛用于电讯、银行、电子商务、数字电话和即时通讯领域。
Erlang 的社区活跃情况Erlang 在社区活跃度方面总体排第 13 位,虽然被 fork 的项目很多,但 GitHub 仓库总数只有第 17 位,在我们调查的所有函数式语言中,它排在倒数第二,只比 Elm 高一点点。
在社交媒体平台的表现上,Erlang 在 Freenode IRC 平台的表现最好,达到第七名。或许是因为 Erlang 的网站上直接给了一个面向程序员和潜在学习者的 IRC 频道地址。
Erlang 的增长情况
Erlang 的用户群在近5年不断减少,虽然偶尔有一些上扬,但总体曲线还是不断向下走。但对于纯函数式语言来说,这样的衰落不是特例,Haskell 的情况也一样。不过这也可能是因为这些语言都太过古老了。新的函数式语言比如 Clojure 就相对发展的比较好。
Erlang 的就业市场Erlang 在就业情况排行中位居第 16 位。虽然开发人员数量在排第 16 位,但采用 Erlang 的企业数量排到了第 13 名,包括 Heroku、Whatsapp、Adroll 在内的许多企业都使用 Erlang 来满足他们的许多编程需求。
如果你是一名未来的 Erlang 程序员,前景看起来还是不错的,职位还是有一些,竞争的人也不多。如果你真的对这个语言非常热衷,那估计也不会太糟—— Erlang 在就业市场上的表现也还可一战,不论新公司还是老企业都有在用它。
所以,为啥我最好别学 Erlang ?
Erlang 已经面世大约32年了,这可是我们分析的20中编程语言中最老的一种(Haskell 在 1990年发布,比它迟了4年)。虽然也有一些初创企业采用 Erlang,但大部分使用 Erlang 的企业都是那些陈年的老牌大公司。这说明创新领域对 Erlang 本质上不太看好。
另一方面,受到新兴的函数式编程语言(如 Elixir 或 Elm)的竞争,Erlang 的生态位正在逐步被蚕食。虽然 Erlang 确实很有用,但对新手来说,它那陡峭的学习曲线可是一点都不友好,足以吓退许多只想搞点副业项目的程序员,以及希望零基础入门的新手。
虽然还有许多用 Erlang 写的老代码需要维护,但这门语言的总体曲线表明,它的春天已经过了。如果你希望在今年内学一门新的编程语言,你最好别选 Erlang 。
结论
在最后下结论前,我们还要再重申一次,本文中提到的 5 个编程语言可能只是在我们这次的分析指标中,竞争力较弱,但在它们各自的应用领域中还是能很好地发挥作用的。如果你看了这篇文章以后,突然特别想学这些语言——单纯为了好玩,或者为了搞一些次要的小项目,而不是作为求职谋生的主要技术的话——那请务必去学一学,试一试!
看完,还是学 Python 吧~安利 Udacity 的 Python 入门课程,硅谷导师、中文字幕,还有很多好玩实用的项目等你来挑战,了解下?
Python 入门 | Udacitycn.udacity.com