【问题标题】:Which programming languages have the most publicly available libraries?哪些编程语言拥有最公开可用的库?
【发布时间】:2021-10-06 17:00:21
【问题描述】:

我曾假设会有一个很容易找到的编程语言列表,该列表按它们拥有的库的数量排序。我一直找不到这样的东西。有没有办法找到或制作这样的清单?具体来说,前 5 名是什么?我知道这需要定义什么是库,什么不是库,但我很震惊地发现我什至找不到这样的列表。

【问题讨论】:

  • 这里的问题是大多数编程语言在管理和存储包方面都有自己的偏好。即使我们跳过托管在 github 上的大量软件包(这很难计算)和私有 repos。例如。其中一些:1)PHP - packagist(和其他)2)Ruby - ruby​​gem(和其他)3)C++ - vcpkg(和其他)......所以,这里的问题是组合和比较来自很多不同的来源。更糟糕的是,它没有任何科学意义)。我的猜测:更流行和最古老的语言(C/C++、Java、JavaScript 等)将位居榜首。
  • 此外,由于标准库中缺乏功能,某些语言需要更多的库。具体来说,C 有几十个或几百个链表实现,因为它的库中没有/很少有标准的“容器”类型的结构。所有这些都是非官方的,因此计算这样的库毫无意义。

标签: package language-comparisons


【解决方案1】:

这是一个有点困难的问题,因为它取决于您将什么视为公开可用的库。一种方法是检查 GitHub 上最常用的语言。查看The 2020 State of the OCTOVERSE,前三名分别是:

  1. JavaScript
  2. Python
  3. Java

【讨论】:

    【解决方案2】:

    我不确定是否有任何关于哪些语言拥有最公开可用的库的合理、全面和可信的统计数据,至少涵盖了大量的编程语言(甚至不说关于所有种语言)。

    因此,您的问题很可能会导致基于意见的答案,您应该在 Stack Overflow 上avoid asking such questions

    我想到的唯一可靠资源是TiobeRedmonk。 p>

    【讨论】:

      【解决方案3】:

      查看网站http://www.modulecounts.com/

      前三名是:

      1. JavaScript
      2. Java
      3. Python

      请注意 - 拥有更多库并不意味着它更好。

      很大程度上取决于用途。

      【讨论】:

      • 这是一个有趣的数据集。我选择了一个最近的日期并删除了 NA 值。 node.js 脚本的数量令人震惊。 imgur.com/aymIt5K
      【解决方案4】:

      我根据编程语言在一般情况(否则未指定)或特定领域解决问题的效率来排名,例如:

      • 机器人
      • 移动计算机
      • 数学与科学
      • 网页开发
      • 嵌入式系统
      • 系统编程
      • 网络和基础设施编程
      • 数据库编程

      考虑以下问题。根据IEEE,编程语言的流行度是通过量化这些指标来衡量的:

      • Google 搜索,编程语言的点击次数
      • Google 趋势,过去一年至今编程语言的趋势
      • 在 Twitter 上讨论编程语言
      • Github 上针对特定语言的新的活跃存储库
      • 所以
      • 黑客新闻
      • 对职业建设者和 IEEE 工作委员会的需求

      结果是这样的

      R 和 javascript/typescript 在同一个列表中。但是,它们主要用于不同的领域。这并不意味着 R 不能用于编写通常用 javascript 编写的解决方案,它只是意味着它是不适合这项工作的工具。

      关于这个的更多细节。

      一般用途:

      1. Python ~ 易于使用、易于学习,以数据科学着称。
      2. JAVA ~ 自从引入 JVM 概念(在任何架构上运行代码)以来,深受企业和客户端/服务器拓扑的欢迎。
      3. C++ ~ 快。我的意思是真的很快! game engines 是用它构建的。

      嵌入式系统和程序:

      1. C ~ 内存使用率低,文件小。 2011 年之后制造的每辆汽车中的每个微控制器都可能运行有 C 程序
      2. 组装 ~ 但不是那么多,因为需要低级微处理器知识
      3. Rust ~ 由于内存泄漏处理而非常有前途。

      网页:

      1. Javascript~每个动态网站都有js
      2. HTML ~ 我不明白这是怎么漏掉的

      IaaS:

      1. Golang ~ 没有什么能比得上 Go

      重要的是要理解,如果一个新的编程语言库尚不存在,则该领域内的问题是开发新的编程语言库所必需的。而不是反过来。

      人们也可以争辩说,技术标准的持续改进会导致新的和改进的库以更快的速度出现。

      【讨论】:

        猜你喜欢
        • 2011-05-02
        • 2014-05-09
        • 1970-01-01
        • 1970-01-01
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多