Waiting for the break of day as Go turns 17

Jonathan Hall:

I wonder how Peter Satera feels about this. After after all these years of having 25 or six to four, we're finally finally gonna have four to six.

Shay Nehmad:

Nice. Man, such a good song.

Jonathan Hall:

And such a bad joke. Let's go on.

Shay Nehmad:

All right.

Jonathan Hall:

This is Cup of Go for 11/13/2026. Stay up to date with the important happenings in the Go community in about twenty minutes per week. I'm Jonathan Hall.

Shay Nehmad:

And I'm Shay Nehmad. The thirteenth. I'm gonna go ahead and deploy to production. Nothing bad could happen.

Jonathan Hall:

I was at Starbucks this week, and I saw a girl working there who had your name on her name tag. Shay? I didn't ask I didn't ask her if it was pronounced Shay or Shay in her case because she was busy and I didn't have a chance to interrupt her, but it made me wonder.

Shay Nehmad:

Yeah. I, you know, I got back at all these Starbucks people. Went on Halloween. I went as a Starbucks barista. I got a green apron and my daughter drew the little logo and sticked it on my...

Shay Nehmad:

On, like, in the middle of my chest. And then I went up to people I know, and I pronounced their name wrong.

Jonathan Hall:

Awesome.

Shay Nehmad:

Like that, you know, you know that one sketch? Hey, Aaron. That Key and Beale sketch. I did that. Yeah.

Shay Nehmad:

Joe Nathan. Joe Nathan. How do you like

Jonathan Hall:

the new things that people I have actually been called Joe Nathan before.

Shay Nehmad:

No way.

Jonathan Hall:

Yeah. Somebody I used to work with had a son who was Joe Nathan, and so anybody who knew them before they knew me would call me Joe Nathan.

Shay Nehmad:

Nice. Well, Joe Nathan, if you're listening, hi. How do you like the new digs? I have a new background because we moved offices. Oh, fancy.

Shay Nehmad:

How's the lighting? What do I need to fix?

Jonathan Hall:

You went down a couple floors.

Shay Nehmad:

Yes. Is is I did.

Jonathan Hall:

Okay. Yeah.

Shay Nehmad:

I... That's, like, creepily accurate because I went down exactly a couple of floors. I have a little clock here. I don't know if you see it. Like, it's...

Shay Nehmad:

It looks very nice here.

Jonathan Hall:

Yeah. Yeah. I do see it, the bottom half of it there.

Shay Nehmad:

Like, a big watchtower.

Jonathan Hall:

Cool.

Shay Nehmad:

Anyway. Yeah.

Jonathan Hall:

Anyway, we should talk about Go.

Shay Nehmad:

Before we talk about Go, one more thing. How was, yeah, like, your last week? I missed you because we... I did the episode Yes. All

Jonathan Hall:

You did. I've been busy because I just started a new job, so I've been busy the last two weeks. I'm not looking for work anymore. You don't need to keep sending me your agentic requests for applications or whatever.

Shay Nehmad:

Yeah.

Jonathan Hall:

Yeah. Well, congrats. You've doing it so far?

Shay Nehmad:

Yeah. Thanks. Congrats on the new gig. Alright. Let's talk about a little bit ago.

Shay Nehmad:

What do you say? Let's say just classic farm to table cup of go situation. I wanna talk about a new proposal about this new topic. I don't know if you've heard. We're running out of IPv4 addresses.

Jonathan Hall:

Aren't we scheduled to run out around nineteen ninety eight at this rate?

Shay Nehmad:

Yeah, but you should worry about it though.

Jonathan Hall:

I'm

Shay Nehmad:

worried. Be worried. Anyway, there's a proposal in the net net IP package to add a function net IP dot address dot two six. The number two, the number six? No.

Shay Nehmad:

T o and then the number six. Got it. Got it. It's pretty... Like, it's pretty simple.

Shay Nehmad:

Right? There's an unmap function for the ADDR struct. The ADDR struct generally, you know, used for representing IP addresses. Right? What does unmap do?

Shay Nehmad:

Do you remember? I don't know. So what it... Basically, what it is trying to figure out is taking... You know, it's checking if it's a four, like, IPv four, but in IPv six format, and then gives you I p v...

Shay Nehmad:

The address struct. Sorry. You can't do the other way. So you can go from four to six, which is the probably the reasonable thing you usually wanna do because you're and someone is forcing you to work in a network where you gotta do IPv6, but you're actually using IPv4 because nobody's running out of addresses. But the other way, you you have unmap, so you can have a two six function, which is pretty similar.

Shay Nehmad:

And I don't know. I just found it really... It is interesting to map I p v four to I p v six. It's not obvious because, you know, if you think about how an I p v four looks, it's like a number dot number dot number dot number. And so there's I p v four mapped I p v six addresses that look like colon colon f f f colon, and then just that I p v four part, not with colons, just those numbers, which is really, really ugly and looks very weird.

Shay Nehmad:

But you can also just represent it as IPV6, because eventually it's just bytes. Right?

Jonathan Hall:

Right.

Shay Nehmad:

Theoretically, you can use, you know, some other functions that existed, but it's a bit of a workaround. It's a bit of a weird workaround. And surprisingly, there's a blog post here on how to optimize like the compiler to do it super, super fast, which I found very surprising, but it's actually a case where, you know, this would be relevant. Like, if you're writing code that needs to parse IP addresses really quickly, you're probably working with networking equipment and stuff like that. So it's just a suggestion to add a function.

Shay Nehmad:

And like other suggestions that in the past, sort of the reason it didn't go in the first place is because there is a workaround. Like there is a pretty simple workaround to implement it, so you don't really need the function. You can just use netip. Avdrfrom16, ip as 16. It's slower.

Shay Nehmad:

It definitely looks weird, not as nice as just like 2.6, but there is a workaround. So I'm wondering what's your what's your take on this? Do you think we should do it? Like, add a new function to the net IP package to a struct for something that does seem pretty trivial?

Jonathan Hall:

I think it makes sense to include it even if it is trivial, because I think someone has to ask the question, do I need a function to do this? That probably means it's not trivial to think about, even if it's trivial to do once you understand it all. Does that make sense?

Shay Nehmad:

Yeah, of

Jonathan Hall:

course. But the fact that you had to explain this to me tells me that that I don't wanna have to bother to think about it to to do the thing.

Shay Nehmad:

Got it. I... My my thinking is we should definitely introduce this, so I upvoted it. Although, I don't know if these thumbs up count for anything. You know, there's a lot of, like, other cases like, oh, do I want a zone with the IP, or do I not want a zone?

Shay Nehmad:

And then, oh, what happens if I do prefix from .addr.2six? Like, the NetIP API is kind of weird to begin with just because networking is kind of weird to begin with. I don't think this is something negative about Go, but it's not as obvious that you should introduce it. Anyway, I upvoted it. I thought it was interesting.

Shay Nehmad:

If you are working on code that calls two six or you have this workaround, I think commenting down and being like, oh, this is useful for me, or oh, I would like it. That would be useful, because right now their proposal is just sort of open. It's not... I I don't think it's even active yet.

Jonathan Hall:

No. It's just a proposal.

Shay Nehmad:

Mhmm.

Jonathan Hall:

I wonder how Peter Satera feels about this. After after all these years of having 25 or six to four, we're finally finally gonna have four to six. Nice.

Shay Nehmad:

Man, such a good song.

Jonathan Hall:

And such a bad joke. Let's go on.

Shay Nehmad:

All right. What is on your radar? What do you want to share with a class today?

Jonathan Hall:

Do you remember a few years ago I spoke at Fosdim about becoming a Go contributor?

Shay Nehmad:

