`-`

Jonathan Hall:

This show is supported by you, our listener. Stick around until later to hear a little bit more about that. This is Cup of Go for Friday, August 1, or maybe Saturday, August 2, something like that, 2025. Keep up to date with the important happenings in the Go community in about fifteen minutes per week. I'm Jonathan Hall.

Shay Nehmad:

And I'm Shay Nehmad, and it's summer. Woo hoo. I don't know about you, my kid is having her last, like, structured activity day today and starting next week. Actually, starting this weekend, it's survival mode. Actually, having a kid without a kindergarten.

Shay Nehmad:

Do you have, like, camps or anything planned?

Jonathan Hall:

No. Actually, school preschool starts next week here. We're trying to get, my eldest son enrolled. So yeah.

Shay Nehmad:

Little Bobby Tables, we call them.

Jonathan Hall:

There we go.

Shay Nehmad:

We have a lot of survey things to talk about, a lot of proposals to talk about. We're gonna keep it like a pretty standard Cup O Go episode where I'm gonna stick to the topics that I know best, and Jonathan's gonna stick to the topics he knows best, such as complaining about people not knowing what they talk about, which you do regularly on LinkedIn.

Jonathan Hall:

You don't know what you're talking about, man. Never do that on LinkedIn.

Shay Nehmad:

I love the agile we should do, like, an agile dedicated episode. Let's let's put it in the in the backlog, and we'll get to it in the sprint planning.

Jonathan Hall:

We'll get to it never.

Shay Nehmad:

Yeah. For now, let's talk about the surveys, though.

Jonathan Hall:

Yeah. So we have a couple of surveys we're gonna talk about. We're also gonna talk about some proposals, new ones and old ones. And I I don't know. That might be the show.

Jonathan Hall:

We'll see how how far we get. But first, surveys. Stack Overflow's annual irrelevant survey is out. I say irrelevant for two reasons. One, Stack Overflow's relevance is just plummeting lately.

Jonathan Hall:

And second, they only talk about AI, and that's not the point of this show. They do talk a little bit about other things, and we're gonna scrape the bottom of the Stack Overflow survey barrel to find the other things. There's nothing to report, honestly. Like, Go has hit a comfortable place on the Stack Overflow charts. It goes up and down a little bit here and there, but there's not like, I don't know, ten years ago, oh wow, Go jumped 15%.

Jonathan Hall:

That doesn't happen anymore. Go has has just a steady place. Wouldn't you agree?

Shay Nehmad:

Yeah. I mean, Stack Overflow survey has this interesting and actually beautifully laid out. Like the UI is great for the survey. I love it. Has like hype versus reality thing, which I kinda like.

Shay Nehmad:

It shows the distance between like how many respondents want to use the technology and people who have used it and want to actually continue using it. So you have a great example with like Zig where or Elixir where like, you know, more than 60% of developers say, oh, I want like, I heard good things about it and I want to use it, versus like actually 5% or 6% actually using it, which I get, right? I heard a lot about Zig and I use Ghosty, which is that, you know, terminal developed by the HashiCorp guy, which is Go all his life. Oh, yeah. Yeah.

Shay Nehmad:

And he's like, I put, I think, dollars 300,000 in the Zig Development Fund. I'm like, oh my God, I wish I was this person developing, like, open source terminals for my free time. While in reality, obviously I'm not using Zig to make money because I'm at a startup and I need to make money. There's this thing called the Gleam I even didn't get a chance to look at. Just heard

Jonathan Hall:

about it. It's like

Shay Nehmad:

70% admired, but actually 3% have used it in the last year. And again, when people say they use it, doesn't mean they successfully used it. It's just started doing it.

Jonathan Hall:

Yeah, they touched it

Shay Nehmad:

at At some some point, Rust is really high up there on desired, but it is surprisingly on desired. Like 30% of people say they've done Rust and they will continue to do Rust, which is surprising to me. I don't know that many people make money doing Rust. Maybe it's the side project language of the world or whatever.

Jonathan Hall:

