Microsoft Embraces Go Programming Language for Azure Cloud Development
Coinciding with the start of the GopherCon show for developers using the Go programming language created by Google, Microsoft today published an extensive series of videos to help Azure cloud developers use Go.
Microsoft also today announced open source contributions to Go projects "as part of an ongoing commitment to Go developers and community."
Microsoft is embracing Go despite the fact that Google -- a primary backer of the open source language (sometimes referred to as Golang) -- also offers the Google Cloud Platform, a direct competitor to Microsoft Azure.
Go was created by Google engineers about eight years ago because they sought a programming language that provided efficient compilation, efficient execution and ease of programming, finding that no existing mainstream language accommodated all three.
It's described as "a statically typed, compiled language in the tradition of C, with memory safety, garbage collection, structural typing and CSP-style concurrency" by Wikipedia.
With its affinity for cloud programming, Go has become a focal point for Microsoft's Azure efforts, culminating with today's launch of the seven-part video series on the company's Channel 9 site.
The first video, titled "Go on Azure: Part 1 -- Build Go apps with Visual Studio Code," features Ramya Achutha Rao (Sr. Software Engineer), who details using the open source, cross-plaftorm VS Code editor -- said to be the favorite among Go developers -- to first construct a simple Hello World app and eventually create a Docker container for the app that is ready to be pushed to the cloud.
She takes advantage of the Go for Visual Studio Code extension in the Visual Studio Code Marketplace, which, speaking to the popularity of the language and the tool, has been installed more than 5.2 million times, earning a 4.8 rating (0-5 scale) from 145 developers who have reviewed it. It provides smart code completion, integrated debugging and more.
"There are a host of language features that can help you in your day-to-day development, be it if you're code editing, you're navigating your code, you're testing your code trying to find errors or if you're debugging," Rao said in the video. "We have something for each of these areas."
Microsoft also touts its support for Go applications across many Azure services, including Web Apps, Azure Kubernetes Service and Linux Virtual Machines, with more planned. "The Azure SDK for Go makes it easier to build apps that interact with Azure services too, such as Storage," a spokesperson said.
Furthermore, the spokesperson said "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."
In addition to video mentioned above, other videos in the "Go on Azure" series include:
Further illustrating Microsoft's embrace of Go for Azure is a blog post published today that reviews the company's Go initiatives, written by Josh Gavant, Senior Program Manager, Azure Developer Experience.
"Since making the Azure SDK for Go generally available earlier this year, our teams have been hard at work building Go tools and services for Azure, Visual Studio Code and Visual Studio Team Services," Gavant said. "We continue to strive to help Go developers build better cloud apps, faster, with an expanding range of services covering the cloud-native workflow.
He listed those services as:
- Write and test code with Visual Studio Code, the most popular editor amongst Go developers. Debug with visual breakpoints, apply Go formatting on save and use code completions to increase developer speed and productivity.
- Host your private Git repositories, then integrate and release apps with Visual Studio Team Services and Azure DevOps Projects.
- Run code, containers and apps on Azure Kubernetes Service, a fully managed Kubernetes cluster, or with Azure App Service. Or, use your favorite Linux distribution on Azure Virtual Machines.
- Store structured data in managed PostgreSQL and MySQL databases, objects in Blob Storage and cache items in Redis Cache. You can also use Cosmos DB, a globally-replicated, multi-model database that is compatible with MongoDB.
- Communicate between microservices with Azure Service Bus, Event Hubs and Event Grid.
- Authenticate users and manage a directory with OpenID Connect and Azure Active Directory.
- Gather and monitor traces with Application Insights and soon OpenCensus.
Gavant also reviewed several other Go-related initiatives continually being improved by Microsoft and invited Go developers to provide input to help shape that effort.
Also today, at the aforementioned GopherCon show, Microsoft announced contributions to the open source Project Athens and GopherSource.
Those projects were described by Microsoft thusly:
- Project Athens is 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, Microsoft is 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.
- 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, the Go ecosystem will continue to work to meet the needs of the entire community.
More information on those projects, the Microsoft Go experience and the use of Go at Microsoft can be found in yet another blog post published today, titled "Announcing Project Athens and GopherSource for the Go 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," said Aaron Schlesinger, Sr. Software Engineer, Microsoft Containers, in the post.
David Ramel is an editor and writer for Converge360.