Of course. Yeah. You keep mentioning You

Jonathan Hall:

weren't there, but of course I talk about it all the time. I'm not going to be there in '27, but some people that have been on the show will be. There's going to be... Tiny Go is going be there. So, now I wish I was going because that would be a lot of fun.

Shay Nehmad:

Yeah. It's always fun. Tiny Go... I've I've been getting more into Tiny Go recently as listeners have probably realized.

Jonathan Hall:

And Mhmm.

Shay Nehmad:

I I I think their talks would probably be cool. So when I saw that they were gonna be there, I was like, oh, maybe I'll go. Then I realized it's in, Brussels.

Jonathan Hall:

Have you been to Brussels before? I'm guessing you haven't.

Shay Nehmad:

That's a good question. I might have.

Jonathan Hall:

Really?

Shay Nehmad:

I might have. I I think I've been to Belgium. I don't

Jonathan Hall:

remember. Okay. Well, Brussels is a... It's a nice place to visit. It's it's not my favorite city.

Shay Nehmad:

I've been there. I remember the the little atom looking... You know what I mean?

Jonathan Hall:

Yeah. It's like the Ottomium. Ottomium, I think is what it's called. Yeah.

Shay Nehmad:

Yeah. Yeah.

Jonathan Hall:

Yeah. It's a nice nice place to visit. I I don't... It's not my favorite Belgium Belgian city, but it is a good one. So it's a nice place to go.

Shay Nehmad:

So Fazdom twenty seven, if you're in the area January thirty and thirty first.

Jonathan Hall:

And it's free. Fazdom's sort of niche is that it's completely free. You don't have to buy tickets. You don't have to even order tickets. You don't have to get free tickets.

Jonathan Hall:

You just show up. That does mean it tends to be very crowded. But there's lots of people to talk to, lots of stuff to see. Tons of talks. The list of developer rooms, which are kind of what they call their tracks, is quite long.

Jonathan Hall:

Go, of course, is there, but so are things like amateur radio, which would probably be relevant if you're doing TinyGo, BSD, Linux distributions, all sorts of stuff and all open source related. So you're not going to see a lot from, you know, Microsoft Office or anything like that there.

Shay Nehmad:

Modern email. Pearl and Rakuten.

Jonathan Hall:

You know, I think I know who started that that dev room. He's been on our show before. We had Miki on to talk about Mox. Do you remember that way back in the day when I still lived? Yeah, he started that room to talk about I believe he started that room.

Jonathan Hall:

He certainly participates in it. So, there's a lot of stuff going on there. It's a fun And place to

Shay Nehmad:

by the way, shout out, like, the reason this is... First of all, if you're like, oh, this is free. I want to support. You can organize a dev room or even run a stand. It's like...

Shay Nehmad:

There's... You can go to volunteers.fazem.org. And also just shout out to the sponsors, you know, like, this is... The reason this is possible is because of the sponsors. I am running events in San Francisco.

Shay Nehmad:

I know how hard it is to run these things. You know, there's Google, Red Hat, ARM, COLT, Disney, like d s t n y, Duck Labs, Element, LMAX Group, Percona, Rocky Linux, and Universite Libre de Brucelle. Bruxelles. Anyway, good stuff from the sponsors. I hope it'll all go well.

Jonathan Hall:

They did a great job when I was there. I was actually quite impressed, especially for a volunteer operation. Within minutes of having finished my talk, I got an email with a link to the video of my talk so I could approve it. So it could be uploaded. So they've spent a lot of nerd effort getting things running smoothly and automated there.

Jonathan Hall:

It's it's quite impressive.

Shay Nehmad:

Nice. Talking about videos from conferences, I have a small sum to share. I opened up the Golang SF YouTube channel. So we have golangsf.com, and now we have a YouTube channel. We're like a real thing.

Shay Nehmad:

So there are three talks up there now. One about tools to modernize your Go code by Simon. Hi, Simon.