Could be.

Shay Nehmad:

I don't know, Zed, I've started using Zed, not the programming language, the editor. That's written in Rust and that's cool. And Go is comfortably doesn't have a lot of space between the desired and admired, which I think is is a really good sign because there isn't a lot of hype to fall off of, right? There aren't thrones of people who think Go is incredible when they actually gonna use it, they're gonna find all the words. 25% of people who are in the desired part, which means I've used it, I wanna continue using it, it's great, 23.4%.

Shay Nehmad:

And 56% admire it, which means like for every Go developer that has used it in the last year, there's one other developer from like another language who says like, oh, Go seems interesting. I wanna use it. That seems reasonable to me versus like, know, Gleam. 70% of people will say they wanna use it, but only 3% actually have. Like, I think that's a that's a healthy statistic for the language because it means it's, like, sustainable, but also good.

Shay Nehmad:

Like, people actually like it.

Jonathan Hall:

I think it's interesting. I think I called this out last year too. I think it's interesting that none of these are, like, reversed. Like, I can imagine that being true for certain tools. I don't know.

Jonathan Hall:

I'll pick on Jira since it's not related to Go at all or language it's not part of the language wars. A lot of people hate Jira. I don't know if more people hate it than use it, but certainly, I've met a lot of people who use it and hate it. So I'd actually kinda see expect to see there to be at least a few tools, and Jira might be one, where the people who want to use it is fewer than the people who actually use it. But this chart doesn't seem to show that anywhere.

Shay Nehmad:

So when you look at Jira, like code documentation collaboration tools, it's like it's kind of weird. Jira is is not really a code documentation or collaboration tool, but GitHub is now number one. Jira is, number four. And I don't know. It's it's, kind of confusing to me, but I don't know.

Shay Nehmad:

Monday, for example, is, very low on desire. They have a 1% desire thing. And surprisingly, Linear is really low on that list. Obviously Linear, like this is not sponsored. But hey, Linear, if you do wanna sponsor us, like, I'm open to talking because one thing we do though on this show is like we're only sponsored by tools we actually like.

Shay Nehmad:

Man, I like linear. It's fast. So not a lot of people use it. It's like 3.6%, but more people admire it than people admire Jira. But I guess, I don't know, it's just market share.

Jonathan Hall:

Overall, this whole family of charts, the main thing I can get out of this is where the hype is right now.

Shay Nehmad:

Yeah, that is true.

Jonathan Hall:

Rust is hyped, Zig is hyped. Elixir is hyped. Gleam is hyped. Valky is hyped. Cargo is hyped.

Jonathan Hall:

So, you know, that's the main thing I see is where's the biggest difference between people using it and want to use it? That's just where this year's news cycle is hyping up things for for potentially legitimate reasons, or maybe it's just just bandwagon effect, but whatever.

Shay Nehmad:

Hype is not necessarily a bad thing. People should be excited about the technology they're using. Like, I'm excited about Go. Like, I'm hyping about Go. Super hyped for all the things that's happening there.

Shay Nehmad:

It is kind of worrying when you see a very big gap between, like, people actually using a thing and the hype, just because you're, like, afraid of the of the crash later. Generally, though, one the the one other thing I can get from this chart is how beautiful charts can be. They did a good job on the visualization this year. Looks good. There is another chart you pointed out, which is, two point three worked with versus want to work with.

Shay Nehmad:

Yeah. Can you can you

Jonathan Hall:

explain this one to me, please? So this shows of course, first off, it only shows answers above a certain threshold, depending on the chart. Well, it looks like, yeah, for some of the charts, it's 2,500 responses. Some it's 2,000. But basically, what it shows is of people who use a particular language, what percentage of them want to use a new language?

Jonathan Hall:

So for example, 5,455 JavaScript users want to learn Go, and 6,146 JavaScript users want to learn Rust and so on and so forth. And so this shows this relationship between a number of of languages more or less, I want to say kind of stacked in terms of like how high level the language is, but that's not entirely true. Like PowerShell and PHP are at the far left and Go, Rust and Kotlin are the far right. And in the middle, you kind of sort of tend to move towards higher level languages, but that's not entirely true because TypeScript is to the right of C. So I don't know how

