疯狂的悬崖:栈溢出技术的巨大转变

作为开发人员(或数据科学家,在我的例子中)包括适应不断变化的技术。我并不像我职业生涯开始时那样使用编程语言,我完全希望在几年后使用不同的技术。在Stack Overflow博客上,我们最近谈过受欢迎程度正在下降的技术那些正在成长的,但有时是编程语言,框架,或是技术突飞猛进或者从悬崖上掉下来。有时技术对软件行业的影响会发生巨大的变化。在这篇博文中,让我们来探讨一下堆栈溢出问题中最引人注目的涨落。通过标签从网站开始。

最显著的增长

为了找到最大的增长点,让我们来看一看逐年变化在问题中要求在堆栈溢出中标记。什么标签的变化百分比最高?在任何一年?

增加堆栈溢出技术

此分析包括至少有10000个问题的堆栈溢出标记,不包括以数字结尾的标记,如IOS8.

在这个分析中有两个标签很突出,两者都有巨大的增长,它们有一些共同点。Swift是苹果开发iOS应用程序的语言,它是Objective-C的继承者,以及角度的堆栈溢出上的标记用于比角晶状体标签。这两种技术都以惊人的速度发展,产生了巨大的影响,因为它们是现有开发人员社区的自然下一步。(注意角晶状体增长得非常快,虽然,在堆栈溢出的情况下,它的年增长率是有史以来第10高的。)

其他技术同比增长相对温和,但这些都是我们这个行业能发生什么样的事情的有趣例子。

Android Studio是面向移动开发者的IDE;它于2013年首次发布,并迅速流行起来。这个AngularJS指令标签明显与角的大量生长有关。这个iPad苹果公司于2010年宣布,以及机器学习库张力流谷歌于2015年作为开源软件发布。我们从这个情节中看到了一项新技术取得的巨大成功。

最大幅度下降

硬币的另一面呢?哪些标签的降幅最大,在某一年?

减少堆栈溢出技术

就像第一个情节,这包括至少有10000个问题的堆栈溢出标记,不包括以数字结尾的标记,如IOS4XCODE6.

js是一个javascript框架,由于该生态系统的典型残酷生命周期,iPhone的游戏引擎cocos2d已经失宠。Silverlight已被Microsoft弃用,flex是flash的框架,也在离开的路上。这两个都在我们的帖子里从8月份开始的技术缩减.这个对象关系映射标签具有比其他标签更高的峰后活动水平,但比十年前要低得多。

这里的parse是一个非常有趣的例子。Parse是2013年被Facebook收购的移动后端开发平台;Facebook宣布关闭平台2016年1月。同时,解析是开放源代码的。我喜欢把解析作为例子的反面,比如swift,在那里宣布了一项新技术;Parse正在成长,显然很受欢迎的平台及其模板法宣布。

持续增长

技术可以像我们讨论过的那样发生巨大的变化,但有些技术的增长速度更为稳定。自2010年以来,哪些堆栈溢出标签的增长最为持续,至少5年后有问题吗?让我们看看至少有10000个问题的标签的年平均增长率,并找出多年来一直在高速增长的技术,不仅是在突发事件中。

栈溢出技术的发展

在这里我们看到第一 角度的标签,以及其他的javascript生态系统成员,如typescript和meteor。其中一些技术与数据科学和机器学习的发展有关,包括熊猫以及数据文件标签。其他公司在软件行业占有独特的地位,如无处不在的搜索引擎弹性搜索和游戏引擎的统一。这些技术多种多样,但在过去的5到7年里,它们都以强劲而稳定的速度增长。退房堆栈溢出趋势工具来查看它们的生长模式。

在堆栈溢出处,我们了解软件行业的技术是如何上升和下降的,我们有数据可以直接看到这些变化。我们利用我们的数据和专业知识帮助我们的客户与开发人员接触时做出更好的决策.看看我们如何帮助你!

作者

朱丽亚雪橇
数据科学家

相关文章