Jonathan Hall:

Mhmm.

Shay Nehmad:

Simon Long. A short talk about how using front end Go, it's like an HTMX Hugo talk about how we built the Go Langsaf site from James Heller, and a super funky AI talk from Brian Douglas about how he cloned his CTO to write a better Go code with agents, which has a really, really cool idea inside it, which I actually am gonna talk about, not just give you the title. So just because it's such a smart idea. Do you know JEV or, like, the System one models? Have you heard of them?

Jonathan Hall:

Yep. I sure have. Who hasn't? So

Shay Nehmad:

the idea is he... Brian looks at, messages on... He has a... That his whole startup is, like, let's save all your AI agent interactions. Right?

Jonathan Hall:

Okay.

Shay Nehmad:

And then he's like, okay, I'll use Jav to classify when a developer is angry or when the model is apologizing. And every time that happens, every time a developer pushes back, it's like, no, don't do it like this. Or every time the model apologizes, sorry, you're right. I shouldn't have done it. Like, try to turn it into a lint rule or like an agent's MD thing.

Shay Nehmad:

And then using a JEV to, like, classify those specific terms is then you have it in your entire team, then you sort of ambiently see every time someone pushes back or someone... It's sort of like looking at all the code review comments that someone leaves, but in their session. So he's talking... He talks about that and the rest of the things. And we did.

Shay Nehmad:

We uploaded the videos. I I took... Other than creating the channel, I did zero work. It's all James. But I'm...

Shay Nehmad:

If you're looking for the talks and you could make it through the GoASF meetup because you're not in San Francisco, you're busy that day, you can watch the videos now. Cool.

Jonathan Hall:

Well, thanks, James, for setting that up for for Shay and

Shay Nehmad:

for the rest of go, James. That dude's awesome. Seventeen years. Seventeen years of what? Is that how long you've been using Go?

Shay Nehmad:

Me? No. No, me either. I don't think I've been programming professionally for seventeen years.

Jonathan Hall:

Oh, wow.

Shay Nehmad:

Only fifteen. Young

Jonathan Hall:

pup. Yeah, so Go is 17 now. And there's a blog post about it on the Go blog. It's basically just an overview, kind of a brief history of what's happened in Go, kind of biased towards the last two or three years, Go 1.26, 1.27, some of the major changes that have happened. Reminiscing about how CPUs were so much simpler seventeen years ago than they are now and how that's introduced some interesting challenges, but also opportunities for performance improvements.

Jonathan Hall:

Tooling has changed. Maybe if you're new to Go in particular, it might be interesting to read through this and sort of get a sense for how much the language has changed over the last nearly two decades. You're not going to learn new tricks or anything about the language here, I don't think. There is a brief section at the end about looking ahead and some of the things that we might What's see coming in the next coming

Shay Nehmad:

down the pipeline? So, okay, CPUs have become more complicated. Go platform and tooling is better. Theoretically, it's more secure. Well, not theoretically.

Shay Nehmad:

It is actually more secure. JSON v two, GoLink Profiler, like all the things that we talked about on the show. Yeah. Basically, you've... If if this is your first episode and you don't want to catch up on the entire backlog, you can just read this and you'll get probably the cliff notes of all of our episodes.

Shay Nehmad:

But what's happening going forward? Are the Go team dismantling Go and moving to Rust?

Jonathan Hall:

I think they're going to call it gone, I think, after that. One of the big features coming up, which is actually on the backlog today, don't know if we're going have time to get to it in detail. I won't say this for another week, but it's collections, generic collections are coming to go. This is a series of proposals that have just been approved and I'm sure others will be coming. But the idea is to have collections in the standard library sets, maps, ordered maps, a number of things that are worth diving into, but probably for another episode.

Shay Nehmad:

Yeah, I think we won't have time today. We have too many things. It is a... Yes, it's an arbitrary milestone, but to me, seventeen years and being, like, top five means this is, a very mainstay programming language. It's not niche.