Shay Nehmad:

they're organized. Generally, this chart shows that a lot of people want to move out of JavaScript and a lot of people want to move into Go, Rust, Kotlin, TypeScript, C, C plus plus and C. You know, it's of a migration pattern sort of thing. For example, Python developers aspire to use Rust and Go. That seems to be true from this, chart.

Shay Nehmad:

Like 5,000 people who currently are using Python, when they're programming wanna use Go, you know, 6,000 of them wanna use Rust. When you click by the way, this is one thing I like about this, survey, when you you can this is like all respondents, right? And immediately my thought goes, okay, these people wanna learn Rust because it's hype, but they're not actually making money. When you cut it by professional developers, a lot of the languages get immediately cut off. They just don't appear here anymore, right?

Shay Nehmad:

When you look at professional developers, Kotlin is not an option anymore because there's just not enough professional developers who answer the survey who find this relevant. And I think it goes relative size becomes bigger. So it's actually like, okay, if you make money using programming, which is not the only legitimate thing, I'm not like saying this is being a professional developer is the only legitimate developer thing. A lot of people are in academia or open source or just using programming as a hobby, their response is just as valid. But me being a professional developer and getting paid for doing this for the last thirteen years or whatever, makes sense to me to see that Go, which is a programming language born out of a company and aimed mostly at productivity and, like, actual high scale system.

Shay Nehmad:

When you look at professional developers, when you slice by professional developers, like, it's almost half of the people wanna migrate to it at the end.

Jonathan Hall:

I think it's interesting. If you if you look at learning to code, that's just the busiest one, like, which kind of makes sense. I mean, people learning to code don't necessarily have a particular focus. It's the only one with assembly language on the list. You know what?

Shay Nehmad:

That's good. Yeah. I mean, I started with assembly, by the way.

Jonathan Hall:

I I started with basic and then learned Assembly. So, yeah, it's it's a good thing to learn. It's not gonna make you much money unless you're doing very niche types of stuff. But, yeah, it's interesting to see that, and Zig shows up here, and I don't think it shows up on any of the others.

Shay Nehmad:

Lua. So Lua is a good a great example. You know why why I think people are excited about Lua when they're learning to code right now?

Jonathan Hall:

I do not know why.

Shay Nehmad:

It's because of Balatro. Okay. Filipa put, like, the Valatro music here in the background. As many seconds as we can get with, without getting sued. It's just like poker, poker video video poker roguelite sort of it's really good.

Shay Nehmad:

Like, I'm I'm almost hesitant to recommend it to you because I want you to stay on the show instead of playing Balatro. And it's famously just one huge ugly Lua file. So so, like, I think a lot of people who learning to code may be excited about that just because of the this specific game. Like, I would be surprised if it's not a big reason. Anyway, summarize this this survey for me.

Shay Nehmad:

What what what do we learn from it about Go?

Jonathan Hall:

Yeah. I I think I already led with the with the summary, which is that Go is at a steady, comfortable place. It it still can be kind of fun to nerd out about these numbers, but there's not a whole lot of velocity happening here. Go is at a solid place. I think it's found its place.

Jonathan Hall:

It's not any risk of dying. It's not going to take over the world either.

Shay Nehmad:

There is more information here, you know, about salaries and experience and like how much you get paid for your role in The US and in the entire world and technology purposes and a lot about AI, of course. Job satisfaction, that job satisfaction, by the way, was really surprising to me. More developers are happy at work this year, but generally, 28% are not happy at work. That doesn't track with what I feel or have seen in both, tech communities I've been at, Tel Aviv and San Francisco Bay Area. I think most software developers are excited about software development and like it.

Shay Nehmad:

So I'm really surprised to see almost 30% of them are not happy at work. Well, you can

Jonathan Hall:

be excited about software development and also not be happy at work.

