开源软件开发社区:社交网络分析方法
1. 引言
开源软件在当今科技领域扮演着至关重要的角色。开发者社区通过像 GitHub 这样的大型组织共享解决方案并展示他们的工作。由此引出了两个有趣的问题:一是开发者社区是否无论使用何种编程语言,其行为方式都相似;二是哪些编程语言最有利于代码分叉(forking)。
开源软件开发社区的动态呈现指数级增长,这得益于新编程语言的出现与发展、不同编程语言的专业化使用,以及开源软件共享组织的运作。不过,这也带来了一些问题,比如抄袭现象以及新旧编程语言用户之间的竞争。
在开源软件开发社区中,成员们通过共享组织协作。有人发布一段代码来解决问题,这段代码随后会被其他人用作自己代码的一部分,这一过程被称为“分叉”。分叉虽存在抄袭元素,但开发者社区认为它是必要的,能节省开发新代码的时间,并为已开发的代码提出新用途,从而形成了一个合作网络。
网络理论是分析多变量结构的跨学科工具,它不基于节点的个体特征,而是依据其在网络中的拓扑位置来研究节点。网络理论的工具可用于局部分析(分析每个节点的特征和属性)或整体分析(分析网络的整体情况)。当全局指标给出归一化值时,可用于比较不同的相似网络,若考虑方向,分析会更复杂且解释更清晰。
2. 方法与数据集
为回答上述研究问题,使用了来自 GitHub 的真实数据,研究了二十种编程语言的节点和连接数量。节点与连接的比例体现了网络的密度,将为每种编程语言独立评估密度,同时还会研究每个网络的度中心化指数。
2.1 全局指标
2.1.1 密度
网络的密度是网络边的数量与最大可能边数量的比值,范围在 (0,1
超级会员免费看
订阅专栏 解锁全文
1239

被折叠的 条评论
为什么被折叠?



