|
この分析レポートでは、GitHubで現在(2017年10月)までに公開されたすべてのイベントのデータを使用します。各GitHubユーザーについて、所属企業を推測します。また、今年20個以上のスターを獲得したリポジトリのみを対象とします。 以下は私のレポート結果です。この結果は、インタラクティブな Data Studio レポートでさらに活用できます。 クラウドサービスプロバイダーの比較 2017 年の GitHub でのパフォーマンス: - Microsoft には、GitHub 上の 825 個のリポジトリにコードを積極的にプッシュしている従業員が約 1,300 人いるようです。
- Google によれば、約 900 人の従業員が GitHub でアクティブであり、約 1,100 のリポジトリにコードをプッシュしています。
- Amazon では GitHub でアクティブな従業員はわずか 134 名で、コードをプッシュしているのはわずか 158 件のプロジェクトのみのようです。
- すべてのプロジェクトが同じというわけではありません。Googleの従業員は、Microsoftの従業員よりも25%以上の倉庫で貢献しており、それらの倉庫はより多くの星を獲得しています(53万個対26万個)。一方、Amazonの倉庫は2017年にわずか2万7千個の星しか獲得していません。
レッドハット、IBM、ピボタル、インテル、フェイスブック AmazonがMicrosoftやGoogleに大きく遅れをとっているように見えるとしたら、その中間に位置する企業は他にどこがあるでしょうか?このランキングによると、Red Hat、Pivotal、IntelがGitHubに多大な貢献をしています。 以下の表にはすべての IBM 地域ドメインが含まれていることに注意してください (各地域は以下の表に表示されます)。 Facebook と IBM (米国) の GitHub 上のアクティブ ユーザー数は Amazon とほぼ同じですが、両社のプロジェクトはより多くのスターを獲得しています (特に Facebook のもの)。 次は Alibaba、Uber、Wix です。 そして、GitHub 自体、Apache、Tencent: Baidu、Apple、Mozilla: (LCTT翻訳者注:中国のトップインターネット企業であるアリババ、テンセント、バイドゥがここで上位にランクインしているのは素晴らしいことです!) Oracle、スタンフォード大学、MIT、Shopify、MongoDB、カリフォルニア大学バークレー校、VMware、Netflix、Salesforce、Gsa.gov: LinkedIn、Broad Institute、Palantir、Yahoo、MapBox、Unity3d、Automattic(WordPressの開発元)、Sandia、Travis CI、Spotify: Chromium、UMich、Zalando、Esri、IBM(英国)、SAP、EPAM、Telerik、英国内閣府、Stripe: Cern、Odoo、Kitware、SUSE、Yandex、IBM(プラス)、Adobe、Airbnb、Chef、The Guardian: Arm、Macports、Docker、Nuxeo、NVidia、Yelp、Elastic、NYU、WSO2、Mesosphere、Inria: Puppet、スタンフォード大学(コンピュータサイエンス)、DatadogHQ、Epfl、NTTデータ、ローレンスリバモア研究所: 私の分析方法 GitHubユーザーを会社にリンクさせる方法 GitHub で各ユーザーがどの会社に属しているかを判断するのは簡単ではありませんが、プッシュ イベントのコミット メッセージに表示される電子メール アドレスのドメインを使用して判断することができます。 - 同じメール アドレスが複数のユーザーに表示されることがあるため、この期間中に 20 個を超える星を獲得したプロジェクトのプッシュ通知を受信したユーザーのみを考慮します。
- この期間中に 3 回以上プッシュした GitHub ユーザーのみをカウントしました。
- ユーザーがGitHubにコードをプッシュすると、プッシュ通知には複数のメールアドレスが表示されることがあります。これはGitHubの仕組みによっても異なります。各ユーザーの組織を特定するために、プッシュ通知に頻繁に表示されるメールアドレスを調べます。
- すべてのユーザーがGitHubで組織のメールアドレスを使用しているわけではありません。gmail.com、users.noreply.github.com、その他のメールホスティングプロバイダのメールアドレスを使用しているユーザーも多くいます。これは匿名性を維持し、会社のメールアドレスを保護するためである場合もありますが、会社のドメインが特定できない場合は、これらのユーザーを統計情報に含めません。申し訳ありません。
- 社員が転職することもあります。その場合は、本人が最も力を入れている会社に配属します。
私のクエリステートメント - #標準SQL
- と
- 期間AS (
- 選択*
- `githubarchive.month.2017 * `から
- )、
- repo_stars AS (
- SELECT repo.id, COUNT ( DISTINCT actor.login) スター, APPROX_TOP_COUNT(repo. name , 1)[OFFSET(0)].value repo_name
- 期間から
- WHERE type= 'WatchEvent'
- グループ 1つずつ
- 星が20個以上ある
- )、
- pushers_guess_emails_and_top_projects AS (
- 選択*
- # , REGEXP_EXTRACT(メールアドレス, r '@(.*)' ) ドメイン
- , REGEXP_REPLACE(REGEXP_EXTRACT(email, r '@(.*)' ), r '.*.ibm.com' , 'ibm.com' ) ドメイン
- から(
- 俳優IDを選択
- , APPROX_TOP_COUNT(actor.login,1)[OFFSET(0)].value ログイン
- , APPROX_TOP_COUNT(JSON_EXTRACT_SCALAR(ペイロード, '$.commits[0].author.email' ),1)[OFFSET(0)].value email
- カウント(*)c
- , ARRAY_AGG( DISTINCT TO_JSON_STRING(STRUCT(b.repo_name,stars))) リポジトリ
- 期間aから
- repo_starsに参加b
- a.repo.id=b.idの場合
- WHERE type= 'PushEvent'
- グループ 1つずつ
- c>3を有する
- )
- )
- 選択*から(
- ドメインを選択
- GitHubユーザー
- 、(選択 COUNT ( DISTINCT repo) FROM UNNEST(repos) repo) repos_contributed_to
- 配列
- 選択 AS STRUCT JSON_EXTRACT_SCALAR(リポジトリ、 '$.リポジトリ名' ) リポジトリ名
- 、 CAST (JSON_EXTRACT_SCALAR(repo, '$.stars' ) AS INT64) スター
- , COUNT (*) githubers_from_domain FROM UNNEST(repos) リポジトリ
- グループ 1、2ずつ
- githubers_from_domain>1を持つこと
- 注文 星の数で絞り込む制限 3
- )トップ
- 、(選択 SUM ( CAST (JSON_EXTRACT_SCALAR(リポジトリ、 '$.stars' ) AS INT64)) FROM ( SELECT DISTINCT repo FROM UNNEST(repos) repo)) sum_stars_projects_contributed_to
- から(
- SELECTドメイン、 COUNT (*) githubers、ARRAY_CONCAT_AGG(ARRAY( SELECT * FROM UNNEST(repos) repo)) リポジトリ
- pushers_guess_emails_and_top_projectsより
- # WHEREドメインIN UNNEST(SPLIT( 'google.com|microsoft.com|amazon.com' , '|' ))
- WHEREドメインNOT IN UNNEST(SPLIT( 'gmail.com|users.noreply.github.com|qq.com|hotmail.com|163.com|me.com|googlemail.com|outlook.com|yahoo.com|web.de|iki.fi|foxmail.com|yandex.ru' , '|' )) # メールホスト
- グループ 1つずつ
- Githuberが30人以上
- )
- WHERE (選択 MAX (githubers_from_domain) FROM ( SELECT repo, COUNT (*) githubers_from_domain FROM UNNEST(repos) repo GROUP BY repo))>4 # 2番目のフィルターメールホスト
- )
- 注文 githubersによる説明
よくある質問 1,500 の倉庫のうち 200 しかカウントされないのはなぜですか? 7,000 の星付き倉庫のうち 1,500 しか表示されないのはなぜですか? データをフィルタリングし、2017年の星の数だけをカウントしました。例えば、ApacheはGitHubに1500以上のリポジトリを持っていますが、今年20個以上の星を獲得したプロジェクトはわずか205件でした。 これはオープンソース開発の現状を示しているのでしょうか? なお、この GitHub の分析には、Android、Chromium、GNU、Mozilla などの主要なコミュニティは含まれておらず、Apache Foundation や Eclipse Foundation、または GitHub 外で運営することを選択したその他のプロジェクトも含まれていません。 これは私の組織にとって不公平です。 分析できるのは目に見えるデータだけです。統計の前提に関するフィードバックや、手法の改善に関するご提案をお待ちしております。実際に動作するクエリステートメントがあればさらに助かります。 たとえば、IBM のさまざまな地域ドメインを *** ドメインにマージした場合にランキングがどうなるかを確認するには、次の 1 つの SQL ステートメントを使用できます。 - SELECT *, REGEXP_REPLACE(REGEXP_EXTRACT(email, r
地域ドメインを統合した後、IBM の相対的地位は大幅に向上しました。 エコー 「GitHub の 2017 年トップ貢献者」についての感想。 次 以前にも間違いを犯したことがあり、また犯す可能性もあります。生データをすべて見直し、私の当初の仮定に疑問を投げかけてください。どのような結論を導き出すのか、興味深いところです。 - インタラクティブなデータスタジオレポートを使用します。
長年にわたる膨大な GitHub データを提供する GitHub アーカイブを保存してくれた Ilya Grigorik に感謝します。 |