Serdar Yegulalp
Senior Writer

Google’s Go language ventures into machine learning

news analysis
Sep 19, 20163 mins

A small but growing number of libraries written entirely in Go are stepping up to show that Google's language can do machine learning, too

machine learning ai artificial intelligence
Credit: Thinkstock

Machine learning developers who want to use Google’s Go language as their development platform have a small but growing number of projects to choose from.

Rather than call out to libraries written in other languages, chiefly C/C++, developers can work with machine learning libraries written directly in Go. Existing machine learning libraries in other languages have a far larger culture of users, but there’s clearly an interest in having Go toolkits that take advantage of the language’s conveniences.

GoLearn, described as a “batteries included” machine learning library, is one of the most prominent. “Simplicity, paired with customisability, is the goal,” the developers write in their introduction to the project. Some of GoLearn’s interfaces to data handling are implemented in the same manner as scikit-learn, a popular Python machine learning project. Python refugees ought to be able to make short work of it. There’s a modest amount of C++ used for the linear models library, but the rest is pure Go.

Goml bills itself as “Golang machine learning, on the wire,” meaning it “includes many models which let you learn in an online, reactive manner by passing data to streams held on channels,” according to the developers. The project stands out by emphasizing its possibilities as a component for other applications, made easier by “comprehensive tests, extensive documentation, and clean, expressive, modular source code.” If all you need is something for basic binary classification problems (is this spam or not?), a smaller library named Hector will fit the bill.

The newest of the bunch, and in some ways most intriguing, is Gorgonia. This machine learning library, written entirely in Go, “provides the necessary primitives to dynamically build neural networks and assorted machine learning algorithms,” according to the author, a Sydney, Australia-based developer who goes by the nick “chewxy.”

The key adjective is “dynamic.” Like the machine learning library Theano before it, Gorgonia lets you describe the behavior of a neural network in fairly high-level terms with a set of library primitives. This approach, also used by the TensorFlow library, frees the developer from having to write algorithms by hand and provides pieces that can be reused across different projects.

One key motivation for why machine learning projects might be worth creating in Go was raised by Gorgonia’s creator in the Hacker News thread where he was promoting the project: “Part of the reason why I wrote Gorgonia was because I spent waay [sic] too long trying to deploy Theano on the cloud (this was circa 2 years ago).”

A purely Go solution means fewer pieces from different languages that would have to be packaged and deployed together. But the main advantage of having these libraries in Go isn’t deployment, but developer comfort. Prospective machine learning developers now have that many more languages to be productive in — and it means existing Go developers who want to become machine learning pros can get a leg up in a domain with which they’re already comfortable.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author