Programming languages used at Google
Photo by Hitesh Choudhary on Unsplash
Introduction
There is an incredible number of programming languages used by software engineers and scientists around the world. The most recent survey of Stack Overflow shows that there are over 35 languages that are used by professional software developers today. The list of notable programming languages available on Wikipedia consists of approximately 700 languages. The online historical encyclopedia of programming languages goes much further and presents almost 9000 languages on its list! This number even exceeds the number of 7,151 spoken languages that are still in use today!
Scrolling through these lists can be entertaining and a bit nostalgic for experienced software professionals while beginners may find this information somewhat intimidating. However, out of all of these languages, only 5 are officially approved and strongly encouraged at Google.
Officially approved languages
C++
C++ was invented in 1982 as a general-purpose programming language by Bjarne Stroustrup. The language received object-oriented, generic, and functional, features in addition to facilities for low-level memory manipulation that were borrowed from C. C++ was designed as a language for system and embedded programming and resource-constrained software. Performance, efficiency, and flexibility are among the key strengths of the language.
All this makes the language the ideal choice for building many modern resource-constrained and performance-critical applications. C++ is everywhere these days. Desktop applications, video games, web search and database management software, network switches, high-end graphical processing, computer vision, medical devices, and space probes all use C++ as a backend programming language.
Python
The first version of Python was released in 1991. Python is a high-level, dynamically-typed, general-purpose programming language that emphasizes code readability. It supports multiple programming paradigms including object-oriented and functional programming.
Python is used as a scripting language for automation, prototyping, web applications, scientific computing, computer vision, image processing, artificial intelligence, machine learning, and video games.
JavaScript
The language first appeared in 1995 as a scripting language for a web browser. JavaScript is a high-level language with dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles.
JavaScript was originally used only in web browsers, but now it is widely used in mobile, desktop, and server applications. It is also started to appear in some embedded systems.
Java
The first public implementation of Java was released in 1996. It is a high-level, object-oriented, general-purpose programming language intended to run on all supported platforms without a need to recompile. The syntax of Java is similar to C++ but is much simpler and has fewer low-level facilities. Java runtime also provides dynamic capabilities that are not available in traditional compiled languages such as C++.
Today Java is used for web and applications servers, processing big data, developing desktop, mobile and embedded applications, and enterprise systems.
Go
Go was publicly announced in 2009. It is a statically typed, compiled programming language designed at Google. It is influenced by C but with an emphasis on simplicity and safety. It provides memory safety, garbage collection, structural typing, and message-based concurrency.
Go became very quickly one of the most popular programming languages. It is one of the best choices available for building resource-constrained software where performance is a critical requirement. Today Go is used for building web, desktop, and embedded applications, database software, and system applications.
Other languages at Google
In addition to the main languages listed above, Google also uses many other languages to get the job done. Here is the list of other languages used by Google:
- C#
- PHP
- Perl
- Ruby
- Kotlin
- Scala
- Rust
- Closure
- Elixir
- Haskell
- Swift and Objective-C
Final thoughts
Google made a conscious decision to minimize the number of programming languages to allow better code reuse and collaboration among software engineers. Each of these languages has a style guide to ensure that all code written across the company adheres to a similar style, layout, and naming conventions. There is also a company-wide readability training process where engineers are trained in how to write readable, idiomatic code in each of these languages.
All these languages are time-tested and in high demand not only at Google but also in all other big software companies.