谷歌的開源成績單
今天,我們發布了我們的第一個開源成績單,展示我們最流行的項目、分享一些數據,並介紹一些我們在 2016 年發布的項目細節。
迄今為止,我們已經開源了超過 2 千萬行的代碼,你可以在我們的網站上找到我們最知名的項目的列表,下面是其中的一些:
- Android - 用於移動設備的軟體族,包括操作系統、中間件和關鍵性應用。
- Chromium - 它包括 Google Chrome 瀏覽器背後的 Chromium 軟體和 Google Chrome OS 設備背後的 Chromium OS 軟體。
- Angular - 一個 JavaScript 和 Dart 的 web 應用框架,關注於開發者的生產力、開發速度和測試能力。
- TensorFlow - 一個使用 數據流圖 的數字計算庫,支持從數據中心到嵌入式設備的跨平台的大規模機器學習。
- Go - 一種靜態類型的編譯型編程語言,富有表現力、簡潔而高效。
- Kubernetes - 一個可以自動分發、操作和縮放的容器化應用系統。
- Polymer - 一個構建於 Web 組件 API 之上的輕量級庫,用於構建在 Web 應用中可重用的封裝元素。
- Protobuf - 一個可擴展的、語言無關和平台無關的串列化結構數據的機制。
- Guava - 一套 Java 核心庫,包括新的集合類型(比如 multimap 和 multiset)、 不可變集合 、知識圖譜庫、 函數類型 、內存緩存,以及並發 API/功能、I/O、哈希、 基類型 、反射、字元串處理等等。
- Yeoman - 一個強壯而自足的框架工具集,它包括可以幫助開發者快速構建優美而引人入勝的 Web 應用的庫和工作流。
統計谷歌開源的全部軟體有點困難,不過我們可以從開源到 GitHub 上這部分軟體獲取一些有趣數據。現在谷歌在 GitHub 上已經有了 84 個組織和 3499 個項目倉庫,而今年就創建了 773 個倉庫!
谷歌人使用了從彙編到 XSLT 等等不計其數的各種編程語言,但是哪一個才是我們的最愛?GitHub 可以幫我們找到在這些軟體倉庫中我們使用最多的編程語言:
- JavaScript
- Java
- C/C++
- Go
- Python
- TypeScript
- Dart
- PHP
- Objective-C
- C#
我們可以通過 BigQuery 來了解各種 GitHub 開源數據,比如空格和製表符的使用對比、最流行的 Go 語言軟體包等等。谷歌人在 GitHub 上的開源項目提交了多少次?我們可以通過搜索 Google.com 的郵件地址來知道谷歌人的最低限度的提交量,比如使用這樣的查詢:
SELECT count(*) as n
FROM [bigquery-public-data:github_repos.commits]
WHERE committer.date > '2016-01-01 00:00'
AND REGEXP_EXTRACT(author.email, r'.*@(.*)') = 'google.com'
用上面的查詢,我們發現從今年開始,谷歌人在 GitHub 上的開源項目做了 142,527 次提交。這個數據集始於 2011 年,如果從那時開始統計,那麼提交次數是 719,012。不過,這只是最低限度的數據,因為我們沒有統計谷歌人使用其它郵件地址的提交。
讓我們來看看 2016 年有哪些令人激動的地方。我們發布了開源軟體、硬體和數據集,今年發布的有這些:
Seesaw
Seesaw 是一個基於 Linux 虛擬伺服器(LVS)的負載平衡平台,是由我們的 SRE 工程師用 Go 語言開發的。就像其它的項目一樣,它也是為了解決我們切身之癢而產生的。
在我們發布它的公告中提到:「我們需要有為 單播 和 選播 VIP 控制流量的能力,也需要對 NAT 和 DSR(也叫 DR)進行負載平衡,以及針對後端進行足夠的健康檢查。所有這些我們需要一個可以讓我們輕鬆地管理的平台,包括自動分發改變的配置。」
供應商安全評估調查表 (VSAQ)
每年我們需要評估幾百個供應商的安全情況,並且我們開發了一個流程來通過 VSAQ 自動化許多初始信息的收集。許多供應商發現我們的評估表直觀而靈活,所以我們決定把它分享出來。VSAQ 框架包括可擴展的調查表模版,覆蓋了 Web 應用、隱私程序、基礎架構以及物理和數據中心安全。你可以在我們的發布公告中了解更多信息。
OpenThread
OpenThread 是由 Nest 發布的一個 Thread 協議的完整實現,用於家庭連接設備。它非常重要,這是由於這個領域如我們所見是非常碎片化的。OpenThread 的開發得到了 ARM、微軟、高通、德州儀器等主要廠商的支持。
Magenta
我們可以使用機器學習來創建吸引人的藝術和音樂嗎?這個問題的答案就是動畫 Magenta,這個項目來自於谷歌大腦團隊,基於 TensorFlow。它有助於推動機器智能在音樂和藝術創作中的發展,並為藝術家、程序員和機器學習研究人員構建了一個協作社區。閱讀它的發布公告了解更多信息。
Omnitone
虛擬現實(VR)如果沒有 空域音頻 還做不到身臨其境,而許多的 VR 開發都是在專有平台上進行的。 Omnitone 是一個由 Chrome 團隊成員構建的開源庫,它可以給該瀏覽器帶來 空域音頻 。Omnitone 基於標準的 Web 音頻 API 構建,可以提供具有現場感的體驗,也被用於類似 WebVR 這樣的伴生項目。閱讀該項目的發布公告了解更多信息。
科學日報
當今的智能電話帶有許多感測器,可以告訴我們周圍很多有趣的信息。我們啟動了科學日報項目,以幫助教育工作者、學生和科學愛好者們利用這些感測器。更多信息可以參閱我們的發布公告。
Cartographer
Cartographer 是一個以 2D 和 3D 方式即時定位與地圖構建(SLAM)的庫,支持 機器人操作系統 (ROS)。它合併了多種感測器的數據,這個庫可以計算位置和地圖表面。這是自動駕駛汽車、UAV 和機器人的關鍵因素,並在室內地圖方面做了很多努力。關於 Cartographer 的更多信息可以參閱其發布公告。
這只是我們今年發布的一小部分例子,請繼續關注谷歌開源博客,為谷歌的開源軟體、硬體和數據而歡呼吧。
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive