We’re up to the second release candidate for Go 1.22, which should be released quite soon. In my last blog post, I wrote about my work on
reflect.TypeFor for Go 1.22. This time, I’ll be writing about how I proposed and implemented slices.Concat.
The first release candidate for Go 1.22 is out, which means it’s almost time for the final release and it is time for me to blog about what I worked on this cycle. As usual, my contributions were small, but they were mine, so I’m going to talk about them from a behind-the-scenes perspective. First up is reflect.TypeFor.
It seems like Web Components are always just on the cusp of finally catching on. They’re like the year of Linux on the desktop for frontend nerds. I keep reading the latest articles about Web Components as they bubble up on my social media feeds, just hoping that there is something that I missed out on and now they have more substance, but I always end up feeling disappointed. I wrote up my thoughts on Web Components back in 2020, and it doesn’t feel like the conversation has progressed in all that time. It’s like an Eternal September with people constantly going back to the original promise of Web Components, in spite of the reality having long since shown itself to have fallen short.
Go 1.21 has been released! For past releases, I wrote up my notes on what’s new in Go 1.18 (part 1, part 2), 1.19, and 1.20 (part 1, part 2, part 3), but I thought I would sit this round of blogging out, in part because there have been some good roundups of what’s new elsewhere already, and in part because I’ve been on family vacation until recently and haven’t had time to write much. However, I didn’t want to let 1.21 go totally by without talking about what I contributed, because if I don’t talk up my own contributions, who else will?
Ten years ago, I wrote Go: The Good, the Bad, and the Meh. Way back in 2013, it made it to the front page of Hacker News and got over 400 comments on /r/programming. I don’t have analytics from back then, but I suspect it’s one of my more discussed pieces of writing, and it was definitely one of my first experiences of getting a lot of feedback for my writing. (Then again, I don’t have any evidence of whether John Carmack read it, so maybe it’s not the one for my obituary.)
Anyway, it’s been a decade, and in that time I’ve gone from playing around with Go as an amateur to being a professional programmer and using Go as one of my core languages. So, I thought it would be fun to look back at what I got right, what’s changed since I wrote it, what I missed, and what I got wrong. Feel free to read or re-read the original post, or just stick to my reflections here without digging back into it. Just know that as its title suggests, I wrote it with three sections for what I thought was “good”, “bad”, and “meh” about Go at that time.
Note for anyone submitting this post to social media, the quotation marks in the title are load bearing. Do not remove them.
TL;DR: Just import github.com/carlmjohnson/versioninfo and use
versioninfo.Revision to automatically include a Git hash in your Go application.
Curious how it works? Want to make your own version info package? Read on.