【问题标题】:Using Stack Overflow to track language popularity使用 Stack Overflow 跟踪语言流行度
【发布时间】:2010-01-31 19:15:06
【问题描述】:

我认为通过查看 Stack Overflow 来跟踪编程语言的流行度是个好主意。我选择了 20 种语言,计算了每种语言的问题数量,并将结果放在表格中。

我使用了一个非常粗略的算法并编译了the results on my blog

我根据针对特定语言提出的问题数量运行算法,但如果 Stack Overflow 的开发人员可以在某处为其创建页面,这可能是有用的信息。

他们可以使用投票和答案以及问题来衡量一种语言的流行度,他们还可以将查询限制在特定月份,以了解当前流行度而不是历史流行度。

有用吗?有意义吗?

(显然,SO 没有播种(见评论),所以从这个角度来看,对 .NET 没有偏见)

【问题讨论】:

  • 来自您的帖子:“我认为它是从 .net 问答论坛中播种的,该论坛曾经位于 Joel On Software 页面上”——不,不是。 Jeff 最初想要这个,但决定反对它从一开始就没有 .net 偏见。 Beta 开始时,SO 完全是空的。
  • 好点,也来自@peterchen。除了计算问题外,您可能还想衡量每种语言有 >=1 答案且代表 >= 0、>0 的问题的百分比,或此类答案的中位数。我们可能会发现某些主题会产生很多问题,但答案很少,或者很少有好的答案。人们问问题是因为他们是快乐的用户、好奇的还是沮丧的?此外,C++ 14 或 Python 3.x 等新版本/标准在多大程度上会产生问题? (我们知道,由于迁移,Python 3.x 的生产使用已经滞后,但在 2015 年超过了 50%。

标签: discussion stack-overflow languages popularity


【解决方案1】:

我的印象是 stackoverflow 的读者强烈偏向 Microsoft 堆栈,因此 C# 和相关语言的流行。这不是编程人群的随机样本。

因此,普遍受欢迎是不可能的。跟踪成员资格如何随时间演变或了解您最有可能在这里找到什么或类似的东西肯定会很有用。我想我不是唯一一个等待 DB 转储或至少是 SO API 的人。

【讨论】:

  • +1:这是一个自我提名的小组——不是随机样本。
  • 是的,在我看来也是如此。即使人们首先会猜到相反的结果(因为它的开放思维)
  • 我认为这是因为许多读者来自 Jeff 的博客,他本人是 Microsoft 堆栈开发人员,并且(至少曾经)在那里提出了特定的 C# 建议。所以很可能他的大多数读者也是在那个堆栈上开发的。
  • 另一位联合创始人是 Joel Spolsky,也是一名 MS 堆栈开发人员,因此他的读者也偏向于 MS 技术。
  • 那么在现实世界中,MS 和非 MS 开发人员之间的区别是什么>
  • 我不知道,但如果有人相信其他语言流行度测量网站,如 langpop.comtiobe.com/index.php/content/paperinfo/tpci/index.html,它肯定不会像这里的那样。
  • 你能相信TIOBE吗?
  • 当然,比纯 SO 样本更多。它当然有自己的缺陷,但偏见不是其中之一。
【解决方案2】:

您可能衡量的是解决语言问题的难度(即人们需要使用 StackOverflow 的可能性),而不是使用的普及程度。

因此,自鸣得意的 Lisp 小伙伴们提出了几个问题 :)

【讨论】:

  • 是的,我考虑过。
  • 另外,你必须扣除纯粹争论的问题。 “我可以在一行 Perl 中做到这一点,Python 有什么问题让它变成两行?”问题。
  • 按照这个标准,C# 比 C 或 C++ 难很多
  • 我不确定您是否必须排除争论性问题。它仍然表现出对该语言的兴趣。
  • 不同意。您正在衡量通过在 StackOverflow 上提问 解决语言问题的难易程度。换句话说,C# 开发人员喜欢 StackOverflow,因为问题很快就会得到很好的答案,有时来自世界专家。不能证明世界上有更多的 C# 程序员,只是证明有很多 C# 程序员在 StackOverflow 上闲逛。主要是因为他们被两位推出它的微软博主所吸引:Jeff 和 Joel。
【解决方案3】:

不是真的。

您将始终跟踪在 stackoverflow 上询问了多少关于语言的问题。

如果我问起 Installshield,我问是因为它“受欢迎”,还是仅仅因为我被锁在它臭臭的腐烂尸体上?如果 C++ 问题持续但显着增加 - 它是否变得更受欢迎,或者他们是否发布了具有新功能的更新? Java 问题的持续减少——人们是放弃了它,还是找到了更多 Java 专家的地方? ADA 问题的跳跃——它只是引起了人们的关注,还是使用它的公司只是改变了它的互联网访问政策?

有很多影响是你无法控制的。

