/Go

We Already Have Go 2

tl;dr: The first version of Go has evolved significantly: The compiler rewrite in Go, modules, context package and Generics. "Releasing 'Go 2' has become a philosophical and political challenge due to the forces that be... This is a look back at the huge progress that has been made since Go 1 released and what I'd consider to be the headline features of Go 2."

featured in #320


Generics Can Make Your Go Code Slower

- Vicent Marti tl;dr: "This blog post does not take sides in that debate, or advise where and when to use Generics in Go. Instead, this blog post is about the third side of the generics conundrum: It’s about systems engineers who are not excited about generics per se, but about monomorphization and its performance implications."

featured in #304


An Introduction To Generics

- Ian Lance Taylor Robert Griesemer tl;dr: Generics adds 3 new things to Go: (1) Type parameters for function and types. (2) Defining interface types as sets of types, including types that don’t have methods. (3) Type inference, which permits omitting type arguments in many cases when calling a function.

featured in #302


Go 1.18 Is Released!

tl;dr: "Go 1.18 is a massive release that includes new features, performance improvements, and our biggest change ever to the language." New additions include (1) Generics. (2) Fuzzing. (3) Workspaces. (4) 20% performance improvements.

featured in #300


Three Minor Features In Go 1.18

- Carl Johnson tl;dr: (1) Version control information included in the binary. (2) New http.MaxBytesHandler middleware (3) Unreasonably effective strings.Cut function.

featured in #279


Trying Out Generics In Go

- Mark Phelps tl;dr: "I think that generics will be very beneficial to maintainers who create libraries for things like... searching, sorting, transformations, and the like. I can also see some them being extremely helpful for creating well-tested libraries around the various concurrency patterns that are sometimes tricky to get right."

featured in #278


Which Go Router Should I Use?

- Alex Edwards tl;dr: "There are probably more than 100 different routers available, all with different APIs, features, and behaviors." Alex evaluates 30 popular ones with a shortlist of the best options with a flowchart to help guide you.

featured in #259


Go'ing Insane: Endless Error Handling

- Jesse Duffield tl;dr: "My goal is not to convince you that Go is an objectively bad language, it’s to convince you that for certain people, working in Go feels like a constant struggle against stupid constraints."

featured in #254


A New Way Of Blogging About Golang

- Yehonathan Sharvit tl;dr: The klipse plugin is a JS tag that transforms static code snippets of an html page into live and interactive snippets. The code is executed in your browser and you can modify the code and it is evaluated as you type. The plugin supports Clojure, Ruby, JavaScript, Python, Scheme, Go, Jsx, Brainfuck, C++ and Lua.

featured in #248