Shay Nehmad:

So Well, that's actually true. People people also rank why. So so it's like an interesting data to go through, but I haven't unlocked anything. I I didn't feel like I knew already. And we have another survey that shows pretty much the same thing about Go, right?

Shay Nehmad:

Basically.

Jonathan Hall:

So he did a recent survey also, Pragmatic Engineer 2025 survey, and it's not clear to me exactly what methodology he used. I think based on some comments I saw on LinkedIn, it was more of a free form, or at least there are parts of it were free form, like tell us how you feel about something. And the reason I say that is if we jump down to about halfway, we get to the most loved languages and most loved and hated tools. And Python's number one. Python's most loved.

Jonathan Hall:

It doesn't give us charts showing like percentages. It just ranks them. Go comes in at number nine. And then if you look at most loved and hidden tools, Versus Code is loved. JetBrains IDEs are loved.

Jonathan Hall:

Jira is the most disliked tool with Microsoft Teams trailing it. The way that this was apparently done was he sort of took textual responses, at least in some cases. If somebody represented a positive sentiment about a thing, it was considered loved. If it was a negative sentiment, was considered disliked. So I don't think this is necessarily as rigorously done as Stack Overflows.

Jonathan Hall:

Not to say that Stack Overflows is perfectly statistically legitimate either, just considering selection bias and so on. But it's still interesting to see, and everybody loves to see the most hated tools so they can feel like they have someone to commiserate with when Jenkins is on the list.

Shay Nehmad:

Again, Go being mentioned, like, it's not a niche, like, you know, Clojure, Objective C, Dart, like super elixir, super niche thing, but it's not like TypeScript or Python, the number, like, you know, it's not the number one language people learn for the first time or, you know, the most common one. Seems to track with what we know, right? It has enough community to be a perfectly reasonable choice. And I also feel like most of the people who mentioned ago are probably on their second job already, right? Or their second language.

Shay Nehmad:

So you tend to have a more senior just vibe in general. And, yeah, this this survey doesn't mention, Go in a specific manner, but it's still interesting when you talk to 3,000 developers, you're gonna get a lot of people talking about Go, which is interesting. So survey says Go is a language.

Jonathan Hall:

There we go. It's settled. Let's move on to some proposals. We have a few to talk about. I guess we could start with a new one.

Shay Nehmad:

Yes. It is new, but actually refers to something we talked about. If you remember a few weeks ago, we talked about unexpected security foot guns in Go's parsers from the Trails of Bit blog. Yeah. Yeah.

Shay Nehmad:

I wanted to mention a very good blog post. I like the blog post. With Jeremy filling in for me, you guys tackled Anton's old new content, right, the interactive show notes and the JSON v two thing. I feel like this is the blog post version of your knowledge in a sense.

Jonathan Hall:

Oh, okay.

Shay Nehmad:

It's from the Trail of Bits blog in, Vesco Franco. I hope I'm saying that correctly. So they mentioned some just things you should worry about when you're looking at the the JSON parser. Two of them, if the tag is dash, the JSON tag is dash, you're have a bad time. So what what do you think should happen if the JSON tag is dash?

Shay Nehmad:

Like, just to, you know?

Jonathan Hall:

Marshaling or unmarshaling or or both, I guess. Unmarshaling, it would it would ignore the tag. Right?

Shay Nehmad:

So it's actually, it it doesn't work. No. With unmarshaling, wouldn't do anything. Yeah. It's very hard to understand how to use that tag.

Shay Nehmad:

So to tell the parser to not unmarshal, you must add the dash JSON tag, But it doesn't work. Yeah. Like, if you add something like omit empty, then the dash doesn't behave as you'd expect. Oh. If you put dash on its own, it works.

Shay Nehmad:

But if you put emit empty or whatever, it it it will parse it as expected, which is the complete opposite of what you'd expect. And the reason it's like a security foot gun, could imagine like, you know, a password field or or is admin field or some field you wouldn't want to marshal or not marshal, like an internal thing.