【讨论】:

    【解决方案4】:

    Bayes' theorem。这取决于给定语言 X 读取 stackoverflow 的概率。

    【讨论】:

      【解决方案5】:

      所有这样的样本都会给你一个衡量关于 SO 的下一个问题是关于语言 X 的可能性的度量。它不能可靠地用于确定语言在“现实世界”中的流行度。

      【讨论】:

        【解决方案6】:

        它可用于跟踪 stackoverflow 上的语言流行度。这个数据点不应该用来谈论普遍受欢迎程度。

        但是当这个网站成熟一点时,也许应该将这一数据点添加到例如http://www.langpop.com/

        【讨论】:

          【解决方案7】:

          为了修饰上面的答案,我将补充一点,通过计算 Stack Overflow 问题,您可能正在跟踪以下问题的“受欢迎程度”:

          1. 当代语言,
          2. 存在棘手的极端案例问题,
          3. 由经验不足的程序员使用,
          4. 在 Windows 上,
          5. 收听播客的人,
          6. 阅读博客,
          7. 不要在相互支持的开发团队中工作...

          ;-)

          【讨论】:

            【解决方案8】:

            我发现这样的研究非常有趣。就在最近,谷歌启动了“Google Flu Trends”,他们使用搜索流感的人数作为该州感染流感人数的指标。您可以查看所有 50 个州的地图,了解流感流行的传播范围和程度,以便拥有预警系统。

            我认为这会很有用。它可能不能直接表明一种语言的流行程度,但这并不意味着这些信息没有用。就实施而言,我认为如果我们可以有类似于我们如何在图表上选择我们的声誉的方法,那么能够选择一个时间范围并查看各种语言的叠加折线图及其问题频率将是很不错的。

            【讨论】:

              【解决方案9】:

              几分钟前刚刚完成了这项工作,在查看您的帖子之前,比较了 Python 和 Ruby。 Python 的标签频率大约是 Ruby 的两倍,这似乎是正确的。因为 Python 是 Ruby 的长辈。

              【讨论】:

              • 但这意味着 Python 的流行度仅为 Ruby 的两倍,我认为这大大高估了 Ruby 的流行度。我也可能是错的,因为我自己的指标是“我认识的人和我读过的博客”。 :)
              【解决方案10】:

              了解受欢迎程度的更好方法是发布一个社区 wiki 问题,其中包含各种选择的答案,设置一些投票准则, 票数应该能公平地表明流行的语言

              【讨论】:

                【解决方案11】:

                那么,如果我们都问 10 个 Cobol 问题,它会是最流行的语言吗? ;-)。

                【讨论】:

                • 是的,但只有在使用 Cobol 时,您才有可能提出有关 Cobol 的问题。而且你用得越多,你就越有可能使用它。
                • ...你可能会问问题。
                • ...或原始地尖叫并改变语言/工作
                【解决方案12】:

                不——除非绝大多数程序员都在这里提问。即便如此,也会存在比例问题:很少问题是否意味着一种语言不受欢迎,或者它很容易学习,或者有太多可用的教程以至于不需要提问?

                简而言之,您必须考虑一些难以衡量的属性才能估计 SO 用户的受欢迎程度,并且不能保证我们代表了编程世界的其他人。将表格中的 Java 与 PHP 进行比较可以很好地表明它不具有代表性。

                【讨论】:

                  【解决方案13】:

                  是的,我喜欢统计。不能有足够的。只需轻松找到支持我当前主张的人即可。 :)

                  【讨论】:

                    【解决方案14】:

                    我认为不是。

                    首先:很多编程语言也有其他论坛。例如,Perl 在这里的低受欢迎度(PerlMonks,一个 Perl 特定站点.

                    由于人们在语言方面存在问题,因此提出的问题数量更多。并非所有语言都同样难。 :)

                    我认为更好的衡量标准可能是对问题的回复数量和/或问题得到回答所需的时间。或者不。

                    【讨论】:

                    • +1 我认为非常好的评论
                    【解决方案15】:

                    如果您包含来自更多网站的信息,这可能是一个有用的数据点。您可能会纳入测量的其他一些数据可能是:

                    • SourceForge 和 Google Code 等开源网站上的语言流行度。
                    • 编程博客上提到的语言的频率(所有这些,不仅仅是流行的)。
                    • 流行 IDE 中的语言支持调查(例如,您可能能够找出为 TextPad 下载 Perl、Ruby 和 Erlang 插件的次数)。

                    通过一些数据挖掘,您可能会想出一个有用的指标。​​

                    【讨论】:

                      【解决方案16】:

                      如果 SO 成长为一个相当大的社区并继续添加语言和多样化,而不是倾向于使用一组特定的技术,我有兴趣将结果包含在 http://langpop.com 中。顺便说一句,我一直在寻找其他很酷的新东西来添加到该网站,所以请告诉我(最好通过电子邮件)。

                      谢谢, 戴夫

                      【讨论】:

                        猜你喜欢
                        • 2011-02-22
                        • 1970-01-01
                        • 1970-01-01
                        • 2012-04-26
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多