互联网公司GitHub repo 语言使用情况

news/2024/11/9 16:27:21

转自: https://laike9m.com/blog/hu-lian-wang-gong-si-github-repo-yu-yan-shi-yong-qing-kuang,56/

 

现在基本上所有国外大公司和国内部分公司都在 GitHub 上开源了一部分代码。统计一下这些代码的语言使用情况,多少可以反映公司内部对语言的偏好。很多公司流行的项目都是单独建一个 repo的,没办法统计,所以这里统计大家就随便看看吧。使用了 GitHub 的 API,只有不到四十行代码,所以直接贴在这里了,复制下来装个 requests 就可以直接运行:

# coding: utf-8

"""
统计大公司github上的organization 中repo 的语言使用情况
"""

import requests
from collections import defaultdict
from os.path import join
from pprint import pprint


class GetLangStat():

    api_url = "https://api.github.com/orgs"
    ORGANIZATIONS = (
        'Microsoft', 'aws', 'google', 'twitter', 'facebook',
        'alibaba'
    )
    stats = {org: defaultdict(int) for org in ORGANIZATIONS}

    @classmethod
    def get_one_org_repos(cls, org):
        print(org)
        url = join(cls.api_url, org, 'repos')
        r = requests.get(url)
        for repo in r.json():
            cls.stats[org][repo['language']] += 1

    @classmethod
    def get_all_org_repos(cls):
        for org in cls.ORGANIZATIONS:
            cls.get_one_org_repos(org)
        pprint(cls.stats)


if __name__ == '__main__':
    GetLangStat.get_all_org_repos()

统计的公司包括 MS,amazon,google, twitter, facebook, 阿里。其中 amazon 似乎只开源了 aws 相关的代码,不过也算进来了。本来想找百度和腾讯的,结果发现百度没有一个统一的 organization,都是按产品散着的,腾讯则基本没有开源代码。。。

转载于:https://www.cnblogs.com/pinganzi/p/6700027.html


http://www.niftyadmin.cn/n/1665949.html

相关文章

爬虫 selenium

chromedriver下载 谷歌浏览器驱动下载地址:http://chromedriver.storage.googleapis.com/index.html http://npm.taobao.org/mirrors/chromedriver/下载的驱动程序必须和浏览器的版本统一,可以根据http://blog.csdn.net/huilan_same/article/details/518…

一次面试总结(记录)

1,从一个数组里找重复出现次数最多的一个数?2,常用的linux命令3.垃圾收集器有哪些 ?垃圾收集算法?4,线上服务器变慢了你是如何定位问题并处理的?5,你自己实现一个本地缓存,淘汰最久未使用,你怎么设计6,用栈实现计算器7,剔除二叉树…

《深入理解计算机系统》笔记-计算机系统漫游

本笔记是学习南大袁春风老师的《计算机系统基础》时整理的笔记。若有理解错误,欢迎大家指正!谢谢~ (该网课是CSAPP的配套资源) 视频地址:https://www.bilibili.com/video/BV1kE411X7S5?p9&spm_id_frompageDriver…

c# winform编程之多线程ui界面资源修改总结篇

单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e) { Th…

selenium 原理应用 - 利用 requests 模拟 selenium 驱动浏览器

前言 selenium 是一个 Web 自动化测试的开源框架,它支持多语言:python/java/c#… 前面也有一篇文章说明了,selenium 浏览器的环境搭建。 selenium 支持多语言,是因为 selenium 与浏览器驱动之间是通过 http 协议进行通信的。只…

区块链与Git版本工具的比较

区块链与Git版本工具的比较 来源:http://www.jianshu.com/p/b96b98983df6作者: 梁波林 相同点: 1. 分布式存储方案 2. 链式数据 3. 去中心化 4. 支持离线访问 5. 交易量较小 6. 参与方多,网络规模大 不同: 1. 数据内容…

RubyMine 2018.3.5 发布,流行的 Ruby 开发工具

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> RubyMine 2018.3.5 (build 183.5912.16) 发布了,带来了一些平台上的改进。RubyMine 是一个为 Ruby 和 Rails 开发者准备的 IDE。 新版本的更新亮点有: Ruby…

六个开源软件开发的“潜规则”

你想成为开源项目中得意满满、功成名就的那个人吗,那就要遵守下面的“潜规则”。 正如体育界不成文的规定一样,这些规则基本上不会出现在官方文档和正式记录上。比如说,在棒球运动中,从比分领先时不要盗垒,到跑垒员跑了…