|
最不受欢迎 / 最令人畏惧的编程语言有哪些?这些编程语言为什么令人畏惧?对它们的评价是否公正?
在 StackOverflow 的 2020 年度开发者调查中,有一张表格,显示的是“最受欢迎、最令人畏惧和最想要的编程语言”。最受欢迎的和最想要的编程语言,嗯,是有点无聊。倒是那个最令人畏惧的就有意思多了。正如托尔斯泰(Tolstoy)所说的:“幸福的家庭都是相似的,而不幸的家庭则各有各的不幸。”(All happy families are alike; each unhappy family is unhappy in its own way.)
那么,这些令人不快的、不受欢迎的编程语言都是哪些呢?为什么程序员如此害怕使用这些编程语言呢?如果有机会的话,很难不会加入一些理论,甚至说一些不明智的话。或者为一些因为错误的原因而不喜欢的编程语言辩护。
更准确地说,StackOverflow 统计的是“正使用该语言或技术进行开发,但没有表示有兴趣继续使用的开发人员的百分比。”这听上去没有“恐惧”那么可怕;“没有表示有兴趣继续使用一种语言的工具”这一提法的本身就是一种相当模糊的畏惧暗示。我做过的很多事情我都不想再做了,包括编写产生 shell 脚本的 troof 宏。但我们不用担心这个,对吧?
最不受欢迎的语言列表与最广泛使用的语言列表相似,如 RedMonk、Tiobe 和 O'Reilly Learning 上的搜索结果所示。这一点也不奇怪;C++ 之父 Bjarne Stroustrup 曾说,“世界上只有两种语言,一种饱受诟病,另一种没人使用。”(There are only two kinds of languages: the ones people complain about and the ones nobody uses.)这话说得很有道理,至少在这项调查中是这样。如果你有数百万用户,要做到让很多人不喜欢你并不难。因此,在不受欢迎的语言列表中看到 C 这样的多年老牌语言和像 Java 这样的新秀也就不奇怪了。
Kevlin Henney 和我认为,最不受欢迎的语言列表也反映了从事大型遗留项目的程序员的意见,而不是短程序。不喜欢某一门编程语言的原因可能是“道德连坐”:因为不喜欢一个庞大的、过时的、文档最少的代码库,以及每次修复一个 Bug 都会破坏其他东西的架构风格。因此,在榜单上看到曾经被广泛使用但却不再受欢迎的编程语言也就不足为奇了。人们也很容易爱上一门古怪的语言,这种语言对于某个项目来说非常完美,但你再也见不到它了。(就拿我来说,这种语言是 Icon。你试试吧,你可能会喜欢这门语言。但它却不在任何人的清单上。)
最令人惊讶的是当一种语言不合时宜的时候:当它比你预期的明显更多或更少不受欢迎时。这就是我要思考的问题。因此,在进行了初步的讨论之后,下面是一些讨论的结果:
Java
自诞生以来,Java 就一直是人们爱恨交加的语言。我参加过 USENIX 会议,在会议上,James Gosling 第一次谈到 Java(远在 1.0 之前),人们离开会议室后都在谈论 Java 是有多么可怕 |