
Announcing GoReleaser v1.19 — the big release
GoReleaser's latest release includes almost 200 commits, introducing features like Nixpkgs support, Winget manifest generation, and pull request integration with Homebrew, Krew, and Scoop. It also includes security improvements, deprecations, template enhancements, and bug fixes, making it a compreh.. read more

How Big Should a Programming Language Be?
Programming languages have a tendency to grow in size over time, making them more difficult to use reliably. This growth is driven by the desire to add new features and solve specific problems, but it comes at the cost of increased complexity and cognitive load for users... read more
Rust Module System Encourages Poor Practices (Comparing to Go)
Rust's design of crates and modules, with the ability to have cyclic dependencies and organize modules as a tree within a crate, promotes the growth of large crates rather than encouraging the use of numerous reasonably-sized crates. In contrast, Go's design of packages and files, with acyclic depen.. read more
Time is not a synchronization primitive
Using time as a synchronization mechanism in programming can lead to flaky and unreliable code, causing tests, scripts, and applications to break randomly. Instead, it is recommended to use proper synchronization mechanisms like channels to ensure the desired state. To discourage the use of time.Sle.. read more
The Tragic Death of Inheritance
After years of advocating for inheritance in programming, the author eventually realized the benefits of composition over inheritance, particularly in terms of code duplication and readability. They explain the differences between the two paradigms and provide examples to support their argument... read more

From 26 Minutes to 20 Seconds: Using pprof to optimize large GraphQL Operations in Go
The open-source GraphQL engine, graphql-go-tools, used by WunderGraph, experienced a significant performance difference when a customer routed a mutation through their gateway built on top of graphql-go-tools. While the mutation took around 1 minute when executed directly against their GraphQL serve.. read more

Database abstractions for Golang
Assembled, a company that has been using Golang as its exclusive backend language since 2018, has developed three abstractions to address the challenges of database access in Golang. These abstractions include an interface for sharing code between single- and multi-row getters, a helper method to ha.. read more

python 🤝 `defer`
Python has a library calledsorcerythat allows the implementation of per-scope finalizers similar to Go's defer statement. This library utilizes AST rewriting and live compilation techniques to achieve the desired behavior without the need for decorators or excessive indentation... read more




