---
title: "Microsoft goes Go for SQL Server's CLI"
publication: "Go Weekly"
issue: 526
published_at: "2024-10-08"
canonical_url: "https://golangweekly.com/issues/526"
---

Plus new ways to deploy Go apps, reflecting on reflection, and Windows gets high resolution timers in Go. |      

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/learn/languages/?utm_source=email&utm_medium=golangweekly&utm_content=languages)   

#​526 — October 8, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/526)    

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lslnwmkqhhlllg2vwoph.jpg)](https://www.dolthub.com/blog/2024-10-04-reflecting-on-reflect/)  

[Reflecting on Go Reflection](https://www.dolthub.com/blog/2024-10-04-reflecting-on-reflect/) — Truly a _reflective_ opinion piece, and probably a divisive one too. As a programmer who chooses to use _“the most mundane features”_ of any language, Go’s `[reflect](https://pkg.go.dev/reflect)` package wasn’t on Neil’s list of things to try, but he _“fell into the reflection pool”_ and.. he’s still not a fan. 

Neil Macneale   

[I'm Glad I Did It in Go](https://registerspill.thorstenball.com/p/glad-i-did-it-in-go) — Thorsten, author of [Writing an Interpreter in Go](https://interpreterbook.com/), reflects on how Go was the right language for the book, eight years on. 

Thorsten Ball   [![\](https://copm.s3.amazonaws.com/476b587a.png)](https://frontendmasters.com/learn/languages/?utm_source=email&utm_medium=golangweekly&utm_content=languages) 

[Elevate Your Backend Skills](https://frontendmasters.com/learn/languages/?utm_source=email&utm_medium=golangweekly&utm_content=languages) — Whether it's Python, Go, TypeScript, or AWS, you can gain fundamental knowledge across multiple programming languages, expanding your skillset via our growing range of learning paths and expert-led video courses. 

Frontend Masters sponsor   

[`sync.Map`: The Right Tool for the Right Job](https://victoriametrics.com/blog/go-sync-map/index.html) — The latest in Phuong’s popular, illustrated guide to concurrency options in Go digs into `sync.Map`, a concurrency-safe map for reading and writing across multiple goroutines without requiring explicit locks. It’s not _always_ the perfect choice, though, as he discovers. 

Phuong Le   

**IN BRIEF:** 

- ⭐ Microsoft has unveiled [its new `go-sqlcmd` CLI app](https://github.com/microsoft/go-sqlcmd) for SQL Server and Azure SQL and it's written in Go! Anna Hoffman [▶️ quickly explains it here.](https://www.youtube.com/watch?v=4CPdFs74Pkg)
- Chris Siebenmann reflects on [Go 1.22 and 1.23's new 'small language features'](https://utcc.utoronto.ca/~cks/space/blog/programming/GoNewSmallLanguageFeaturesNice) and how they make life easier.
- [Go 1.23.2 and 1.22.8](https://groups.google.com/g/golang-announce/c/NKEc8VT7Fz0/m/iRWv5Ww3AgAJ) were released.   

[Go Gets High-Resolution Timers on Windows](https://devblogs.microsoft.com/go/high-resolution-timers-windows/) — _“The Go Windows port added support for high-resolution timers in Go 1.23, boosting resolution from ~15.6ms to ~0.5ms.”_ 

Quim Muntal (Microsoft)   

[Writing a Circuit Breaker in Go](https://rednafi.com/go/circuit_breaker/) — When you need a mechanism to stop a failing operation being tried over and over, a _circuit breaker_ provides a graceful way to detect failures and recover from them with a cooldown period. 

Redowan Delowar   

[Using Go Embed](https://www.bytesizego.com/blog/go-embed) — The `go:embed` directive, around since Go 1.16, allows you to embed static files into your binary. 

Matt Boyle   

[Distributed Transactions in Go: Read Before You Try](https://threedots.tech/post/distributed-transactions-in-go) — How to approach transactions that need to span more than one service. 

Miłosz Smółka   

[Product for Engineers: A Newsletter Helping Flex Your Product Muscle](https://newsletter.posthog.com/?utm_source=gonews&utm_campaign=gonews) — Product for Engineers details the skills and strategies product engineers need to succeed. 

PostHog sponsor   

📄 [Implementing OpenSSL-Backed Go Cryptographic Algorithms](https://developers.redhat.com/articles/2024/10/04/openssl-go-cryptographic-algorithms) Derek Parker (Red Hat) 

📄 [Some Notes on Upgrading Hugo](https://jvns.ca/blog/2024/10/07/some-notes-on-upgrading-hugo/) – [Hugo](https://gohugo.io/) is a popular Go-based static site generator. Julia Evans 

📄 [Securing gRPC Services with JWT Authentication in Go](https://www.bytesizego.com/blog/securing-grpc-golang) Chris Shepherd  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/siyqcfnlgetw2l5ehmap.jpg)](https://world.hey.com/dhh/kamal-2-thou-need-not-paas-c9e8bd53)  

[Kamal 2: Thou Need Not PaaS](https://world.hey.com/dhh/kamal-2-thou-need-not-paas-c9e8bd53) — [Kamal](https://kamal-deploy.org/) is a container-based deployment tool from 37Signals, best known for their work on _Ruby on Rails_. It’s language agnostic though, and [▶️ the screencast demo](https://www.youtube.com/watch?v=QC4b2teG_hc) shows off deploying a simple Go app quickly, before moving on to a Ruby example. Certainly a viable new deployment option for Go apps on self-managed servers. 

David Heinemeier Hansson   

[Sidekick: Bare Metal to Production Ready in Minutes](https://github.com/MightyMoud/sidekick) — I haven’t tried this yet, but am itching to do so ASAP. Sidekick aims to give you a [Fly.io](https://fly.io/)-style single command deployment process out of the box for any VPS you have to hand. Inspired by Kamal (above) but is written in Go. 

Mahmoud Mousa       

📰 Classifieds   

[Hookdeck](https://hookdeck.com/discover/goweekly?ref=goweekly-526): Stripe-level DX for all your webhooks. 

--- 

Learn how to build fine-grained authorization for your Go application using open-source software, directly from the founders and team behind[SpiceDB](https://learn.spicedb.io/?utm_source=sponsored_newsletter&utm_medium=display&utm_campaign=golang_newsletter).      

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nadjwybcbjqtuxbvvuqc.jpg)](https://github.com/jedib0t/go-pretty)  

[go-pretty: Pretty Print Tables, Lists and Text on the Terminal](https://github.com/jedib0t/go-pretty) — Utilities to prettify console output of tables, lists, progress-bars, text, etc. with a heavy emphasis on customization. 

Naveen Mahalingam   

[Giu 0.9: A Dear ImGui-Based Cross Platform GUI Framework](https://github.com/AllenDang/giu) — Create GUI apps in Go on top of the [Dear ImGui](https://github.com/ocornut/imgui) GUI library. [v0.9](https://github.com/AllenDang/giu/releases/tag/v0.9.0) isn’t a big release but fleshes out the framework’s features and adds more documentation. 

Allen Dang   

[Watermill: Library for Building Event-Driven Apps](https://github.com/ThreeDotsLabs/watermill) — A library for working with message streams (over numerous channels like Kafka, RabbitMQ, HTTP or even MySQL binlogs) to build event driven apps. 

Three Dots Labs   

[xmlquery: An XPath Library for Querying XML Documents](https://github.com/antchfx/xmlquery) — For plucking out all elements with certain names or attributes, say. 

antchfx   

- [tk 9.0](https://pkg.go.dev/modernc.org/tk9.0) – CGo-free cross platform GUI toolkit for Go, a la Tkinter.
- [River 0.13](https://github.com/riverqueue/river/releases/tag/v0.13.0) – Fast and reliable Postgres-powered background jobs for Go.
- [OSV-Scanner 1.9](https://github.com/google/osv-scanner) – Dependency vulnerability scanner.
- [go-github 66.0](https://github.com/google/go-github/releases/tag/v66.0.0) – Client library for the GitHub v3 API.
- [Git Town 16.4](https://github.com/git-town/git-town/releases/tag/v16.4.0) – Git branch management tool.
- [Ebiten 2.8.1](https://ebitengine.org/en/documents/2.8.html#v2.8.1) – Go's simple 2D game engine.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
