Stack Overflow发现用户复制程序代码比例高

开发者论坛Stack Overflow近期作了一项研究,他们观察用户的复制行为,发现每4名访问Stack Overflow的用户,就会有1位用户在5分钟内复制一些内容,而复制程序代码的频率是复制问题的10倍,更是复制评论的35倍,而且比起被接受的答案,没有被接受的答案整体有更多的复制量。

对于用户在Stack Overflow网站上的程序代码复制行为,官方抱持正面态度,认为前人已经辛苦工作,后人就不需要重新制作轮子,知识重用可以帮助用户学习,并且减少工作的挫败感,更快地获取到有用的程序代码。官方提到,知识重用一直以来就是Stack Overflow的重要基础,也是能造就出强大开发者社群的关键。

Stack Overflow使用了自家的网页关注工具,以自定义事件捕获用户在网站上的复制事件,通过这些事件,官方能够同时捕捉到多种属性,包括标签、问题答案、评论、程序代码区块或是纯文本、复制者的声誉、贴文分数、地区,以及该贴文是否被接受为问题的最佳解答。Stack Overflow从2021年3月26日到2021年4月9日,整整收集了2个星期的资料,从7,305,042篇贴文截取到了40,623,987次复制事件。

通过分析这些事件资料,官方可以了解复制Stack Overflow网站内容的用户组成。网站整体复制行为,与网站流量紧密相关,大多数的复制行为都出现在工作日的上班时间,来自亚洲的用户复制最多的内容占33%,欧洲则有30%,而北美为26%。

官方想要知道用户声誉和复制次数的关系,但由于产生复制事件的用户,有86%是未登录的用户,也就是匿名的用户,这些匿名用户分为可能真的是不具账户的用户,也可能是有账户只是没有登录,不过官方没有办法验证其中的比例。

通过可视化每个用户的复制次数以及声誉,的确可以看出当用户的声誉越高,复制次数就越低的趋势,虽然这样的关系存在,但是由于没有足够的资料佐证,因此无法直接认定声誉较低的用户,复制的次数一定比较多,但官方提到,学习中的开发人员通常声誉较低,随着累计专业知识,会逐渐创建声誉,而高端开发人员面对更为困难的挑战,解法可能无法从Stack Overflow复制而来。

而被答案提问者接受为最佳解答的贴文,被复制的次数就会比较多吗?官方发现,有52.4%的复制次数来自未被接受的答案,但是平均而言,每篇被接受的答案共获得7次复制,而不被接受的答案每篇则有5次复制,因此整体来说,不被接受的答案复制数量更多,但是被接受的答案,拥有更高的知识重用性。

官方也发现,分数较高的贴文,被复制的次数也会跟着比较多。与用户声誉相同的问题,大部分的贴文分数为零或是得分偏少,通过范式网站上所有贴文的评分,从图表(下图)可以看出在答案方面,分数1到1000区间组别的贴文,复制次数十分平均,而在问题方面,1到5分的分组则是复制次数最多的,官方提到,这可能是用户想要通过复制题目,到其他地方提问获得答案,所造成的现象。

但是从复制次数和贴文得分分布图来看,确实可以观察到分数越高的贴文,复制次数越多,这也代表这些知识更有被社群重用的价值。

值得注意的是,究竟用户都在Stack Overflow上复制哪些程序语言的内容,令人惊讶的是Python,这个标签出现在4个前段标签分组中,其中3个是资料科学的分组,包括|python|pandas|、|python |pandas|dataframe|以及|python|matplotlib|,这显示着Python在程序开发与资料科学上的重要性。