By Josh Simmons, Google Open Source Initiative Office
Open source software helps Google develop software quickly and efficiently without having to start from scratch, so we can focus on solving new problems. We know this: we stand on the shoulders of giants. That’s why we support open source and make it easy for Googlers to release in-house projects in open source. Today, we shared our first open source report card, which highlights our most popular projects, sharing some statistics and details about some of the projects we released in 2016.
To date, we’ve opened up over 20 million lines of source code, and you can find some of our most well-known project releases on our website:
developers.google.com/open-source/projects
Here are some of our most familiar projects:
- Android– A set of software applicable to mobile devices, including operating systems, middleware, and key applications.
- Chromium– This project containsChromium(the software behind Google Chrome) andChromium OS(The software behind Google Chrome OS devices).
- Angular— A web application framework for JavaScript and Dart that focuses on developer efficiency, speed and testability.
- TensorFlow— a library for digital computing using data stream graphics that supports scalable cross-platform machine learning from data centers to embedded devices.
- Go – a programming language for statically setting types and compiling, characterized by clarity, simplicity, cleanliness, and efficiency.
- Kubernetes– A system for automated deployment, operation, and tuning of containerized applications.
- Polymer– A lightweight library built on the Web Components API for building reusable wrapper elements in Web applications.
- Protobuf – a mechanism for serializing structured data that is extensible and language – and platform-independent.
- Guava – A set of Java core libraries containing new collection types (such as multimap and multiset), immutable collections, graphics libraries, function types, memory caches, and apis/utilities for handling concurrent operations, I/O, hashes, primitives, reflections, strings, and more.
- Yeoman – A solid and distinctive set of basic tools, including libraries and a workflow, to help developers quickly build beautiful and engaging web applications.
Although it’s hard to measure the full extent of open source within Google, we can use some of the projects listed on GitHub to gather some interesting data. Today, we have a huge presence on GitHub, with 84 organizations joining and 3,499 stores, 773 of which were created this year.
Google employees use languages ranging from Assembly to XSLT, so which ones are their favorites? GitHub tags the most used languages in a storage area to find out.
The most common languages used by Google employees are as follows:
- JavaScript
- Java
- C/C++
- Go
- Python
- TypeScript
- Dart
- PHP
- Objective-C
- C#
A lot of data can be collected using the open source GitHub dataset on BigQuery, such as tag and space usage comparisons and the most popular Go packages. How do you analyze the number of times Google employees submit open source projects on GitHub? We can search the Google.com email address to get conservative submissions from Google employees. Here is our query:
Using this approach, we learned that Since the beginning of the year, Google employees have submitted a total of 142,527 open source projects on GitHub. This data set goes back to 2011, and we were able to adjust the query and find that since then, Google employees have submitted a total of 719,012 times. Again, this is a conservative number, as it does not account for submissions made with other email addresses.
Looking back at our open source project in 2016, we found many exciting results. We released open source software, hardware, and data sets. Check out some of the apps released this year.
Seesaw
Seesaw is a Load balancing platform based on Linux Virtual Servers (LVS) developed by our website reliability engineers using Go. Like many projects, Seesaw was just a hobby for us. Here’s an excerpt from the project’s announcement: “We need to be able to handle unicast and anycast VIP traffic, perform load balancing using NAT and DSR (also known as DR), and perform adequate health checks on the back end. Most importantly, we needed a platform that we could easily manage, including automating deployment of configuration changes.”
Supplier Safety Assessment Questionnaire (VSAQ)
We evaluate the security of hundreds of suppliers each year, and we have a process in place to automate most of the initial information through VSAQ. Many vendors found our questionnaires intuitive and flexible, so we decided to share them. The VSAQ framework includes four extensible questionnaire templates covering web applications, privacy plans, infrastructure, and physical security and data center security. You can learn more about this in our announcement blog.
OpenThread
OpenThread, released by Nest, is a full implementation of the Thread protocol for connected devices in your home. This is especially important because of the patchwork of information we currently see in this area. OpenThread was developed with support from ARM, Microsoft, Qualcomm, Texas Instruments, and other large vendors.
Magenta
Can we use machine learning to create exciting art and music? This is the problem that brings Magenta to life, a project built on TensorFlow by the Google Brain team. The goal: to advance machine intelligence to the age of music and art by forming a collaborative community of artists, programmers and machine learning researchers. For more information, please read the Release notice.
Omnitone
Without spatial audio, virtual reality (VR) can’t be a truly immersive experience, and much of the work in VR development takes place on dedicated platforms. Omnitone is an open library built by members of the Chrome team that brings spatial audio to the browser. Built on a standard Web Audio API, Omnitone is designed to provide an immersive experience that can be used with projects like WebVR. For more information, please refer to the project announcement blog post.
Science Journal
Today, smartphones are packed with sensors that can tell us interesting things about the world around us. We launched the Science Journal project, which aims to help teachers, students, and researchers take full advantage of these sensors. You can learn more about this project in our announcement blog post. Cartographer
Cartographer is a library that synchronizes localization and mapping (SLAM) in 2D and 3D mode in real time, supported by Robot Operating System (ROS). The library combines data from various sensors to calculate location and map surroundings. This is a key element of autonomous vehicles, driverless cars and robots, and is part of the work of interior mapping in well-known buildings. More details on Cartographer can be found in our announcement blog post. The above are just a few examples from the projects we released this year. Follow the Google Open Source blog or the Google Developers account to stay up-to-date on Google’s open source software, hardware and data releases.