As part of our ongoing commitment to Go developers and our work with the Go community, today at GopherCon we announced contributions to the open source Project Athens and our involvement with GopherSource.
These announcements represent an important milestone in the work that Microsoft has been doing to enable Go developers to build and run better apps and services, with support for Go in tools like Visual Studio Code and Visual Studio Team Services, as well as on our Azure cloud platform.
In February, engineers from Microsoft and other collaborators began working on Project Athens, an open source project released under the MIT license and hosted on GitHub, to create the first proxy server for Go modules. Along with the Athens community, we are currently focusing on improving the modules experience, ensuring that Go modules work seamlessly with all proxy servers, and working to set up a federated, organizationally diverse proxy network, which will include:
Go module proxy server implementation for edge deployments
A protocol for authenticated module proxies
Module notary servers to authenticate module source code
A solution for companies using Go to specify include/exclude lists for approving external Go packages
Project Athens has been community-owned since its inception, and we continue to dedicate significant effort to advancing both the Athens community and its technology. While Microsoft engineers are contributors and core maintainers of the project, and we’re involved with everything from community management to implementing new proxy features, Athens is now supported by dozens of developers from around the globe.
The Go community is renowned for its cute gopher mascot and friendly figureheads, but it can still be a confusing and intimidating area to jump into for new and experienced developers alike. GopherSource is an initiative to strengthen and diversify the Go ecosystem through building up more contributors to upstream Go and key Go projects, such as Project Athens, from within the community. By encouraging the Go community’s own talented developers to contribute to upstream Go, we ensure that the Go ecosystem will meet the needs of the entire community.
The Go Developer Experience
We are constantly working to improve the Go developer experience with our products and services, including:
Extension providing native Go support in Visual Studio Code, free and open source, for macOS, Linux and Windows. VS Code is the most popular editor amongst Go developers, according to the Go 2017 survey.
Support for Go applications across many Azure services, including Web Apps, Azure Kubernetes Service, Linux Virtual Machines, with more to come. The Azure SDK for Go makes it easier to build apps that interact with Azure services too, such as Storage.
Visual Studio Team Services provides Git repositories and enables Continuous Integration and Continuous Delivery capabilities for Go applications, and it’s free for individuals and small teams up to five.
There are many gophers at Microsoft who are using Go to build products at scale. Most recently, we implemented core services behind KLEIN Khaki CALVIN Boutique Shorts JEANS 0qYx8Ox (AKS) in Go. We also run Kubernetes, Docker and several other cloud native technologies to host production workloads in Azure. Internally, we contribute a significant amount of Go code to the cloud native ecosystem, including Virtual Kubelet, which enables scheduling Kubernetes workloads to off-cluster resources such as IoT Edge or Azure Container Instances; and Helm, the Kubernetes package manager.
Additionally, our Azure Cloud Developer Advocates include gophers who are working on improving the Go developer experience across the suite of developer and Azure products.
As we announce this, Go is almost 10 years old. Not only are we so pleased to be participating in and using Go and its related technologies, but we couldn’t be more excited to be working in such a warm, inclusive, and smart community.
We already use and have so much fun with Go internally, and with our new investments into the community and technology we hope to do our part to grow the community and contribute great innovations wherever we can.