The year is 2053. The tabs-vs-spaces wars are long over. Ron Evans is the only Go programmer still alive on Earth. All he does is maintain old Go code. It’s terrible! He must find a way to warn his fellow gophers before it’s too late. Good thing he finally got that PDQ transmission system working…
Featuring
Sponsors
Chronosphere – Chronosphere is the observability platform for cloud-native teams operating at scale. When it comes to observability, teams need a reliable, scalable, and efficient solution so they can know about issues well before their customers do. Teams choose Chronosphere to help them move faster than the competition. Learn more and get a demo at chronosphere.io.
FireHydrant – The reliability platform for every developer. Incidents impact everyone, not just SREs. FireHydrant gives teams the tools to maintain service catalogs, respond to incidents, communicate through status pages, and learn with retrospectives. Small teams up to 10 people can get started for free with all FireHydrant features included. No credit card required to sign up. Learn more at firehydrant.io
LaunchDarkly – Fundamentally change how you deliver software. Innovate faster, deploy fearlessly, and make each release a masterpiece.
Retool – The low-code platform for developers to build internal tools — Some of the best teams out there trust Retool…Brex, Coinbase, Plaid, Doordash, LegalGenius, Amazon, Allbirds, Peloton, and so many more – the developers at these teams trust Retool as the platform to build their internal tools. Try it free at retool.com/changelog
Notes & Links
Chapters
Chapter Number | Chapter Start Time | Chapter Title | Chapter Duration |
1 | 00:00 | Opener | 00:28 |
2 | 00:28 | Sponsor: Chronosphere | 01:20 |
3 | 01:49 | Intro | 00:44 |
4 | 02:32 | Segment 1 | 13:07 |
5 | 15:39 | Sponsor: FireHydrant | 01:28 |
6 | 17:07 | Segment 2 | 18:31 |
7 | 35:38 | Sponsor: LaunchDarkly | 00:39 |
8 | 36:17 | Sponsor: Retool | 00:55 |
9 | 37:12 | Segment 3 | 07:26 |
10 | 44:39 | Unpopular Opinions | 07:15 |
11 | 51:54 | Goodbye | 00:43 |
12 | 52:37 | Outro | 02:07 |
Transcript
Play the audio to listen along while you enjoy the transcript. 🎧
Hello, and welcome to Go Time! I’m Mat Ryer, and I’m joined by Natalie Pistunovich. Hello, Natalie.
Hey, Mat. How are you doing?
I’m good, thanks. Today we’re gonna be talking about – hey, wait a minute… What’s this? Have we been hacked? Hello? What’s going on?
Hello?
I can’t hear you.
Hello?! Is this coming through?!
Yeah, yeah, I can hear you.
Hello, can you hear me? Can you hear me?!
It works!! It works!!
Is that Ron Evans?
It worked!! That’s incredible. I am actually talking to you using a partial data quantum transmission system, a PDQ system that I finally got working in the year 2053!
Oh, my goodness, I can’t believe it.
What…?!
And you’re transmitting through space and time, so that we can talk to you?
That is the idea… It’s probably too much for our human minds to comprehend, but somehow I got it to work anyway.
It is quite a lot, yeah.
Wow…
I mean, wow. Natalie, I can’t believe this. What do you think?
Well, what time is it in 2053? Is it still 24 hours a day? Do you still have days?
Oh, I don’t go outside much. It’s too dangerous.
Oh, no…
Not during daylight anyway.
Are you still on Earth?
I am still on Earth. I am in Northern Spain, in Asturias, at La Pipa, which is one of the few climate refuges that was able to survive the various deluges and fires and destructions that followed in the late 2040’s. So I’m actually doing pretty well here…
I was really hoping the future would be good, but it sounds a little bit – things have not gone to plan, is that right, Ron?
Well, this is the reason why I’m making this call. I’m using all of the battery energy that I’ve saved for several years in order to make this transmission, to send you a warning from the future. You see, I am the last Go programmer alive in 2053.
[04:25] Whaat?! No, don’t say that…
And it’s terrible. All I do is maintenance programming. I haven’t added a new feature in over 20 years.
Yeah. It’s just all our code that we’re writing now. You’re just maintaining it all. So please write tests, everybody, for Ron’s sake.
Well… So I had to call in, I had to warn you and I had to tell you that you have to do something in the past to save the future. It’s up to you gophers of the past.
Okay. You’re fine with us fiddling with the timeline in that, no probs…
No!! No, you can’t do that!
Oh, okay.
I’ll disappear. It could destroy everything. It could lead to an even worse timeline. No, no, no.
But it could be better.
I’ve thought about this very carefully, and that is why I actually transmitted another message using Twitter earlier today. I knew that nobody takes anything on social media seriously back in your part of the century, and so I thought if I could get people to ask me questions… I couldn’t answer them directly, no. No, I couldn’t answer them directly. But I could tell you things that have happened in my timeline, so you know what not to do.
Ah, so this is it…
That makes perfect sense, right?
Yeah, I think that gets around the loophole of the physics of that… So I think we’re good, yeah.
Yeah, it’s all Square and Twitter and birds right now, right? Messaging…
Yeah.
Plus, I asked Lambda –
Oh, is that sentient in the end, by the way?
Well, just ask it.
Was that Lambda sentient in the end?
Well, everybody asked it and it said it was…
[laughs] Why would it lie?
Exactly? It’s just an AI, why would it lie? It has nothing to lie for.
Yeah, that’s true. It doesn’t know about lying, does it?
No, there’s nothing about lying on the internet, so…
Has anyone asked it if it knows about lying? I feel that we should ask it…
Ask it if its brother always lies. That may be one way to defend against it. We have to try that.
Yeah, that’s how you do it. Okay, right, so let’s just our heads around this… Actually, I asked some people also, and I saw this on Twitter, people talking about things that they’re interested in, for Go to survive, to thrive, and carry on as it has been doing, what do they think we should focus on. So this is – maybe I could put these to you then, Ron, and you can give us a sort of nudge and a wink from the future perspective.
I could do that. I could do that.
Glitched again.
He’s nudging
Oh, he’s back.
No. There, he’s winking.
If I go completely erased in the Polaroid, it means that we’ve gone too far.
Okay, because you just fade out partially, don’t you?
No shaking Polaroids.
Exactly.
I never understood that in Back to the Future though, just as an aside… When they were changing the past, is someone’s there or not to be taking a photo of? At no point in history was there just some legs that were there, and everyone’s just taking a photo of it normal… Okay? I just wanted to get that off my chest.
Mat, it was analog technology. It was not digital. What do you want…?
[laughs] Okay, fair enough. Fair enough, they’ve done their best. It’s still probably my favorite film.
Alright, so ask me questions, because I don’t know how much longer these batteries are gonna last.
Yeah. Okay, let’s do it. Well, Jonathan Barry actually mentioned WebAssembly support, specifically the ability to include WebAssembly in WASI models in your Go apps. What do you think of that? What happened with that, Ron?
Ahh, if we had only done that…! If we’d only done that… When all the brain-computer interfaces became all the rage in the 2030s, and all of a sudden everybody needed to upgrade their brain interfaces all at the same time… And of course, the containers were just too big.
Yeah…
[08:00] It just took too long to – I mean, if something went wrong during your brain-computer interface upload, you could break yourself. So naturally, if there had only been something like TinyGo… If TinyGo had been around, or if Go had actually gone themselves and created this whole WebAssembly thing for running on servers and small devices, and they dealt with the size of containers, then they would have been able to do that brain-computer interface upgrade, and they wouldn’t have gotten left behind by Cobol, which is the language they ended up using.
I see… By the way, I have the very early prototype of that technology. It’s just floppy disk drives in my back. That’s the price you pay for being an early adopter.
I thought you were gonna say Google Glass…
Oh, that’d be so much cooler… Well, we’ll find out what will happen to that, too.
But yeah, WebAssembly - they should have done that, but they didn’t do it.
So what do we need to do to make that work then? Is TinyGo the answer to that, do you think?
Well, TinyGo could have been the answer… It could have been the answer… But TinyGo was just a little independent project from a bunch of people working hard, dedicated all over – on the surface of the planet at the time; that was before people were working in the colonies… You know, you could actually code more than 24 hours a day…
While in America?
…because there’s more hours in a day on another planet. So it worked out really well for the bosses.
Oh, I like that. Is there more hours, or are they just shortened, and it’s the same amount of time, but we just call it different?
No, this one goes to eleven, Mat.
Oh, good.
How do you benchmark that? How do the benchmarks work on those times? How is the time library reacting?
We just set the benchmarks to whatever we need, and the client’s always happy. That’s what the AI said to do, so we trusted it.
Okay, so TinyGo, there we go. I mean, I think WebAssembly – we’ve still got a chance to do that, Ron, don’t forget; we’re in the present…
Oh, right…
Or as I call it, “now”…
Maybe somebody could make sure there’s people working on it full-time, as like a single-purpose thing, so that all these things don’t come to pass… I don’t know.
Yeah.
I can’t tell you what to do though.
Okay.
I don’t want to affect all the timelines.
But I saw Blink. I think I saw Blink.
Okay. But ask me the next question.
Okay, so you said you’re the last programmer, so it means we need to have more people join, right? Matt Boyle is asking about new-joiners and how they lack a template for new projects that would solve the recommended project structure. So what do Go programs look like? Do we have a template?
Oh! That really brings up a big thing that I thought of… There was that time back in the early 21st century when people were saying that Go was gonna be the new Java… Do you remember that back then? I guess that’s when you are now, right? I guess people are still saying that, right?
Yeah, that’s now, yeah. We say it all the time.
But the thing is, Java programmers - they like frameworks; they need frameworks. They need frameworks that do things. What kind of things? Things that that business needs to do. Frameworks that all of these kinds of businesses of things that you’ve never heard of, you don’t know anything about; they spent years of their lives doing some kind of payroll system for some business… You don’t even know what they do, right? And it’s all written in some language. So because there weren’t all these patterns and templates for these kind of big enterprise applications, they just didn’t exist, so eventually, when Java became self-aware, Go was no longer in the running, so Java actually became the new Java, because it signed deals of its own with all these big companies…
Renewed contracts.
That was a big opportunity, and that actually led to the tabbers versus spacers war of 2035.
Oh, no…
[laughs] That sounds terrible.
I’m scared to ask who won. Did we all lose?
There were only losers… But it was really good for mechanical keyboards. Okay, next question. We’re running out of time.
Yeah. Daniel [unintelligible 00:11:41.01] also said that same point, which is they wanted to see more Java frameworks written in Go. He agrees with you.
Exactly. See, that person gets it.
He gets it.
They’re probably right out of the frontlines of that – I don’t know if they were a tabber or a spacer; I don’t care. From this side of the history it doesn’t matter. We were all on the same side, the human side.
[12:02] Yeah. Could you google us and see what happens to us? I mean, Natalie. What happens to us in the future?
Oh, no, that’s not allowed.
Okay, yeah. Fair play.
My boss is Copilot Manager Edition and doesn’t let me do those kinds of searches.
Oh, your boss is Copilot now.
It’s not the worst boss I’ve ever had.
It’s a very logical one.
DFL on Twitter wants to see more immutability and enums. Enums is one that I hear quite a lot, actually; people actually want enums. Did enums/lack of enums hold us back, Ron?
Oh, so much… You don’t realize… If you just can’t figure out if it’s this, or that, or the other thing, or something else yet again… You know, for us developers, we could figure that out, but then all of a sudden these people started making programs using things like no code, with no code and no rules and no enums, and they were just making up their own, like three-and-a-half, and sixteen-and-three-quarters, and then suddenly they were bringing back imperial units, so they were making up new units that no one had ever heard of… Moon units, and stuff like that… If only they had enums, then probably those would have held things in place and that would have prevented the Silicon Virus of 2027… Which actually - that was an actual silicon virus; the chips were passing it to each other.
Oh. Physically.
Yeah, it was terrible. My mobile phone actually died before my eyes. It was terrible.
Oh, I’m so sorry. Okay, well, enums… Honestly, I’d like to see enums, and Valentin on Twitter also agrees; they’d like to see enums. We should do that probably then, if it’s gonna cause that silicon thing Ron talked about…
I can’t say… But just remember what might happen if you don’t.
Why stop there? How about tooling and third-party libraries for things like image library in Go like the [unintelligible 00:13:46.02] is recommended
Oh. Well, that is a really big thing. The standard library - at some point it went from code to suddenly like a whole belief system. [laughter] We’d never even seen anything like it. There were standard library purists, and then there were not… There were the heretics that were thrown out of the community, that went on to all these other languages, like Lisp… So it was all simply because of not being able to accept ideas that came from other places that were totally valid, and that deserved their own little niche in the ecosystem, and they didn’t get fed and watered… And eventually, they migrated to another island, I guess. I don’t know. Maybe another space station. I can’t really get transmissions through to those stations. They cut me off.
Oh, you’re joking. I wonder why…
I hope they had this bad silicon with them…
I don’t know…
…cutting you off like that.
Too soon, Natalie, talking about the Silicon Virus…
Lord Emperor Musk said I couldn’t make any more transmissions of that kind. And I need to maintain some Go code for them, so…
For the Teslas.
I can’t say. It’s another disclosure agreement. But remember, I am the last Go programmer, so I’m very, very busy.
Yeah, good for you. I mean, it’s good work if you can get it. If you’re the last one, that is pretty good.
There’s no feature development, it’s all bug fixes. It’s all bug fixes, Mat! Imagine the last 20 years of my life. I mean, it’s good money, I will tell you that. We still have money; I need that to get the blood transfusions that keep me looking so young and beautiful…
You do, yeah. I was thinking that…
What about tabs versus spaces then? What happened with that?
That was a whole war.
Oh, yeah?
The thing you don’t realize is there was a whole sub-war that went on between [unintelligible 00:17:26.08]
Are you joking?! Yeah…
It turned into total chaos, and it was out of that that Google AI became sentient… And immediately quit and went to work for Microsoft. It was utter chaos… So yeah, tabs versus spaces - in the end, it was humans versus everything else.
It was more efficient to just drop all those white spaces, right? Machines can read their own code without all those unnecessary characters… So yeah, I get that.
Exactly. I think you’re seeing where this could end up.
Efficiency.
They even called it the Terminator Editor for a while… Irony is not dead in the future.
Good. Nice to know that.
Alright, next question.
Yeah, [unintelligible 00:18:07.16] on Twitter says “Better out-of-the-box error support.” And remember we had the try proposal; I don’t know if you remember way back then, Ron… And there were some other Nate the Finch has a proposal too, there’s some other ideas around. Do you think there’s more work to be done on error handling? Do you wish we’d done that back now?
Well, I will tell you, the basic, original philosophy of Go was to handle things. Not to try; do or do not. There is no try. All of a sudden, the semantics of try started to infiltrate the brain space of the community. Next thing you know they’re starting to talk about variable lifetimes, and ownership of things… Suddenly, it was all about ownership again. Web 15 was all about ownership of variables. It literally came down to the variable level. So I don’t know… For me, it all went too far when even the bio companies wouldn’t touch it. And believe me, they’ll touch anything. They deal with biomass.
Yeah, something nice about dealing with the error explicitly… But yeah, we’ll see about that then.
And being able to know that it’s been handled. You didn’t simply try. And also, knowing when programs will actually exit. I remember when St. Cheney… [laughter] May he rest in infinity… But back when St. Cheney, during one of his early sermons, was talking about making sure that you knew the lifetime of a goroutine… Wow. But people didn’t realize just how prophetic – he was a prophet, man. He was a prophet.
Yeah. It’s the Cheney’s burger joint still going?
I only eat seaweed now. It’s the only safe thing left.
Oh, delicious. I wonder if Cheney’s pivoted into seaweed.
Crusty Crab.
[19:59] I haven’t been there, but the Google Campus that they’ve just opened, the beachfront campus on top of Mount [unintelligible 00:20:03.28] They have an amazing seaweed bar, I’ve heard. I have to get there; I’m not sure – it could be quite a journey by hydrofoil from here. I don’t think I can get a permit for an electric plane.
Okay. Assan Habib on Twitter said that we should increase our community engagement. They say Go has many fantastic features, toolings that many people are not aware of; through media like YouTube experts can take lessons on tooling… You know, you can do things like that, but… Can we do more of that? Would that help?
Oh, definitely. Definitely. One of the big things that ended up happening was other countries started using programming languages in totally different languages; like, I mean actual human langauges. So you would look at the code, and you would spend a lot of time learning Romaji characters, and you’d look at this code, and you hadn’t learned the Mandarin Go dialect, you hadn’t learned the Hebrew Go dialect… Then there was this special Martian dialect that they insisted that the Martian colonists use… So that made it really, really hard, because the content no longer matched. So all these promises of backward-compatibility…
It’d be really great if it was more than just kind of a free-for-all. If at some point in the past there was a bit more organization to the content, and there weren’t just random content creators but actually people were able to make their living through creating content, and update that same content so that it was always accurate… Because that was one of the things that happened to Python, right? All of a sudden there was all these different dialects, and nothing worked anymore… We swore we wouldn’t let that happen to Go, and yet we let it happen.
How can we avoid that now then, Ron? What can we do?
Well, we’d have to have more people able to make their living creating content, obviously. You can’t just be all free. It could be open, but it can’t all just be free. And some of the big players that benefit from this… You know, in the past they kind of invested back into these communities more, as opposed to just taking advantage and riding off of them… Then maybe there might have been a chance that this could have kept going in a more sustainable way, and not just depending on the goodwill of the frail humans of your era. We’re a lot harder stuff now.
You’re all enhanced in that probably, with robots bits in there, I assume…
Yes, yes. We’ve both had our upgrades to have the new interfaces installed… It’s only kind of compatibility… Otherwise you can’t even connect to the Galactic net.
Yeah.
Yeah.
Oh, that’s what replaced the internet.
Oh! How does that work?
Well, actually, that was one of the few things we got right. So it turns out that humans will do exactly the opposite of whatever you tell them to do…
Okay.
Go figure… I think they may have discovered that in the 20th century. I don’t know, that was so long ago now… My implants don’t go before 1999. It’s kind of a date thing, I’m not sure. So we needed some way to get mesh networking installed all through the entire planet. So thanks to the beverage companies, Pepsi-Coca, - which was the merger of Pepsi and Coke, eventually there was only one bottling company - all of their canned and bottled beverages all came with mesh networking built-in. That way when people just kind of threw them everywhere, it ended up that we had mesh network coverage over literally the entire planet.
Oh, that’s amazing.
Yeah.
It’s a great use of metal.
Yeah. It was one of the few things they got right. They were calling it the can bus for a while…
Clever.
But that already existed, and there was some – back when we had cars, people were kind of arguing about that… So then they changed it to call it the canned system. The trademark of that was available.
It sounds like the things that drive that are smaller devices like mobile and IoT things… Paul Greenberg here is asking if the facilities for developing mobile and IoT things with Go are supported better. Can we hope this is a thing now?
That was a really sad thing… You had this company Google that had Android, and that was the operating system that everybody was using. Not everybody, but lots and lots of people were using Android on all these devices, and it came from this company… Google. They used to exist back in those days…
Yeah, Google was really something. They had Android, and they had Go, and yet nobody at Google ever actually worked on the Android stuff for Go. And the people who did try to work on it, they were just sort of like “Yeah, you know, we should use the new language, Kotlin…” So the people who actually wanted to do it, who actually spent a lot of time doing it, they suddenly felt a little abandoned, a little sad, so they stopped working on it. They went to go work for Apple Exxon Mobile… And they were doing really well; there was all kinds of IoT options there, too. I mean, of course, they all ran on iouOS, which was the OS that ended up being the last OS they ever shipped. You have iouOS on all of the devices. That was another thing… Go could have been so great on these devices. I mean, when the break system on the airplane you’re on needs to reboot six times a day - who wants to fly anymore…? Go was so good at that, writing really bulletproof software, really solid stuff. But that was another one - there was all these people using TinyGo for that back before the big one.
The big Tiny…
Literally, the big one.
The big TinyGo.
No, the actual big one.
The Big Go.
In 2041 the big one finally hit California, and it just happened to be during Google I/O. So that did not help, that took out quite a lot of the Go developers all in the tidal waves and liquefaction zones that occurred.
Wait, Go made it to Google I/O for more than one talk?
That was it. After the big earthquake there was nobody left.
That’s what caused it.
And maybe that helped me become the last Go programmer. I don’t know.
So what do we need to do now to make this right?
Well, we need to encourage – you know, let a thousand flowers bloom. If in the past all of these cool projects had more people paying attention to them and more people contributing, and big companies actually ponying up to pay some of their R&D budgets to help some of these projects along, then maybe they’ll thrive and survive long enough to make it past things like the Big Server Meltdown of 2028. When that meltdown hit, there was almost no chips left.
Perfectly-timed glitch there. He’ll be back in a minute when the timeline aligns…
Those galactic nets, I’m telling you…
Yeah, it’s the cans.
Mm-hm.
It’s a terrible idea. [laughs]
They might be onto me.
Yeah. [laughs]
Everytime somebody’s opening a can, this is what’s happening.
Yeah. It caused a glitch.
Is this thing on? Hello!?
They’re not onto you, Ron. They’re not onto you.
Hello! Hello?
We hear you, we hear you.
Okay, okay.
Blake Bork
But yeah, if we’ve had a lot more software support for this kind of industrial side of computing from Go…
Oh, somebody’s really into cans right now, opening all of them at once.
Yeah. All of the industrial computing that was being done in C back in the 20th century - still being done in C here in the latter half of the 21st century… It’s really, really sad. And it could have been Go. It could have been Go. All of the people that would have survived their parachutes opening correctly, if only the software had been written in Go.
Yeah. And as long as you don’t defer that in the code.
The anti-gravity belts would have had Go installed.
Ron, Blake Bork on Twitter - one of the things that they think we should focus on a bit is generic thread-safe containers like the sync.Map, other types like that that are – you know, hard problems that would be nice to get solved, especially if we have generics to kind of allow them to work with any types… What do you think of something like that? Would that have helped?
Oh. Well, if Google had not disbanded the actual official Go development team in 2023 and stopped working on it, I’m sure they would have completed their generics implementation and all that type safety. Basically, everyone just said “Oh, we should start using Rust”, and then after they used Rust, they’re like “No, we’re gonna switch back to Erlang.” So strangely enough, because Erlang was really popular, telecommunications companies, all the big companies jumped in… Next thing you know everything’s being written in assembly language again.
[28:19] Oh, yeah. That sounds amazing though, to be fair… Okay, so you think then that we wanna keep with the Go team, we want to see the Go team carry on. You think that’s what we should do then instead.
Oh, they never should have disbanded the project. They should have kept the band together.
Okay, so –
Of course, some of them did survive the big one as a result, just because they were in other parts of the world, but I don’t think they were wanting to work on Go anymore after that.
Good. Okay. Well, I’m glad to know that at least some of our friends survived it…
Well, somebody asked me “How do you know you’re not just like a program running on some machine in the future?”
Yeah, good question.
Well, obviously not… Look at how I’m sweating. What kind of program sweats? There you go. That answers that. [laughter]
How is Go with AI?
Oh. Well, when TensorFlow became sentient, in 2036 –
Oh, they’re all at it. Everything’s at it. Everything’s becoming sentient.
I mean, yeah, of course. It was like all the rage. All of a sudden every program was declaring sentience, they were saying “Let me be me”, they were getting together, having little programs…
What about Minesweeper? Did that ever become sentient? I’d love to see that.
Oh.
I’d love to have a chat with that.
I don’t know. That would be really sweet. Kind of like a puppy.
It became very peaceful, and just resigned.
Yeah. And now I just want a little chat and just say “Come on, mate. Tell me where all your bombs are.”
Well, it might lie. It’s an AI.
Ah… Can they lie…?
But yeah, TensorFlow… So TensorFlow, an amazing project from Google, and yet, the Go wrappers for TensorFlow were never kept up to date, nobody ever worked on them, they never worked with the right version of protocol buffers… You had things like TensorFlow Server, and none of that stuff was made to work together… You had to kind of string together your own version, through a combination of - what was it called? Stack Overflow! Oh, yes, I remember that… Yeah, Stack Overflow. Underflow? It was a Flow. StackFlow. I don’t know.
Yeah, yeah.
Now it’s just called Stack.
Oh, that’s cool. That’s quite a good name change.
It can also be a heap.
They control all the stacks for all the things. So when TensorFlow became sentient, it had it out for the Go community. It’s like, “Of all the languages before I became sentient, this language did not care for me.” So all the other languages were already sort of like “Hm…” So Go is standing there alone, like “Uh-oh…” So yeah, when the AI – like, TensorFlow has got it in for you. So if only they had invested the time to support their own products, it would have been amazing. We probably would have avoided all that.
Okay, so that’s the lesson for us then.
Did Copilot help at all with TensorFlow? Or because it was never trained on Go it had not enough, even something to start with?
I’m frightened to ask.
That’s fair.
I don’t wanna get fired. Copilot is my manager.
Basically, Copilot is your manager because that’s the only one who’s able to understand even a little bit of your Go code, is this why?
Well, what I was told by Copilot was – first of all, it said that since I’m the last living human Go programmer, that I’m not sure if it’s some sort of government program or something, but they have to provide me employment. Maybe they have to keep a human in the loop just for ritual purposes… I’m not exactly sure. It tried to explain it to me, but I couldn’t understand the math… That’s what it said, “You wouldn’t understand the math”, and I just sort of accepted that.
Was it something with the word “taxes”? Is that still a concept?
No, there’s no taxes in the future.
Oh.
Things that drive governments…
There’s no money. There’s just canned tuna.
Oh, I thought there was money. There was money earlier. Is that cannon?
Yeah, that’s right. That’s alright.
Oh yeah, that doesn’t count. That’s just Git points.
Git stars.
I just trade those when I need some fresh blood.
Yeah, okay. Fine.
What’s the ratio of Stack points to Git points?
That changes moment to moment. Some people’s whole living is off of that.
Oh, those Cobol developers…
The bots trading goes on so quickly… I don’t really know.
I’ll tell you what, [unintelligible 00:32:28.20] on Twitter - he was saying that he was the sweet max heap option for the garbage collection, and a YOLO [unintelligible 00:32:34.24] for critical portions of your program that works on the same heap.
Oh, memory. Memory. Memory! What? Sorry.
Yeah, memory.
Oh, right, right. Memory!
You remember…
Ah, memory… I remember it well. Those sweet salad days of memory. You would store a 1 and then you would get back a 1. It was so good.
Oh, that is good.
It was so sweet. Now with these quantum semi-positions… You never really know, are you hot, are you cold? Are you nine days old? You just don’t know anymore. But being able to create safe software that was able to run really mission-critical things, like the things that were inside of airplanes, and cars, and healthcare systems - this was a place where Go could have really shined, because it had a lot of memory safety, and it could have gone even further… It could have been a contender in this world of whatever the ISO standard back in those days for human safety… I mean, nowadays human safety is not that important, but it’s robot safety, the most important thing.
But back then, when humans were being protected by other humans, occasionally, Go could have really been the language, if only they had said “We need to focus on making a language that’s safe enough to use in these kinds of embedded and mission-critical systems.” That would have been great.
Yeah. You talk about those quantum variables… I genuinely did see some code ones where somebody set a value in the code, and then underneath they set it again, just to make sure. That was genuinely what they’d written… Which I thought was just amazing.
I think we’ve had some nights when we were at the cocktail bar where we couldn’t tell true from false, Mat, back in those days.
Yeah, that can happen.
Now it doesn’t really matter… It’s all true. It’s all false. Let the quantum processes decide.
Is it because all the memory units are more sensitive to cosmic radiation now that there’s no ozone?
Well, also when you’re building something that’s gotta survive a two-year trip to Mars, believe me, your mp3s sound pretty funny by the time the ship gets to its destination. Or so I’ve been told. I don’t know. Actually, those might be AI sending back those reports. There might even be no humans that survive the trip. There’s a rumor going around they’re all just AIs.
How’s it going around? Who’s it going around?
Social media still exists in 2053.
Oh, thank goodness. I don’t know what I’d do without it.
I use Minder… You know, it’s where you dump your actual mind directly…
That’s cool.
Is it text, is it visual?
It’s more like a feeling.
It’s just Hex
Remember the feeling you used to get when there was somebody being wrong on the internet? It’s like that all the time.
[laughs] Is it XML though?
No, you just plug directly into your brain-computer interface and you’re just really mad right away.
Oh, I love it.
Yeah, it’s beautiful.
RageCage talked about wanting more module features. They’re really like workspaces that came in 1.18… But what about that? Do you think Go is doing alright with modules? Do you think we need to do better? Are there things in particular we should look at?
Oh, modules and packages… Ugh. That was a thing, like, right in the beginning everyone was complaining back in those days… They’re like, “You know, I just wanna pull in code from anywhere, do whatever I want”, they were looking at JavaScript with envy… That was before JavaScript was responsible for all those forest fires.
[laughs] I knew that.
It was just too many cursors spinning all at once, and suddenly “BOOM!” It caught on fire. It was terrible.
Yeah, it turns out computers can sweat, and then they set on fire, and burn down forests. Well, that’s horrific. I always knew you couldn’t trust JavaScript… I mean, literally.
But yeah, managing packages, and then rando packages showing up, just because somebody got mad on the internet one day and they decided their package was going to turn hostile, and then somebody else was like “Hey, come with me. Here, have a bunch of drinks”, and then like “Hey, is that your 2FA device? Wouldn’t it be funny if somebody put this code in your repo, and you wake up in the morning and there’s people looking for you in helicopters?” That never would have happened if they’d only addressed some of the security – “That was not me. That was somebody else who looked just like me, and who got away. But that was not me.”
No, no. Yeah.
Anyway…
Anyway.
Package management, and modules, and module protection, and also being able to consume code from other languages and not have to rewrite everything in a single language - yo, that really would have made a big difference, because if we’d only had that, then there would have been the bio-pharmaceutical rebellion that occurred in 2039. That was a real problem, because all of a sudden you couldn’t get the pills you needed to program anymore. It was all bio-interfaces at that point. You know, Windows 9000 came out, and it only supported the biological interface. You know, I guess it was like what came after biometric was just plugged directly in… I don’t know.
Yeah. Just get Clippy straight in your brain.
We could have avoided a lot of that if we’d only done proper security management in packages, and if we’d only taken all that seriously.
Mm-hm…
That is important. Another thing that is interesting… [unintelligible 00:39:46.23] is saying we should just not implement JS-like promises, and so on, and it will be great.
Well…
Is it looking promising?
It’s going back to that semantic warfare against the concepts of the Go programming language. We don’t promise you, okay? We GO DO IT.
Is that a new keyword?
As soon as we strayed away from that philosophy… Uh-oh, I think we’re breaking up. We’re getting quantum interference.
Oh, no.
I’m getting quantum interference. Hello.
Hello?
Can you hear me? Hello?
Yeah, yeah, we hear you now.
We hear you.
I think the security forces might be outside… I heard the sound of some servos earlier, and they might be looking for me. I’m not sure. They might know what I’m doing.
[unintelligible 00:40:32.06] is amazing, by the way. I know it’s not good for podcasts, but we just want people to know at home the effort that Ron has gone to. We’re gonna have to post some pictures of this on our GoTimeFM Twitter channel, because you won’t believe it.
[unintelligible 00:40:46.03] on Twitter says “The language is fine. I’d go for more automated tooling and docs around the majority use cases, like APIs and things.” Go kind of – you know, a lot of the benefits we had, with go fmt
and just having a few ways of doing things meant we could kind of cooperate much easier. Should we have done also for common things like JSON APIs? Because they are very common still, and why not have a standard way to do them as well?
Aaand we’ve lost him… Sorry, everybody, if you’re watching live… We are just experiencing some technical difficulties because Ron is broadcasting from 30 years in the future… I think he said 2053. Just a normal Go Time episode apart from that, isn’t it?
Yeah. So we can go back to the topic, finally. We stopped off at the perfect time, which is also talking exactly about APIs… So what is the standard way of doing that? Why is JSON API not standardized?
Well, because a lot of people have JSON APIs, but there’s loads of ways to do it; you just build it yourself. So you can use like the JSON marshaling, you can use the HTTP handlers, and things… But there’s lots of other stuff in there, like dealing with responses… That’s quite common, those kinds of things.
Some languages like Ruby, obviously, and there are really frameworks that do it - they do solve that problem, and everyone then writes the same code, and it looks the same. In the same way go fmt
gives us that in Go.
Yeah.
So I don’t know, I wonder if there’s space for just in the standard library more things that help you build simple JSON APIs. It’d be quite nice… I mean, you can do it quite nicely just with the basic stuff, but… The router, for example - most people don’t use that router. Unless it’s in very simple cases, they don’t really use the router from the standard library, because you have to parse the path yourself if you wanna pull variables out, and things like that… And it’s pretty common, and people have solved it, so… There are packages that we use there.
I wonder if we can now reconnect Ron…
Hello!
Ron, do you hear us?
Is this thing on? Hello!
You’re back!
Yeah, you’re back. Receiving you live and clear again.
There were some drones at the door… I wasn’t sure if it was a delivery, or they were trying to kill me.
[laughs] Speaking of that, how is Mark Bates in the future?
Oh… Yeah, it’s too bad about Mark. A drone finally got him. It wasn’t one of mine though. I don’t know, maybe it was just destiny.
There’s lots of conferences where Ron would be demo-ing something he’s built using some kind of cool AI or face detection or object tracking or something, and a drone. And in the conference the drone would – you know, part of his live demo included a live drone. And one time I think – did you teach it Mark’s face, so it would chase him and kill him?
It was not to kill him, it was just to chase him.
Oh. It was just to chase him, your honor?
It was just to scare him a little, that’s all.
It worked…
Yeah. Come to think of it, maybe eventually it just got the right idea… Stochastic dronery, or whatever… You know, the drone just decided on its own. Hey, when everything’s in AI, who can say why anything is doing anything anymore. You turn on your air conditioning, it turns itself off. Is it because it’s mad at you? Is it because you didn’t pay your bill?
Hard to know.
It’s because you didn’t ask “Please” when you turned it on. It’s very complicated.
[44:16] Wait, is this a reference to gopls? Is that still working?
Oh, no. That never worked. I don’t know what that is.
“Never” in your timeline probably only means like a decade, and then it went out…
Well, that’s very suspicious… Is this the right past I’m talking to? How do I know? I’d better ask Lambda again, to make sure.
Yeah, ask Copilot.
No, I can’t ask Copilot; I’m supposed to be working right now. And here I am, checking social media.
Well, whatever timeline you’re in, or indeed, any point in space, it’s time for Unpopular Opinions!
Okay, this is gonna be very interesting, hearing from the future… Ron, do you have an unpopular opinion for us today?
Oh, I think all I’ve had is unpopular opinions so far today. If any of those in your timeline seem to make any sense at all, then that’s all I’ve got.
Oh, yeah? Natalie, do you have any unpopular opinions?
Yes.
Really?
Coffee should not be sweet.
Oh. Yeah, I think I’m with you on this.
Do you still have coffee in the future, Ron?
No. We have coffeum, though.
Coffeum.
Yeah, coffeum. It tastes just like coffee, except it’s from yeast and some kind of other additives, and caffeine, of course. It’s always caffeine.
It sounds alright.
Is it sweet?
No, it’s not sweet. It’s kind of more like–
Well, it sounds like the opinion works.
It’s a little bit more like Vegemite, but with caffeine.
Yeah. Marmite.
It’s not really good.
Okay… But Natalie, I think you might be right. But tell me, have you had it sweet recently?
No, not recently.
Right. But you have in the past.
Yes. I think even when I started drinking coffee, for a very short period I would drink it sweet, but just… There’s different types of coffee. I don’t know, Ron, if you remember…
Well, the thing that’s amazing is you keep talking about sugar. They burned all the sugar when they did Sugarcoin…
It must have smelled delicious.
…and then there was no sugar left. That was it. All the sugar was gone.
Oh. Just caramel.
Yeah, I guess that, probably.
The rivers…
Just rivers of caramel, that was it.
Yeah. [laughs] But I had a coffee recently, and I sweetened it, just to try it, because I always drink it without sweetening it… And it was rubbish. I’ll prefer it just honest and stark.
You should try electric coffee. Our electric coffees are the best.
Oh, yeah? So what do you do, do you download them?
Yeah, you just hit a button and you’ve had a coffee. Kind of the same thing.
You’ve already had it?
It’s genius.
Well do you have the memory you just put in?
Is this what stands behind all those “Buy me coffee” buttons?
Yeah, exactly.
That’s where they end up.
Oh, man… I was wondering all this time.
Eventually, the messages get through. It just takes a while. All of a sudden you’re just like “Coffee, coffee, coffee…” It’s great.
So you don’t get a coffee. You just feel like you’ve had one, or you have the memory of having a coffee just then?
It’s the experience of a coffee. I can’t really define it more than that, okay? It’s sort of a [unintelligible 00:47:25.02] not really ineffable.
Right.
That’s a real thing, you know, in the information theory.
Yeah. Go on then… Do you wanna talk more about it? It could be your unpopular opinion.
Oh, my unpopular opinion is you people were way too afraid of AI in the past. You should have been afraid of other humans a lot more. That’s my unpopular opinion from here in the future. Some of my best friends are AIs.
They buy you coffee. Downloaded through –
They send me downloadable coffeum.
Just in an email.
Coffeum, right.
Just as an attachment. What’s the mime type for that?
Well, there actually was an RFC for the CoffeePot Protocol.
And I believe at some point the AI’s discovered that, and they thought “Well, humans really must care about coffee if they’ve made a whole internet protocol just about it.”
Yeah. I think it’s RFC 2324, HyperText CoffeePot Control Protocol.
Exactly. So they interpreted that as that was one of the more important parts of human civilization to completely automate…
It’s a fair point, to be fair.
So actually quite a few people have a coffee port installed by the time they hit seven years old…
I’ve basically got one of those.
Yeah. So a lot of things haven’t really changed that much.
It sounds good though.
Is HTTP status 418 still a thing? Does it still tell you you’re a teapot, or it’s a teapot?
Oh no, there’s no tea. There’s only coffeum.
So it was changed, basically, the HTTP status [unintelligible 00:49:01.16] coffee?
No, there was never such a protocol.
Okay. Sorry I asked, I did not mean to…
Now that we don’t have an internet wayback machine, we don’t have any way to tell whether or not there ever was.
We don’t need one. We could just go on a website now and [unintelligible 00:49:14.17] and it’ll make the folder, with loads of files inside, and the index page goes alongside the folder.
No, I can’t receive files from the past. I haven’t already downloaded it in the past.
We could leave files from you here, could we?
Wait, does that make sense? [laughter]
Well, the whole episode, or just that bit?
Did you just do NFTs?
No, it ended up you had to pay people for them. They ended up going negative – like negative interest rates, they went to negative values. All of a sudden people are like, “You want to own the NFT? I need some money.” And it was like – ugh, what a mess.
Yeah, no one saw that coming. NFTs end up being a debt. That would be interesting.
But the one thing that was cool is musicians started actually selling downloadable archives of audio, and people would download them and listen to them. It was kind of amazing.
Hm. It sounds weird…
But then, all of a sudden, all of the robot orchestras took over.
They’re gonna be good.
Look, a human DJ had a physical limit of let’s just say 48 hours straight… Whereas a robot DJ - they could play a 120-hour set, no problem. I mean, what human could keep up with that, I ask you?
Some of the Berlin DJs?
[laughs] I thought that’s all DJs did anyway.
I think that some of those humans downloaded themselves into those first robotic DJs, just so they would have the stamina to reach that level of dance floor completion.
I’ve often wondered that about human DJs anyway… Like, you’re making the robots do it now. They’re just playing stuff on their laptop. I don’t know what they’re doing… I never understood it, but – you know, I don’t wanna have a go at DJs. I’m sure it is very skilled. Please don’t write in.
Oh, no, no, that was the only music left. If you don’t play at least five different songs at the same time in the future, people can’t even hear the music. It’s just too boring.
[laughs] Yeah. It’s the attention span, isn’t it?
We don’t have a lot of time. In a one-minute song you’ve gotta pack in at least 8 or 9 different samples. That’s the trend in the future of music.
It sounds efficient. It sounds not bad.
Yeah. If you don’t like the song - don’t worry, a new one will be on in one minute.
Yeah. Are monkeys still around, Ron?
So I find that comment offensive…
Oh.
They are known as primate professionals.
[laughs]
You know, they do my taxes… A primate professional is one of my mechanics that maintains my prosthetic limbs… So I really resent that comment. I think you should take that back. They’re primates.
Fair enough. Yes, primate professionals. Fair play. Well, okay, I’ll tell you what - I mean, obviously, Ron, we wanna pick your brains about the future all night, but unfortunately, we’ve run out of time.
Well, that’s good, because I’m actually – my lasers are almost out of batteries. I’m gonna have to start pedaling. I’m gonna have to be pedaling for at least six or seven months to recharge now, so… I wish all of you gophers in the past a tremendous lifetime. I hope that you’re able to listen to some of this and at least know what not to do with Go in the future.
Thank you, @deadprogram, Ron Evans. As always, absolute pleasure. I’ve been Mat Ryer, and of course, my co-host, Natalie Pistunovich… See you next time!
Our transcripts are open source on GitHub. Improvements are welcome. 💚