为什么程序员会有最喜欢与最害怕的的编程语言?(earthly)

Stack Overflow的2020年调查结果对“最恐惧的编程语言”和“最喜欢的编程语言”进行了排名。这两个排名都来自这个问题:

在过去的一年中,您完成了哪些编程,脚本和标记语言的广泛开发工作,并且在接下来的一年中又要进行哪些工作?(如果您既使用了该语言,又想继续使用该语言,请选中该行中的两个框。)

前15种可怕的编程语言:

VBA,Objective-C,Perl,Assembly,C,PHP,Ruby,C ++,Java,R,Haskell,Scala,HTML,Shell和SQL。

最受欢迎的15种编程语言:

Rust,TypeScript,Python,Kotlin,Go,Julia,Dart,C#,Swift,JavaScript,SQL,Shell,HTML,Scala和Haskell。

旧代码总是最糟糕的

旧代码是最糟糕的。在经过三年多的积极开发的代码库中,想找到我一个文件,很难跟踪。现实世界中的代码会不断发展以适应其特定领域,并且随着这种行为的发展,它变得更加复杂且难以理解。原因很简单,我首先从乔尔·斯波斯基(Joel Spolsky)听说过。

认为旧代码是一团糟的原因是由于基本的编程基本法则:阅读代码比编写代码难。乔尔·斯波斯基(Joel Spolsky)

我们称其为乔尔定律。在此前提下会有很多事情发生。为什么大多数开发人员认为他们继承的代码是一团糟,并想将其扔掉并重新开始?

这是因为从认知上讲,扔掉它至少比理解代码库所付出的辛苦工作要少,为什么许多重写注定要失败?因为使代码看起来凌乱的大部分原因都是至关重要的,因此随着时间的推移而进行的改进很少。如果没有简化它们的计划,您将回到起点。

在编写代码时很容易理解代码。您正在执行它,并在运行时对其进行完善,但是,在事后阅读代码就很难理解代码。代码本质上也是复杂的,这种复杂性也导致痛苦的代码质量问题。这可能就是为什么PR积压的问题持续存在的原因吗?PR评论是一种只读活动,如果您尚不具备代码当时工作模型,那么旧很难做得很好。

如果许多现实世界的代码被不公平地认为是一团糟,那么编程语言是否也会被不公平地判断?如果您在最喜欢语言Go中构建新事物,但必须维护庞大的20年历史C ++代码库,您能否对它们进行公平排名?

棕色和绿色语言

对于2016年已经进入排行榜前20名的语言,现在更可能使已经将其用作维护工作的语言,我们称它们为棕色语言;2016年未进入前20名的语言更有可能用于新项目中。我们将这些称为绿色语言。

棕色语言:您更可能在现有软件维护中使用的语言列表:Java,C,C ++,C#,Python,PHP,JavaScript,Swift,Perl,Ruby,Assembly,R,Objective-C,SQL

绿色语言:您更可能在新项目(即绿色项目)中使用的语言:Go,Rust,TypeScript,Kotlin,Julia,Dart,Scala和Haskell

现在我们可以回答这个问题:人们是喜欢还是害怕他们所陈述的语言,还是只是在害怕遗留代码?

将棕色和绿色语言与前面最喜欢和害怕的语言两个调查结果合并后,发现:

  • 在最害怕的语言中几乎都是棕色语言。
  • 在最喜欢的语言中有54%是绿色。
  • 人格中的另一个缺陷是每个人都想要建造而没有人想要维护。―库尔特·冯内古特(Kurt Vonnegut)

    没有人喜欢维护别人的代码。而且,由于乔尔定律:阅读现实世界很难编写代码。构建新事物很有趣,而使用新语言的频率更高。

    编程语言炒作的生命周期

    喜爱的编程语言被大量使用,这导致代码维护,这又使人们不喜欢它们,从而导致人们寻找更绿色的牧场并尝试更新的牧场语。流行的框架也可能遵循此生命周期。

    Ruby是2007年最热门的语言,尽管今天它确实有更多竞争,但Ruby是比那时更好的语言。然而现在,它令人恐惧。在我看来,部分差异在于现在人们需要维护14年的Rails应用程序。这使得Ruby的趣味性不如所有新项目。因此,请注意Rust和Kotlin以及Julia和Go:您最终也会失去光环。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年3月18日
    下一篇 2021年3月18日

    相关推荐