Shay Nehmad:

You can pick it for production. It's very hireable. I don't know. I felt like when I used Go originally, I had to defend it. Like, it was Mhmm.

Shay Nehmad:

It's kinda weird. Now, oh, Go. Yeah. That makes sense. It's like you have Python developers, and they're tired already from all the bullshit.

Shay Nehmad:

That makes sense.

Jonathan Hall:

Yeah. It used to be that when you mentioned to another developer that you use Go, they're like, oh, that new thing. I think I've heard about that. Now you say you use Go, like, oh, yeah, get it.

Shay Nehmad:

That boring thing. Why don't you

Jonathan Hall:

use Rust? Right.

Shay Nehmad:

It had like two months where it was cool.

Jonathan Hall:

Yeah. Well, I guess in other news, in one more year, Go will be able to drink legally in most US states. So

Shay Nehmad:

What do you mean? Isn't America 21?

Jonathan Hall:

Oh, you're right. You're right. It's Europe. I'm... I lived in Europe so long.

Jonathan Hall:

In Europe, it'll be able to drink in a year. Although the laws there are a lot more relaxed anyway.

Shay Nehmad:

Talking about videos and specifically, you know, I mentioned the Golangaseff recordings, I couldn't help but notice going through the links, going through YouTube, this like seven hours long video, I think it's called observability mantras to fall asleep to. Zen logging practices to calm your mind focus, high lo fi focus. Is that what it's called? No. I'm just kidding.

Shay Nehmad:

Tell us about your new video.

Jonathan Hall:

Yeah. So I've mentioned this on the show before. I did a course with boot. Dev. Longtime listeners probably recognize Lane Wagner has been on the show a couple of times, once as a guest, once as a co host.

Jonathan Hall:

He runs a company called Boot. Dev that does excellent online training courses for learning how to do software development, focused largely on back end development, but they're branching out. They have a podcast called, it was called Back in Banter. They've just relaunched it. It's now called Technically Qualified.

Jonathan Hall:

I'd recommend you check that out too. But I did a course for them about observability, logging metrics, all these sorts of things in Go, and the video version is now available online. You can watch me talk at a screen. If you don't like to watch me talk at Shay or if you want to watch me talk at other things, you can now watch me talk to a screen for seven hours and do the course. The entire course is free to do.

Jonathan Hall:

You can watch the entire video. We didn't cut anything out. We did the entire course on the screen, seven hours, and you can do it online too. If you want the interactive features, you do pay for it. But it's worth it if you're trying to learn programming.

Jonathan Hall:

And there's a discount code, of course, available.

Shay Nehmad:

Jay Hall. You

Jonathan Hall:

can save some money.

Shay Nehmad:

I'm proud Jay Hall. Straight up. Straight up. I used Buddha Dev when my wife was looking for work, and she wanted to brush up on SQL. We used the SQL course, which is not Jonathan's one, just to be clear.

Shay Nehmad:

It was just a thing on the site. And I'm not saying this because Jonathan's affiliated with Buddha Dev, even though clearly he's not subscribed, you can see from the share screen right now. And I'm not saying it because Lane was on the show and he's a really great dude. Legitimately, it's a good product. Like, for the thing it's supposed to do, which is teach you practical development things in a relatively engaging manner, you can't do better with your money.

Shay Nehmad:

Obviously, you can learn alone and you can use their free resources. You don't have to buy it for anything. That's not what I'm saying. But I legitimately think boot. Dev is really, really good.

Shay Nehmad:

That's my opinion. Unsponsored. Lane doesn't even know we're talking about it. I haven't watched the video. What are some highlights of the...

Shay Nehmad:

I mean, it's seven hours and I sort of already know how to do observability, but, like, what what would I learn?

Jonathan Hall:

So, I start with the log package in Go, which is pretty basic and you probably shouldn't really use it. But we start with the basics there, how to construct a logger, how to flush a logger when your program closes. We switch to SLOG for structured logging. Talk about security practices, how to make sure you're not logging sensitive data, passwords or other things that might not seem so sensitive, but might be. And then we also talk about metrics.

Jonathan Hall:

We set up Grafana and Prometheus and the little link shortener app that we use to demo the whole project. We tie it into Prometheus so it's exporting metrics. We set up some alerts so that when you start getting 500 errors, you can notice kind of trying to do the whole gambit of observability. It's not super in-depth everywhere, of course. It can't be.

Jonathan Hall:

It's only seven hours long. But we do touch on pretty much everything you need

Shay Nehmad:

to know to get started. Profilings, tracing. Awesome. I wish you would have given this course to like Microsoft yesterday when they had their like eighteen hours outage or whatever.

Jonathan Hall:

That's probably why they had the outage. They forgot to take this course first. Yes.

Shay Nehmad:

Yes. Yes.

Jonathan Hall:

Just for complete transparency, if you use the coupon code, I do get a small kickback. I don't know how much it is. It's not a whole lot, but I don't want anyone to think that I'm trying to deceive them into clicking on a link that...

Shay Nehmad:

Yeah. I mean, it's something cool that you worked on that's related to Go and it is financial. It's fine. But it's something cool that you worked on that's related to Go. It's not like Yeah.

Shay Nehmad:

We're we're not selling supplements. You know what I mean?

Jonathan Hall:

Speaking of supplements, if you want some.

Shay Nehmad:

Yeah. Call in now, and you'll get a set of steak knives.

Jonathan Hall:

For the first 10 callers.

Shay Nehmad:

Yeah. For sure. Alright. We have a lot more things to talk about. Specifically, there's a security release I really wanna talk about, and there's the collections thing.

Shay Nehmad:

And there's Python versus Go in the JetBrains blog, which is always nice. And all of that we'll have to wait for next week because we're out of time. No ad break, but we did wanna let you know ahead of time that this... The holidays are coming up. We'll take some time off.

Shay Nehmad:

Thanksgiving, I'll be in Arizona, so there's no episode. Christmas, I'll be in Hawaii. I think you're in Guatemala. Like, it's just not gonna happen. Yeah.

Shay Nehmad:

You're gonna have to just not gonna get your GO news for a while. We do have some interesting things coming up for sure, so look forward to that. But probably we're taking a few episodes off in the upcoming weeks at least, together with the entire US economy, I think. Right?

Jonathan Hall:

Yeah. It's crazy times, isn't it?

Shay Nehmad:

Other than the travel economy, I guess. So no ad break, but if you wanna help, you can support us either by sharing the show, commenting, whatever. You can find all the links on cupago.dev, including our Patreon. Thank you to all our beautiful Patreon supporters for supporting the show, directly. This is a hobby.

Shay Nehmad:

We do it for fun, but, you know, we got a host, we got to edit, we got to whatever. All this stuff costs money. Buy all the supplements that we're trying to talk off. So, you know, give us give us your money so we can use it for MLM, Go based MLM, multilevel marketing schemes.

Jonathan Hall:

Right. We're sending an MCP for our MLM now.

Shay Nehmad:

Woah. That's a good... You gotta connect your agent, but it can't actually call a tool. It just can call three other agents, and they will call three other agents. Alright.

Shay Nehmad:

Enough. Enough of that.

Jonathan Hall:

We'll see you next week.

Shay Nehmad:

Thank you all so much for listening. Program exited. Program exited. Program exit up. Goodbye.

Creators and Guests

Jonathan Hall
Host
Jonathan Hall
Freelance Gopher, Continuous Delivery consultant, and host of the Boldly Go YouTube channel.
Shay Nehmad
Host
Shay Nehmad
Engineering Enablement Architect @ Orca
Waiting for the break of day as Go turns 17
Broadcast by