评论

  1. 我不确定2014年快速使用量激增有多戏剧性,在此之前它并不存在。

    1. 好,这就是…重点。我不是在开玩笑。我研究了许多技术及其增长率。哪个增长最快?大多数技术的增长速度不如这些。你可以去看看,如果你喜欢,喜欢去:https://亚博安全吗insights.stackoverflow.com/trends?标签=去

      1. 马修布里奇丹 说:

        (不是你回答的波斯人)我明白你的意思,但我认为,当它基本上是由公司赞助的替代品时,情况会有所不同。我禁不住想知道,目标-C->Swift转换是否更像IO6->7->8更改(不包括在内),而不是说,围棋的崛起。可能是一个有趣的分析(也可以比较说,Android版本取代其前辈的速度有多快,以及AngularJS交叉的速度有多快)

        1. 这是一个非常公平的观点,我确实在帖子里指出了这一点。Swift和Angular都是现有开发社区的自然下一步,不是什么全新的东西。

  2. 维塔利阿布佐夫 说:

    好的研究。尽管所问问题的数量是平台增长的一个代理指标,有时也代表了开发人员的困惑程度。事实上,我们在所谓的增长列表上看到JS的东西是值得注意的。

    1. 艾伦冈萨雷斯 说:

      我很确定AngularJS飞速发展,因为从AngularJS到Angular2的开发人员都搞混了,此外,文档还缺乏“foo bar”示例(相当无用)。

  3. 罗伯特·哈维 说:

    人们用什么代替ORM?原始SQL?

    1. 帕维尔·布拉金斯基 说:

      事实上,这就是我参与的一个项目所发生的事情,但他们希望摆脱这种局面。

    2. 其他模式,如存储库模式

      1. 罗伯特·哈维 说:

        存储库模式只是数据映射器上的一个抽象层。除非您计划用SQL编写整个程序,您仍然需要将数据库记录转换为对象以供程序使用。见Fowler数据映射器知识库文章。

        1. 这是一次总结的尝试。我以为你在问别人用什么来代替ORM的问题,作为讨论。对,你还需要一个数据映射器,但是我们自己写的,效果很好,每次需要添加域对象时提供模式。我们有一个服务[类]作为每个存储库的接口。模拟来自存储库的数据非常容易。我们所有的SQL都在存储过程中—没有动态SQL。还有很多,但随着时间的推移,它会很好地工作。

    3. 肯麦克威廉姆斯 说:

      当其余的标记都在跟踪实现时,ORM是一个想法。人们现在有了更好的标签;关于Java,我们会找到“Hibernate”,“eclipese链接”,“jpa”…添加“orm”标签真的没有任何帮助。您想知道如何让它在特定的实现上工作。我非常怀疑这项技术是否会下降,但更确切地说,还有很多更好的标签可供选择。其余的标记更不特定于实现(不考虑版本号)。所以他们的追踪应该相当准确。

  4. 泰勒希巴德 说:

    感谢你没有在文章开头放一个大的图形。

    我很高兴看到flex和silverlight急剧下降,虽然我想知道什么样的生长替代标签正在看到。

    1. 是的,我敢肯定!这篇文章分析了同比增长在堆栈溢出时,不是绝对增长。你可以把这看作是问问题,“哪些技术增长最快,相对于前一年他们有多大?”注意在我的帖子里,我区分了AngularJS标签和AngularJS标签,它们的用法不同。正如我在邮报上说的,AngularJS标签的增长速度很快,是年增长率第10高的。这不像其他两个那么快,虽然;角度和角度方向标签都在前6位。

      1. 提姆-克拉克 说:

        罗杰。我在写文章的时候以为你在比较角型/角度型的增长,然后再参考图表(当然没有角度型)。现在我在追踪。谢谢!

  5. 罗夫尔蒂 说:

    有趣的分析,尽管我不知道看问题标签是否是最好的指标。我认为这可能会导致对新语言的偏见,框架,等。我几乎没问过关于stackoverflow的问题,因为大多数问题我都已经被问过和回答过了。我认为,也许看看页面浏览量或投票(或者某种组合的投票度量,意见,和问题)可能会产生不同的情况。尽管这可能不是你想讲的故事。

    1. 确切地!我还认为,当文档比较差时,存在更多的问题,所以这都可以归因于文档的更改!

    2. 这是一个我们经常遇到的问题!我们确实对交通进行了大量的分析,发现在几乎所有情况下,问题的趋势与交通趋势非常接近。我们看不到有很多流量的技术,但是没有很多问题被问到。尤其是对于不断增长的技术而言,这正是我在这里寻找的。

      我们有时会看到交通量和问题趋势有点偏离,这是非常成熟的技术,但这些不是快速增长的技术,也不是我在这里想要分析的。

      1. 谢谢朱丽亚!出于好奇,你有问题和流量之间的相关系数吗?

        1. 没有上下文(哪年?哪些技术?)但对于博客来说,这是个不错的主意。

    3. “我做的大多数问题已经被问过和回答了”

      我认为单凭这一点就可能是语言停滞的迹象。

      1. 贾斯廷欧姆 说:

        语言停滞只是语言成熟的另一种表达方式

        1. 伊格德拉西尔 说:

          这就像是说智力好奇心的停滞等同于个人的成熟。多可爱的水獭啊。

          1. 是的,我同意。你的陈述是垃圾,不过,模棱两可和错误的类比是常见的逻辑谬误。

          2. 伊格德拉西尔 说:

            正是你声称连接停滞了。我只是想指出,在语言方面,它同样是脑死亡,就像在谈论个人的停滞与成熟。

          3. 我的陈述是在一个领域,语言。把一个人的财产生命周期与一个人的整个生命周期进行比较是错误的类比。事实上,如果你的论点被调整以消除这种不平等,作为个人成熟度的个人停滞,它实际上是对老化过程的描述。

          4. 伊格德拉西尔 说:

            你听说过隐喻吗?一种不愿改变的语言停滞不前。一个不愿改变的人停滞不前。你可以选择把它们中的任何一个称为“成熟”,但在这两种情况下都不是真的。就像画一只猪。它还是一头猪。成熟意味着别的东西。你想要传达的似乎是一个从成长心态转向固定心态的人。确实存在着老年人的成长心态,以及愿意发展和成长的古老语言,非常感谢…

          5. 贾斯廷欧姆 说:

            你的陈述是一个类比,不是一个比喻。作为类比,这是不准确的。隐喻最好留给诗歌而不是理性的讨论。作为一个例子,“漂亮的猪画”是一个比喻。一种语言没有“意志”,因此没有改变的意志,也没有不改变的意志,因此,你的陈述是错误的。你随后的陈述“在任何情况下都是真的”是不支持的原因,因为前面的语句是基于一个错误的断言。我无意表达你所说的意思,因为我不是在谈论人。然而,说到人,作为生物实体,是的,细胞停滞始于细胞成熟期。我也选择了不叫“成熟”,我从来没有用过这个词。如果我用这个词的话,它可能指的是尚未成熟的事物,因为某种东西,按照定义仍然在成熟,不能达到成熟。这个阶段的实体仍在增长。只有在生长消退之后,成熟才会到来。一旦成熟,停滞就开始了。我同意你最后一句话的前半部分,老年人仍在成长中,然而,我们一直在讨论语言,而不是人们的思维方式。我也必须再次反对语言有意志。

  6. 我怀疑在StackOverflow场景中,一位技术娴熟、积极主动的专家的到来会对所问问题的数量产生很大的影响。与技术本身相关的技术的此类活动的增长或下降是多少?对于这项技术而言,如何才能使SO论坛发挥良好的作用呢?看到纯内部因素的分析是很有趣的,例如问题数量的增长是否与答案的数量和质量相关。

  7. 马克·舒尔泰斯 说:

    不是很容易测量,但我想知道文档是否缺少,或者技术中是否存在非直观的“功能”,从而导致更多问题,尤其是初学者。

  8. 乍得-纳尔逊 说:

    例如,与Vuejs相比,角度很难使用。所以有更多的问题。

  9. 这篇博文散发出一股思想简单、经常光顾的恶臭。作为一个贝叶斯人,我感到震惊。然而,我在诸如“…注意,安古拉吉的成长速度也非常快…”之类的声明中看到了一线希望。对,对,你真的想把你学习的东西和另一个比较。继续沿着这些思路思考,很快拜斯的荣耀就会展现给你。

    1. “头脑简单的流氓味”—是的……“数据科学家”—?

  10. 塞斯·科恩 说:

    “主干.js是一个javascript框架,在这个生态系统典型的残酷生命周期中,“这意味着什么?我以前没听说过这种情绪。

    1. JavaScript框架来来往往,就像风中的屁。

  11. 我很好奇,r或python在图上的哪一行?关于数据科学/交叉验证的堆栈交换,其他较小的堆栈交换是什么?
    ^我的观点是:我想知道中间的东西是如何与顶级趋势相比较的。(交互式图表预览?)

    我也从来没有新的人回答关于Stack上TensorFlow的问题。太酷了!你知道他们中是否有人在教吗?(我一直在寻找帮助我学习TensorFlow的人超过6-8个月。)不管怎样,现在我新分类期待栈上溢出。

    1. 您可以在这里查看一些分析,包括python和r://www.siren-lee.com/2017/09/06/难以置信的增长-python/
      它们生长得很快,但这并不是因为这篇文章的巨大变化。

  12. 可能是我一段时间以来看到的最吸引人的文章标题。但是我同意这里的大多数观点。这张图并不完全代表“移位”。对于这些类别的“问题(每月)”数量的大幅下降本身并不意味着“转变”。请记住,堆栈溢出有一个特定的目的,即共享知识,并且当它很好地、持续地为这些技术中的任何一种实现这一目的时*和*技术变得稳定,当然,我们预计问题会减少。为什么?因为所有的问题都被问到了,答案都在那里。随着技术的进步,没有什么变化。并不意味着PPL正在从中转移,这可能意味着所有的知识都在那里。你做不到的是将页面访问与这些问题关联起来。当然,标记为“X”的新问题可能会出现鼻垂,但也许他们的页面访问量比技术“Y”要多。把钱给我看看。

  13. 这就是你如何发现死亡与否的方法:为一个远程程序员发布一份工作公告,他可以在任何时间工作,并且在初创公司工作都能获得丰厚的薪水。然后问他们打算用什么技术来做和为什么。还要问他们不使用什么以及为什么。把简历一堆一堆地翻一遍,然后把它消化掉。

  14. 亚历克斯C 说:

    “我们最近讨论了流行度下降和增长的技术”—这两个链接将我们带到同一篇文章,这是预期的吗?

    1. 感谢您的留言;现在修理好了。

  15. 我们确定通过分析所问问题的数量来衡量受欢迎程度吗?在我看来,我们是在衡量使用的难度,也是。(不奇怪,角会产生很多问题!)

    1. 乔恩-尼林 说:

      我也有同样的想法。我认为大量的问题表明开发者对某项技术的投资,然而,第一手经验告诉我,有些技术很可能更复杂(而且更难调试)。也,他们可能从“我也是”的从众心理中获益。这就是说,任何东西都必须至少相当好才能得到牵引力。如果(与parse不同)发起者有承诺,它也会受益。我松了一口气,例如,当一位谷歌工程师向我保证他们会把Protobuf用于一切,投入大量资源学习如何使用它。

    2. 沃布奥特韦特 说:

      或者技术“所有者”未能在其他地方提供体面/彻底的文档?
      Vim真的很受欢迎吗?它产生了一百万个视图?
      一点也不–这是非常不合理的,以至于人们无法理解如何使用它。
      我来这里查阅的许多“角度”问题都是角度和离子的直接结果,它们有不完整/过时的文档和死的静默论坛。
      虽然我对快速而有棱角的增长并不感到惊讶,一些话题比其他话题的兴起也说明了平台与选择。

    3. 这是另一个我们经常遇到的问题!我们对问题流量进行了大量的分析,发现在几乎所有情况下,问题的趋势与交通趋势非常接近。我们还研究了不同行业和公司每个访问者的流量是如何变化的,发现变化不大。我们所有的分析都表明,开发人员在工作和学习时使用堆栈溢出,我们的流量数据(以及我们的问答数据)是开发人员活动的良好跟踪。

  16. 乔纳坦金尼斯 说:

    真正迷人的是,看看科技的发展和萎缩。感谢您的编辑和分析!

  17. 迈克尔·沃森 说:

    很好的帖子谢谢分享研究成果

  18. 马克西姆波利 说:

    别忘了,如果我们不计算标签上的重复/封闭问题,旧技术(如ORM)往往有大量的问题/答案,以至于遇到的任何问题都已经被询问并回答了。

    我们可以看到parse.com&backbone是技术发展速度快于缩小速度的例子。

    如果我们采用成熟的技术,我们可以比很多新的问题(不是封闭的)更多的希望是关于他们带来的最后功能,而旧的问题已经被回答了很多次。

    因此,我不确定我们是否谈论长寿技术,这也是他们受欢迎程度的一个很好的指标。最终,如果这些技术仍然带来很多新东西(一个如此新的问题,C++可能是一个很好的例子,或者[不]或最终真的没有被使用,C也许是个不错的选择。

  19. 大卫·劳伦斯 说:

    ORM是对编程技术的描述,与所有其他特定技术术语不同。挑选2个特定的,Hibernate和Django,与SQL相比,它们似乎有所增加:

    https://亚博安全吗insights.stackoverflow.com/trends?标记=django%2休眠%2csql

留下答复

您的电子邮件地址将不会发布。已标记必需字段*

此网站使用Akismet来减少垃圾邮件。了解如何处理评论数据.