BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Go Language Content on InfoQ

  • Go Generics Debut in Go 1.18 Beta 1

    The latest beta release of Go, Go 1.18 beta 1, finally introduces support for generics programming using parametrized types, a long-awaited and highly-requested feature. Additionally, it also adds support for test fuzzing, a technique used to find inputs then uncover incorrect behaviour in a program.

  • Pants Build System Adds Support for Java, Scala, and Go

    In its upcoming release, now available to early adopters, build system Pants adds Java, Scala, and Go to previously supported Python. InfoQ has spoken with Benjy Weinberger, one of the creator of Pants alongside John Sirois, and currently CEO of Toolchain, Pants' main sponsor.

  • Dapr Joins CNCF Incubator: Q&A with Yaron Schneider

    The Cloud Native Computing Foundation (CNCF) recently announced that it accepted the Distributed Application Runtime (Dapr) as a CNCF incubating project. This statement follows an earlier announcement by Dapr, announcing the formation of the Dapr project's Steering and Technical Committee (STC).

  • How Pinterest Scaled up Its Ad-Serving Architecture

    On the Pinterest Engineering Blog, Nishant Roy wrote about their strategy to overcome a scaling problem with their ad corpus. Their existing solution had hit its scaling limit, but further growth was necessary. Its redesign offloaded the ad index to a key-value store and optimised garbage collection in their Go applications to increase their ad corpus size by a factor of 60.

  • Go Gets Fuzz Testing Support in Beta

    The Go team has announced fuzzing support is now available for beta testing. The main goal of the project is to create a unified and end-to-end experience for developers and users of the language, including robust module support, integration with the go command, and new compiler instrumentation.

  • Slack Details Its New Role Management Architecture

    Slack recently posted a detailed description of the software architecture of its new role management system. Slack needed to build a system that was more flexible than the one it previously had. It created a custom containerized Go-based permission service that integrates with its existing systems over gRPC. As a result, its customers' admins now have granular control over what their users can do.

  • CDK for Terraform Adds Go Support and Improves Asset Construction

    Hashicorp recently released version 0.4 of their CDK for Terraform. The CDK allows for writing Terraform configurations in a number of programming languages including C#, Python, TypeScripts, and Java. This release adds experimental support for using Go to write Terraform configurations. Also included are enhanced support for Terraform modules and asset construction.

  • Uber Reveals Its API Gateway's Architecture

    Uber recently detailed the architecture of its internally built API gateway. It described how independent layered components handle each request in the gateway, with each layer being responsible for a different facet of the request lifecycle. A combination of YAML and Apache Thrift defines the gateway configuration, and a code-generated artifact in Go makes up the gateway implementation.

  • Content-Aware Image Resizing in Go and JavaScript

    Oleksii Trekhleb, software engineer at Uber, recently explored the use of dynamic programming to speed up a CPU-intensive content-aware image resizing algorithm. Developers may use content-aware resizing to fit images into a variety of enclosing contexts (e.g., screen form factors, responsive layout container) while preserving the image’s key features.

  • Distributed Application Runtime (Dapr) v1.0 Announced

    The Distributed Application Runtime (Dapr) team announced today that Dapr v1.0 is now available and is considered production-ready. Dapr is an open-source runtime that allows developers to build resilient, microservices-based applications that run on the cloud and edge. With the v1.0 release, developers can deploy Dapr applications to Kubernetes clusters in production scenarios.

  • Using Go in Native macOS Apps with MacDriver

    MacDriver is a recent project aiming to enable interoperability between Go and Objective-C. This will make it possible to write macOS, and potentially iOS apps using Go, as well as reuse Go code in macOS apps written in Objective-C or Swift. InfoQ has taken the chance to speak with MacDriver creator Jeff Lindsay.

  • Generics Enter Go Change Proposal Process

    Generics, one of the features more frequently requested by Go developers, are making their way into the language based on a draft design that has been evolving for the last couple of years and is now entering the language change proposal process.

  • Medium Describes "Rex" - a Go-Based Recommendation Service

    In a recent blog post, Medium describes how it built a recommendation service named "Rex." The original recommendation service was part of the Node.js monolith, and it could only rank 150 stories. However, Medium wanted this service to rank hundreds of thousands of stories per user in under a second. So, they decided to build an entirely new, separate service using Go.

  • Organizing Information about APIs with Google Registry API

    Google Registry API aims to allow developers to organize information about APIs by uploading and sharing machine-readable descriptions of the APIs they use in development.

  • Go 1.16 Will Support Register-Based Calling Convention

    The Go team is working to implement a minimum viable register-based calling convention in Go 1.16. This change could provide 5-10% throughput improvement, according to the Google Go team, while keeping backward compatibility for code using Go current stack-based calling convention.

BT