Jonathan Hall:

Mhmm.

Shay Nehmad:

So you put like dash and but you copied the or your, you know, even better, AI autocomplete, just copy the rest of the tags you're normally using, like a mid empty or a mid zero. And then when you try to pass it, it does happen. So trails Trail of Bits did like a SAMGRAB rule that detects it. And this proposal by Ellen Donovan from the, you know, Go Google team was just like, let's just add these two checks to the struct tag analyzer so you get it built in, so you don't have to, like, install SemGrep and whatever. Because this is obviously a mistake.

Shay Nehmad:

Like, there's no valid use case for it. This this seems like a no brainer. Should it should just be added, right? Yeah.

Jonathan Hall:

Sounds like it. There's

Shay Nehmad:

since I opened this page, there have been three extra upvotes on this. So it seems like people are are not like, it's not hugely exciting. People are just positive about it and don't have any comments. Also seems like it's an easy change. So I'm wondering, like, how how to add something to the Struct Tag Analyzer.

Shay Nehmad:

But if you if you wanna go and do it, maybe you can do it right now. Interestingly enough, the rules right now are SemGrep rules, and SemGrep is not a Go thing. It's, I think, OCaml or something like that. It's like weird language. But the rule itself is, you know, just a static analysis.

Shay Nehmad:

So it doesn't really matter what language the tool itself is written in.

Jonathan Hall:

Would OCaml be one of the languages you want to learn as a Go Developer for next year? Oh.

Shay Nehmad:

You know what? Honestly, next year, I don't wanna learn any new languages. Oh. I feel like I wanna go deep with certain technologies.

Jonathan Hall:

There you go.

Shay Nehmad:

I assume just because of the place of the workplace I'm in, I think I really need to understand, AI more deeply. Yeah. But I

Jonathan Hall:

don't know.

Shay Nehmad:

Well, let's see where the where the wind takes me.

Jonathan Hall:

So I think next year, I'm gonna focus on going deep with Go. Pure Go. Nice. Nice segue. Yes.

Jonathan Hall:

Yes. So do you have any idea what Pure Go means? Just off the top of your head, if you see a tag in a in a a Go file, a build tag, know those are, you see one called Pure Go, what do you think that means?

Shay Nehmad:

Well, the snarky answer is like grass fed, organic.

Jonathan Hall:

Free range.

Shay Nehmad:

Free range, yeah. But in reality, what I think it means is, like, it doesn't have any c bindings. It doesn't have like, it's just Go code that's compiled to binary directly.

Jonathan Hall:

Well, then do I have a proposal for you? Because that's not what it means.

Shay Nehmad:

Oh, really? Yeah. What what does it mean then?

Jonathan Hall:

So that that has been the question since December 1837 when this proposal was

Shay Nehmad:

17? This

Jonathan Hall:

is an old proposal. It's in the twenty three thousands. We're up to 70 right now. So this is an old proposal. So back in 2017, when this proposal was open, we had a number of different tags that were used for kind of similar purposes.

Jonathan Hall:

We had an unsafe tag, we had a safe tag, we had PureGo. And the problem is that there wasn't a clearly defined or documented convention about what pure go meant. What

Shay Nehmad:

did it do though?

Jonathan Hall:

Like what? It wasn't really defined. In some cases it meant no see go. In some cases it meant no assembly. In some cases it meant no unsafe code.

Jonathan Hall:

It just wasn't well defined. And there were many packages that used it differently or in overlapping ways, or there were packages in the standard library or elsewhere that were completely safe but didn't have the safe or tag or etcetera. This matters primarily, or at least it did matter primarily for different runtimes like on App Engine with WebAssembly or Gopher JS. This issue predates WebAssembly, but it's relevant now. So many years later and a lot of comments later, they have decided what PureGo actually means.

Jonathan Hall:

It's a little bit unfortunate because it's a little bit of a misnomer, but the the conclusion is that pure go means it doesn't use assembly. It could still use see go, but there's another build tag for that. There's a a a no see go tag for that.

Shay Nehmad:

So That's surprising. Like Yeah. You hear pure go, can you use see? But I guess it's more of like see what was actually used, right?

Jonathan Hall:

Yeah, so most of the remain After filtering out the safe and unsafe, which already had their tags, doing that, filtering out CGO versus no CGO, basically what remained was assembly versus non assembly. So we've settled on pure go being pronounced no ASM, essentially. That's at least what it means. So that's what this means now or will be you know, it's been accepted so that will be added to the documentation that peer go means no assembly. How does this affect you and me on a daily basis?

Jonathan Hall:

Probably it doesn't at all. But if you're doing low level programming that might use Assembly or Sego, now you know how to properly tag your files so that they get compiled or not, depending on how the consumer of your library wants to compile. Cool.

Shay Nehmad:

Why did it take so long? I'm not trying to be sarcastic. I'm legitimately asking. It sounds like I such an easy

Jonathan Hall:

think it's a good question. And I think the main reasons are, one, it was just ambiguous to begin with. And two, there wasn't really a driving reason to to answer the question until recently. And I think the driving force behind this is another proposal, which we I won't go into details right now, but it has to do with the new hash mapping that was part of the standard library and is sort of being moved into the runtime or yeah. That's oversimplification.

Jonathan Hall:

But as a Gopher JS maintainer myself, a few versions ago, back in 01/2017 or something like that, changed their map hash algorithm from one that was written in Go to one that required assembly. And that's when I started following this issue because I wanted a pure Go implementation because we don't have assembly in Go for JS. So has to do TLDR has to do with where's the boundary between the runtime and the standard library and how should you tag the files that sort of sit on that boundary? I hope that's a useful answer for somebody.

Shay Nehmad:

Well, now that it's accepted, it's just a documentation change. At least now it's clear.

Jonathan Hall:

Yes. Yes, indeed.

Shay Nehmad:

Let's break colon equals time dot duration for a second and talk about some things we need to talk about. Like Jonathan mentioned at the top of the show, this show is supported by you. We really appreciate all our Patreons helping us make this happen. Unfortunately, had some issues, actually withdrawing the funds, but I'm sure we'll figure it out. We have a new member, CocoRox.

Shay Nehmad:

You for supporting the show as well, and Cupago Mini. This is a new pledge level. If you wanna support the show, but you don't feel comfortable with, like, a big pay of $8 a month, which is, like, significant. Right? It's, like, more than Slack for a per seat per user.

Shay Nehmad:

You can do Cup of Gopher mini, which is just, $3, and and and it is, meaningful for us. If you wanna find the link to the Patreon or our swag store or the Slack channel where we talk about stuff, you can find everything at cupogo. Dev. That is cupogo.dev. And you can also email us at news at cupogo.

Shay Nehmad:

Dev if you prefer that. Supporting the show doesn't necessarily mean financial support. Talking about the show at meetups or with friends or coworkers is also a great way to support the show. Like if you heard something this episode and you're like, oh my god, I gotta tell people at work about this developer survey and nerd out about it during lunch. By all means, talk about it, but when you're done, say, oh, you know, by the way, I heard about it in in a podcast.

Shay Nehmad:

Called Capago. It's pretty good. Finally, if you want the one final way to support the show, leaving a review or writing about us on your blog, whatever, Spotify, Apple Podcast, all these rating systems, that helps a lot. It helps put the show in front of people who aren't directly connected to us through algorithmic recommendations, so that's great.

Jonathan Hall:

Or say something wrong about us on LinkedIn and I'll jump in and correct you.

Shay Nehmad:

That's good. Yeah, you can just spread misinformation about the show for sure. A 100% a good idea, nothing bad will come out of that. Alright. Back to news.

Shay Nehmad:

So, Jonathan. Yes. That's me. I have pop quiz. Uh-oh.

Shay Nehmad:

What is dot TTF extension?

Jonathan Hall:

True type font?

Shay Nehmad:

That is true. What is dot VSD?

Jonathan Hall:

Isn't that, like, some sort of meeting invite or something? I don't know what that is.

Shay Nehmad:

Microsoft Visio. Visio. Okay. It's a Visio. It's like the charting, thing.

Shay Nehmad:

Yeah. Dot x u l.

Jonathan Hall:

Sounds like something I get in trouble for saying it in front of my mother. I don't know.

Shay Nehmad:

So I'm reading these off the list. That is the common media types, MIME types. MIME types is like a thing where if you want to communicate HTTP from a client to a server, You had a header, the header is like, what's the media type I'm gonna look at? Or what media types am I allowed to accept, etcetera, etcetera. Usually when you develop Go, you see like application JSON, right?

Shay Nehmad:

Or Textblain or application OctetStream, which is the default value for just all other cases. And there's an official registry of all these media types. It's like an important standardization thing. So, you know, when I say, for example, you know, if I want to give you an AVIF image, then the MIME type is imageAVIF. But if I wanna give you my Amazon Kindle book, then it's ASW, application /v and d dot, amazon.ebook.

Shay Nehmad:

So obviously someone thought a lot about this, like name spacing and how does it work, blah blah blah, V and D stands for vendor, etcetera, etcetera. So there's a lot of thought that went behind this, including, you know, applications that are executable and dangerous. They start with X dash, so you could immediately filter anything that contains X dash for security reasons in your firewall, blah blah blah. What does this have to do with Go? So there's this proposal which has been accepted about, like, built in types for, for MIME types.

Shay Nehmad:

It's a pretty arbitrary list and it's a lot shorter than the Mozilla one. It includes just, you know, things you would really know, like GIFs or GIFs, whatever, HTML, JPEGs, JavaScript, JSON, PDF, PNG, Wasm, but, like, I don't know, not other extensions.

Jonathan Hall:

Mhmm. So Yeah. It's a really short list, isn't it?

Shay Nehmad:

It's, like, 16 or whatever. And I don't know. It doesn't include Java archives. Like, doesn't include dot jar. Or dot zip.

Shay Nehmad:

Or dot zip. Yeah. Like or dot MIDI. I don't know. Which is these useful formats.

Shay Nehmad:

Why are you laughing? Every time you hear the intro for the show, it's based on MIDI files.

Jonathan Hall:

I thought it was based on audioimpeg level three or whatever that's called.

Shay Nehmad:

Oh, no. It's not actually like, I I did render it. Like, I did export it as a Oh,

Jonathan Hall:

I see what you mean. Yeah.

Shay Nehmad:

You know what? I think I actually exported it as a FLAC file to be, like, lossless perfect audio, but it it it started as MIDI. At least the drums because I don't have a drum set at home. There was a short discussion about the way, this list is sort of arbitrary. Someone pointed towards a specific spec called mime sniffing, which is like these are specific types that we wanna cover, sort of arbitrary.

Shay Nehmad:

You know, all standards are arbitrary. All words are made up. So it's kind of hard to decide on one, but they decided on one. The proposal is to expand the table to, you know, everything that Chrome and Firefox have. So it's gonna be 64 entries.

Shay Nehmad:

And if Chrome and Firefox add new entries, ghost standard library will follow suit, which makes a 100% sense to me, right? Like, MIME types are mostly a client side thing, and Chrome is the like number one browser. So just following that seems like a good standard.

Jonathan Hall:

So from a practical standpoint, what does this provide? It provides a mapping between a file extension or a file type. Does it do anything else?

Shay Nehmad:

No. Just that mapping. The the thing it'll help you is if you want to upload a file using Go HTTP client, you get the header you need to put in easily. You don't have to go and open the documentation and see, oh, yeah, right, .arc is applicationxfreearc. Like, you'll just have that.

Shay Nehmad:

Yeah. Useful. Standardization.

Jonathan Hall:

It's a superpower. One last proposal. We've already talked about this, so I won't go into details, and that is the new multiple handler support for the SLOG package. This has been accepted. We mentioned it, I don't know, three weeks ago or something when it was new.

Jonathan Hall:

It's been accepted. And as of three hours ago at recording time, a CL is open with an implementation.

Shay Nehmad:

Three hours? Damn. We're getting a break.

Jonathan Hall:

Yeah. You heard it here Breaking news. If you're into that sort of thing, go go read it. It's a pretty short CL. There's some comments there.

Jonathan Hall:

Add some comments of your own if you want, if you have concerns or questions. But it's just kinda fun to watch this sort of thing happen. So I I expect this it won't be in 01/2025, unfortunately. The freeze has already passed. The RCs have been been rolling.

Jonathan Hall:

So 1.25 will be out any we're we're into August. Any day now, it will be out. We'll probably be talking about talking about it next week. This should be in 01/1926.

Shay Nehmad:

And just a useful thing. Like, I'm surprised it didn't ship with it, but it's not a huge deal either way. Right? Yep. Cool.

Shay Nehmad:

Let's go to the lightning round. Lightning round. My thing for the lightning round is actually funny that you mentioned the CLs and that it's fun to look at them. Because if you remember a while ago, we mentioned the incorrect expansion of empty string dot and double dot in OS. Lookpath by Olivia Menguel, listener of the show.

Shay Nehmad:

I ended up, just because we reported on it, opening the change list and writing some comments on it and having some other people who actually have the permission to approve the code review comment on it. It was really interesting to see it happening all the way through. Because for example, Olivier started and then we suggested the export it to refactor a thing into a function and refactor some constant into a constant, just, you know, normal code review stuff. And then there are some other considerations which are, listen, you can't export a thing without going through the proposal process. So just don't export it, just like keep it private.

Shay Nehmad:

So there are some considerations when you're developing for a standard library or a language that are not normal when you're developing just your own company's code, right? You don't think about every exported variable as a new, like part of an API interface that's super important. Also some fuzz testing discussions. It it was just a lot of fun. So thanks Olivier for reaching out to us about the security problem in the first place and for detecting it in the first place and for fixing it.

Shay Nehmad:

I just basically did nothing. I just enjoyed watching it. And the link to the change decision is shown as if you wanna see for yourself.

Jonathan Hall:

Cool. And I wanna talk about a little tutorial. You ever written a TUI before?

Shay Nehmad:

Of course. Of course.

Jonathan Hall:

Of course.

Shay Nehmad:

I love doing them. Not not a useful one, but I love Okay. Doing

Jonathan Hall:

I've dabbled a little bit. But if you've never written TUI and you're interested in starting TUI, by way, terminal UI, so interacting, not a CLI, interactive terminal stuff, like incursive type of thing.

Shay Nehmad:

They're having a Rennesas because of a claw code and all the all those, like, terminal coding agents. People are rediscovering the joy of, like, terminal UIs.

Jonathan Hall:

Oh, yeah. So this tutorial is how to do it with with Bubble Tea, which is a library that does that for you. So from from the charm folks. Right? So, yeah, link in the show notes.

Jonathan Hall:

I don't know what else to say. Learn how to get rid of TUI with bubble tea.

Shay Nehmad:

Have you tried their new AI agent coding thing from

Jonathan Hall:

Charm really? I haven't

Shay Nehmad:

read it.

Jonathan Hall:

I saw it mentioned recently, but I haven't tried it yet.

Shay Nehmad:

So it's a 100% go. Maybe you should we'll we'll cover it at some point. We we we know it's out. We haven't had a chance to look at it yet. But, yeah, they they also have dabbled in the coding agent, which is basically a for loop on, like, OpenAPI and tools.

Shay Nehmad:

Yes. But it's so cool.

Jonathan Hall:

I think that wraps it up for this week.

Shay Nehmad:

Yeah. Thanks a lot for listening. We're not clear a 100% when we're recording next week. Maybe it'll be Thursday instead, but we should have an episode next week as well. So stay frosty out there.

Jonathan Hall:

Program exited.

Shay Nehmad:

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
`-`
Broadcast by