Twitter Logo

Amos King

Twitter Logo

 Chris Keathley

Twitter Logo

 Anna Neyzberg

The Elixir Outlaws now have a Patreon. If you’re enjoying the show then please consider throwing a few bucks our way to help us pay for the costs for the show.

 

Episode Transcript

 

Amos: Welcome to Elixir Outlaws the hallway track of the Elixir community.

Anna: Oh good. That was so good you guys!

Amos: We're awesome clappers.

Chris: I'm the best!

Anna: Are you growing a beard Amos?

Amos: Yeah. You didn't notice it at Gig City?

Anna: No.

Amos: Yeah. The bad part is-

Chris: I thought a beard was supposed to come up, like on the sides of your face too.

Amos: So it does, it's just that my hair is, is nearly the same color as my skin. Like on video, you can't tell, but I actually have a pretty good thickness of a mustache going, but it looks like I don't have it at all on video.

Chris: It's invisible.

Amos: Yeah.

Chris: The Invisible Mustache by HG Wells.

Anna: That's what this episode needs to be called.

Chris: The invisible mustache.

Amos: I w the one thing about growing a beard. I, so every man in my family has a beard, except for me.

Chris: He was a deranged scientist, who thinks you need to get rid of facial hair. But in actuality, all he did was make it invisible. And now every time he kisses someone else, they feel it. And then they're like, what is that? I don't know what's on your face anymore!

Amos: It's like kissing a brush.

Chris: The horror!

Anna: I need whatever you guys have, like right now

Amos: Coffee.

Amos: Coffee and midlife crisis. Some men have midlife crises and they-

Chris: And an overactive imagination.

Amos: That's what the D&D's for.

Chris: And some undiagnosed ADHD.

Anna: I mean, I'm better than I was last week. Last week, I couldn't form sentences. Chris and I were talking and I was like, whoa, we can't release this.

Amos: See, I could go through a midlife crisis and buy a sports car or I can go through one and grow beard. I chose the cheaper option. Maybe. But now I got a beard balm and beard oil. And like, this is, this is a labor. Now I know.

Anna: Why are you going through a midlife crisis?

Amos: I'm really not.

Chris: Cause he's just that old.

Amos: I'm just that age.

Anna: He's not 50. He's not even 40.

Amos: I'm close. We just talked about how old I was right before you got here.

Chris: I don't know. He played a D&D. That's pretty old.

Anna: Isn't Chris, Chris is the youngest, right?

Chris: Yeah. But it's like talking about youngest on this, on like a very small scale.

Amos: Well, Anna looks the youngest. Chris is the youngest. I tried to be polite.

Anna: You're 30, right? You're in your thirties.

Chris: Yeah.

Amos: Finally.

Chris: Yeah. It caught up to me eventually. I'm now in the phase of life that John Malaney refers to as gross.

Anna: Why?

Chris: Oh, I just mean that like, that's just, that's just the phase of life that it is.

Amos: I mean, you're, you're a kid and you get to look forward to the age when your parents start letting you leave the house without tracking you all the time.

Chris: At 30. Yeah.

Anna: Chris was really looking forward to that.

Chris: But then they came back and then they took away all my privileges again. They're like the house yet. We don't quite trust you yet. We'll let you take the car down to the gas station and pick up groceries for us and come back. That's it. You'll only get, that's as far as you can go,

Amos: See, so it's like, it's 16 and then 18, you get to move out and then 21, you get to drink 25, your insurance drops and then you don't really have anything to look forward to until-

Chris: You die.

Amos: The senior citizen discount, like AA P. Like that's it.

Chris: Yeah. Yeah. You got a lot of brunches to go to.

Amos: Uh, I can't wait until I don't have anything to do until 11 o'clock so that I can go to brunch every day.

Chris: You could just do that now.

Anna: You could do that now.

Anna: I don't know if you know this, but like you're an adult and you could make those kinds of choices in your life.

Amos: Yeah, I don't, I don't think my-

Chris: You could just go to brunch every day.

Amos: wife would appreciate me and my clients would probably be mad at me. I don't show up till noon every day. And then I'm, you know, I'm tired by five.

Chris: Well you gotta go home. You got to watch the Wheel. Which, which leads, which leads into JAG. I assume. Then you gotta watch JAG.

Amos: Well, you napped through half of JAG.

Chris: Or some sort of like NCIS show.

Amos: Is JAG still a thing ?

Chris: On some sort of lazy like leather La-Z-Boy recliner type situation.

Amos: Aaaah.

Anna: Oh man.

Amos: The good days when you get old.

Chris: Yeah, I guess so.

Anna: I don't know about That.

Amos: You got to sit in the recliner because your knees gave out. You can't stand up anymore.

Anna: That sounds very sad.

Chris: Yeah.

Amos: What's sad about it?

Chris: That wasn't funny at all.

Amos: Try to relax and think.

Chris: Let's start that over. Alright. Try that joke again. Run it back. Do it better this time though. Don't do it bad like you did before. Do it funny.

Anna: Oh my God Chris, I want the coffee you're having.

Chris: Do you want me to come back to you? I'll come back to you if you want.

Amos: Are you, are you on coffee or?

Chris: Yeah.

Amos: There feels like there's gotta be more than caffeine there.

Chris: Well, it is a mocha pot. So I mean, you know who knows?

Amos: Could be extra strong.

Chris: That's a lie. That's not how coffee works. Everybody's always like, oh, I made it in the French press. So it's extra caffeinated. And it's like, that's not how that works. That's not how coffee works at all.

Amos: I was thinking more like you're ha you're having Irish coffee.

Chris: Oh no, absolutely- I'd be sleepy.

Anna: That would make me sleepy.

Amos: Irish coffee one makes you sleepy. By Irish coffee five you're not sleepy anymore.

Anna: That's a lot of Irish coffee.

Chris: Yeah. That is so much. That's so much sugar.

Anna: Yeah.

Amos: Yeah. Well, so, by-

Chris: It'd be bouncing off the walls with sugar.

Amos: Irish coffee three you don't need any sugar in it.

Anna: At that point just drink the whiskey. Like.

Chris: Yeah, you don't even need the coffee.

Anna: Yeah, you don't even need the coffee.

Chris: You just need the Irish!

Amos: Warm whiskey.

Chris: Just gave me the Irish.

Amos: Give me some warm, hot whiskey.

Chris: I'd like an Irish coffee please hold the coffee.

Amos: Hot, hot, hot toddy. Hold the lemon.

Chris: And water.

Amos: And the tea. Just give me a honey and whisky.

Chris: Yeah.

Amos: Warm it up.

Anna: Sounds delicious.

Chris: Honey and whiskey. That sounds awesome. If, if your definition of awesome is disgusting.

Amos: Well, that's the show, everybody. That's all we have for you today. It was nice talking to you.

Chris: Well there's just nothing exciting in Elixir right now we could talk about.

Amos: What do you mean? What do you mean?

Chris: Like I don't know what you wanna.

Amos: Yes there is!

Chris: We could like, we could do like, uh, we can be like a main, we could be like the mainstream media and just make up news.

Anna: Oh yeah, right.

Amos: Well, the Elixir version 1.10.

Chris: Does it fit?

Amos: At least it's a thing. It's got some,

Chris: But is it good?

Amos: It, they've added some behaviors to create your own calendar, which is pretty freaking fantastic because I've always wanted-

Chris: Yeah, that's what I've often wanted to do is make my own calendar.

Amos: I do! I want a yesterday calendar.

Chris: What is a yesterday calendar?

Amos: So it’s like, where you say, uh.

Chris: Is that like a bullet journal?

Amos: What date do I have that thing to do? Yesterday. What do I have- what date did I complete that thing? Yesterday. That means that there's never anything for you to do in the future. It's where you get to go to brunch every day because everything you were supposed to do was yesterday.

Chris: Oh my God, what is an actual yesterday calendar?

Amos: It's no matter what day you at date, you asked for, it says it was yesterday.

Chris: I'm so confused.

Anna: It's not parsing for Keathley.

Chris: It's this a real thing? What are you talking about?

Amos: No I'm just making it up.

Chris: Use mouth words. That makes sense.

Amos: If I get to make my own calendars. I'm going to make a yesterday calendar.

Chris: So, okay. But, but okay. Hang on. So Elixir 1.10.

Amos: Um-hmm. Added a calendar behavior.

Chris: A calendar behavior.

Amos: Yeah. So you can create your own calendar.

Chris: Okay.

Amos: Because I mean, we're in the United States. So we think that there's only one calendar in the world, but there are lots of cultures that use different calendars and you, you can run into issues, I have in the past, like with the, when you have, a

Chris: Give me an actual example that uses real words.

Amos: The Chinese calendar, the Hebrew calendar.

Chris: Ok. But like what, so what would the differences be between- What are you looking for a calendar to do?

Amos: Dates don't, dates don't line up the same.

Chris: Okay. Got it.

Amos: And they parse differently and

Anna: Yeah, the Hebrew calendar is in like year 5,770 whatever.

Amos: Right. And it doesn't have the same number of days in a year, right. Or it splits them up differently. I don't remember.

Anna: That's the extent of my knowledge about that.

Amos: I mean, back in Java, in Java days they had unDecember.

Chris: Sorry, I'm asking my question poorly. When have you ever needed to do this?

Anna: That's really what Keathley's getting at.

Amos: To line up things with the Chinese New Year. Not Chinese New Year, Chinese calendar, which is, is quite a bit different. And, and there were business reasons too, to be, to be able to have that.

Chris: Yeah, I got it. Okay. Caught up.

Amos: Okay. So it, it, calendar can be important.

Chris: All right.

Amos: Lucky you that you've never had to deal with it. Cause it's horrible in almost every language.

Chris: I believe it, it sounds like it. So they added that and that's like the most exciting thing and we've covered it. So.

Amos: And done.

Chris: Rock on.

Amos: Okay, so you don't need a time, there's date time now.

Chris: Oh God! Our Long national nightmare is over!

Amos: Right.

Chris: Trump's going to get impeached and we add a date time now!

Amos: I'm excited about it.

Chris: Oh my gosh. That's amazing.

Amos: It is.

Chris: All right. Okay. No, not to cut you off. Keep going.

Amos: Enum has some, has some new functionality, frequencies, frequencies by.

Chris: Ok. That's cool. Alright, that actually is. That's pretty. Yeah.

Amos: Sorting. So if you, you can, now when you pass in sort, you can pass in a symbol or an atom. Symbol. Wow. Different languages.

Chris: So if you don't have to like write a function to do it like in descending order, as opposed to ascending order.

Amos: Right. And you can also pass in like a module, like date and it will use date to compare the things. So you can sort by date without having to write your own stuff.

Chris: Oh, how's it doing that? That's the most exciting thing you've talked about yet.

Amos: See, see?

Chris: How does it, how does that work? Tell me more, tell me how it do.

Amos: Oh man, I don't know. I remember reading the back and forth on how that should be done, but I, I haven't looked at the code of how it works.

Chris: So like forever ago, there's a really old mailing list thread where people requested a comparison protocol so that you could actually say things like, is this thing greater than this thing? Or less than this thing or equivalent to this thing? Like having some sort of, I think like there's like the spaceship operator in Ruby, it's the same thing. And Haskell there's, you know, a type class for this kind of stuff. And people wanted that. But the pushback was that it, you'd have to make it work for like term ordering because term ordering is already a thing. Whether you like it or not, I don't have an opinion on it. Don't at me. So like, I don't, like whatever the- term orderings a thing. Alrighty. So they would have to make the protocol work with like term ordering or something. There was like some sort of conflict there or whatever. So I'm interested to see now what, what they're doing to be able to make that work with sorting, because it seems like you would need something like that. Or it might be a behavior. I don't know. Or it might just like look for a function on a module.

Amos: Yeah, I would guess it's a behavior. And then if you want to do date descending too you pass in a tuple with the date and descending. So that's, that's nice to not have to write all that yourself all the time, but I'm not sure.

Anna: That is nice.

Amos: I, I assume that it's using the date module, like doing a date.compare call if you pass in a module.

Chris: Yeah. But I'm just curious to know like what it's doing under the hood. If it's looking, if it's like a behavior where you need to implement a function on a module, or if it's like attached to the data structures or something like that.

Anna: Look it up! We could look it up right now, right?

Chris: Yeah. I don't know. That seems that we, that seems impossible to me. That doesn't seem, it doesn't seem likely.

Amos: Okay. Maybe. It seems like it would be pretty darn impossible.

Chris: I'll let you do that.

Amos: Okay. That's fine. I'm going to do that. You guys just talk amongst yourselves.

Anna: Keathley's bossy today.

Chris: I'm bossy all the time. What are you talking about? No need to throw around today.

Anna: This is really good. I really need some of that coffee. Is this the coffee that you roast?

Chris: No, I haven't actually had a chance to roast in a while just because it's, I don't know, I don't have the time for it.

Amos: I'm drinking, I'm drinking the coffee I roast.

Anna: Yeah. But the coffee, you seem a lot more mellow. The coffee that Keathley is drinking-

Chris: Your coffee must suck!

Amos: He is- he is- wooo-wooooh!

Anna: He's on fire today.

Chris: No, I am drinking. They're not a sponsor of the show, but I'm drinking a Counter Culture currently

Anna: Oh yeah! I've had that. Counter Culture has a lot of good coffee.

Chris: We're really punching above our weight when it comes to coffee.

Anna: You really are.

Chris: Yeah. I mean that, that one specific thing, there's plenty of things we don't even punch our weight on, but coffee,

Anna: Wait, there's a lot of good food and I'm trying to get to.

Chris: Yeah. We're there there's some, there's some gaps. I would say there's some gaps in our, in our, in our food choices. Like there's not like a good, like a really standout, like amazing barbecue place around here.

Anna: Oh, that's fair.

Amos: But that is what it is, so.

Anna: Can we talk about how it's like Dreamforce week this week? And I hate this week, the most out of every week of the year.

Chris: Yes, please. I want to hear everything about it.

Amos: Do you want to hear this, uh, sort thing, how it works? I haven't been paying any attention to you other than my coffee sucks, apparently.

Anna: You hurt his feelings, Chris.

Amos: It's that if you pass-

Chris: I don't pay attention to anything he says ever.

Amos: Wait, that's true.

Chris: Turnabout's fair play.

Amos: It's not okay.

Anna: That's not very nice!

Amos: So when, when you call sort and you pass in a module, it calls module.compare. So you have to implement compare.

Chris: Okay. So it's like a behavior. Got it.

Amos: And it defaults to ascending order.

Chris: What do you return? What does it return? A symbol?

Amos: Compare has to return a symbol or an atom. Yeah. Whatever this language calls it of GT for greater than LT for less than, or

Chris: Ok. So it's the mailing list thread. Like that's basically what was proposed back then. But now it works.

Amos: Yeah. Right now it works.

Chris: That's awesome.

Amos: And it works for a lot of the Enum functions, max, min, all of those.

Chris: Awesome. That's really cool.

Anna: That's cool.

Chris: So that's pretty cool like that.

Amos: Uh, what else? Add version, uh, alongside your app names and stack traces.

Chris: Wait what?

Amos: It puts the version of your app in the stack trace. Whenever you get a stack trace, which, I mean, if you, if you have giant log files that you're trying to deal with, it can be good, if somebody's deployed somewhere in there, you notice. Nothing to write home about apparently. Function, identity-

Chris: Do you bump your app version for like an app that you've deployed? I mean, I get it for like, I get it for like dependencies.

Amos: Yes I do.

Chris: You do?

Amos: Yep.

Chris: Using what system. What do you do? Like bump a counter?

Amos: Yeah. I just change the version of the version file and push it.

Chris: To the next thing? For like, uh, an API that you're building.

Amos: Yeah.

Chris: Every time?

Amos: Yeah.

Chris: All right. Cool.

Chris: No, that's good. That's awesome! That's great.

Amos: No, it's great whenever you have like tools like Honeybadger or something, that's going to track your errors or even internally. And so you can say, hey, this error came in in this version. Sometimes I actually just leave the version the same, but I have pinned on it the, the head commit the tag and just do it that way and that way points to, uh, yeah. Well, and then all of your errors and all of your tools can utilize that version number. So things start to change and go crazy, you can say ope, his is when it was introduced without having to go do like a Git bisect or dig in too far.

Chris: Right on.

Amos: So it gives you a good way to roll back.

Chris: Gotcha.

Amos: They added function dot identity. So there's an identity function built in.

Chris: Wow. That happened?

Amos: Yeah, it happened.

Chris: Cool. I never thought that would happen.

Amos: I didn't think so either on the, on the listserv, but

Chris: I stopped subscribing to the mailing list. So I don't, I don't haven't kept up with anything recent.

Amos: This is why you didn't know that there was news.

Chris: Well, that's true. Yeah.

Amos: Anna looks confused.

Anna: I'm not confused.

Amos: Or she's just trying to dodge her microphone as it comes down on her. Uh, are you looking around the microphone? Yeah.

Chris: Uh, so what else, what else you got? What other hot and spicy Elixir news is there?

Amos: Mm. Hmm.

Chris: Hot off the presses.

Amos: Um, you know what, people should read the, read the change log. Keyword, pop, bang. pop bang. pop bang.

Chris: Oh, okay. Right. Yeah.

Amos: So it blows up.

Chris: I thought you meant they added a new keyword.

Amos: No, no.

Chris: But you're talking about like lists.

Amos: Yes. They added a warning if you have duplicate key in a struct. Which I can see, see that being an issue.

Chris: All right I'm bored. This isn't, I think we've covered the highlights.

Amos: We didn't even make it down to X units.

Chris: What happened in X unit? Oh no!

Amos: Diffs in pattern matching on a cert receive.

Chris: Okay. Cool.

Amos: Which is actually like, that's super nice.

Chris: Yeah.

Amos: What else we got? Oh, logger. Logger is now going to use the Erlang logger, yeah. So you don't have to set two different log levels, which is really nice.

Chris: Yeah. It'll, it'll be really convenient to have all that stuff unified just because it's just, if for no other reason, this is a giant pain to, it's a set up all like the SASA logs to go to all the same places and everything else. And every other application does it differently, especially if like logger, like the old Erlang log variant, if that thing is already using the new logger as well in Erlang then that will be good as well, because then it's like, then everything goes to the same place. So it makes it easy to capture all that. So I don't have to go in there and like configure logger just because I don't want it to spit out progress report, looking at you AMQPD library.

Amos: It's not judgmental at all.

Chris: No, but every application that uses that thing, I have to go in and configure all their logging nonsense.

Amos: I think your attitude has caused Anna to be afraid to speak.

Amos: No, that's not true.

Chris: No, she's just so upset about Salesforce.

Anna: I am really sad about Dreamforce. It's not, it's not, it's not my favorite time of year.

Chris: It's like a week-long too. And I've been there while its going on and like the hotel room rates all go up by like at least a hundred percent.

Amos: That's terrible.

Chris: It's wild.

Anna: Yeah.

Amos: So this, this is, this is something in San Francisco?

Anna: Yeah. It's the Salesforce conference that happens every year. It's called Dreamforce.

Amos: It's that big?

Anna: Yeah. I think Barack Obama, Bill Gates, I forget who else are speaking at one point or another.

Amos: Wow.

Anna: The traffic is crazy.

Amos: All the people you just named avoid Kansas City completely, so that'll never happen here.

Chris: I can't imagine, yeah.

Amos: It's because it's, it's so close to Topeka that they just have to not be here.

Chris: Wow. You hate Topeka so much, I feel like this as a recurring bit on the show, just your hatred.

Amos: It's more, it's more that I don't, I don't really have a hatred for Topeka.

Anna: Why do you hate Topeka?

Amos: I don't.

Chris: It's just funny at this point.

Amos: Right.

Anna: I don't get it.

Chris: Dreamforce was actually my favorite, like

Amos: Keathley has family in Topeka

Amos: kind of like new wave, like Prague band They're from Japan. They're really good.

Anna: Are they?

Amos: I thought it was K-pop.

Chris: Oh, that would be even better.

Anna: Wait didn't Ben go see some band-

Chris: Yes. Baby Metal and Dreamforce were touring together last year, and I was very fortunate to get to see them.

Amos: I needed this belly laugh today.

Chris: I'm glad I can provide this for you.

Anna: Alright, what else-

Amos: I just realized that my eyebrows don't show up on camera either.

Chris: I didn't think you, I just thought you'd, you know it all went to the beard. Like your face has a zero sum amount of hair and the eyebrows just migrated to underneath your chin.

Amos: Perfect. Is that a caterpillar on your chin?

Chris: That's where the hair on the side of your head went too.

Amos: Ok, back to, I'm going back. I'm going back 1.10 has some cool stuff in mix. You're going to like this. I think Keathley.

Chris: All right. I'm ready. If I don't like it though, oh boy. Are you in for it.

Amos: There's a flag for check unused on mixed steps unlock. So now you know which steps you're not using, right? No, no. He didn't get out of that excited. I was hoping he would.

Chris: No, it's good. I think so like, so I mean-

Amos: These are useful tools-

Chris: No, they are. I think part of it is like-

Amos: The language, two years ago, two years ago, Jose told you the language is done.

Chris: Yeah, no yeah. Yeah.

Amos: So then we're just, that's what I heard adding tooling.

Chris: That’s what I heard. That's what I heard.

Chris: No, I mean, I think that's kind of the point I was going to make is we have this sort of embarrassment of riches of all these nice things. And really, I think the tooling in the language is already really good. Like really, really good. And I notice it more when I go and work in other runtimes and I'm doing work elsewhere, like how good a lot of our tooling really is and, and just sort of like the thought and care that's gone into it. And so, and we already have like, there's certainly things that I would like to add that I know are never going to get added to the language. But I mean like most of the core data structure stuff is fine and like in a good place and the operations that we have available are fine and in a good place. And so it's like, what else? What, what new spicy thing could you really even add that would like be revolutionary? And it's like, I'm not really looking for that. I think we already have so many things pretty well in hand. Like we already have so many good tools and now it's just sort of a continual refinement of those things. And that's great. That's a great place to be. I think like it's something I've actually thinking about a lot is like Elixir's kind of boring for me right now.

Anna: That's not a bad thing.

Chris: And it's not a bad thing at all. No, no, no. Like that's not really meant as a, as a slight or an indictment of Elixir as a language. It's just sort of like, it is what it is. Like it's kind of boring partially because I know the language pretty well at this point. And you know, I'm not wowed by like a lot of stuff I was wowed by when I first came to the ecosystem. Uh, but that's fine. That's just means that like, it's a part of, you know, those tools are now a part of my toolbox, which is great. This is where you want them to be. And I'm kind of enjoying the fact that it's really boring. Like I'm enjoying the fact that like it's stable and not a lot of stuff is like going anywhere anymore. We're not like deprecating a ton of APIs anymore, any of that kind of stuff. And it feels good. It feels good just to build things with it.

Amos: There are some hard deprecations though. Can't use simple one for one anymore.

Chris: Yeah, well, whatever. That's fine. I stopped using simple one for one, the minute that dynamic supervisor came out and never looked back, never missed simple one for one.

Amos: So how do we refine our tools?

Chris: I don't know. I don't know.

Amos: What, what's the, what's the next step? I mean, it's all done. It's time to move on.

Chris: No, no, that's not what I'm saying at all. I'm just saying like, I'm enjoying that it's like a boring tool that I can reach for, for all these like a bunch of different situations and just feel really good about it. Like, I feel really good about the Elixir stuff I put into production because we know it really well. I don't know. I've been thinking about this a lot, like about the whole like notion of like choosing boring technology and choosing technology you feel comfortable with and you know how to manage and that kind of stuff. And that's where Elixir's after me right now. It's like a thing that we know we can put into production and know how to tune and know how to, and make it fast and know how to like make it scale and all that kind of stuff. And that's really good. That feels really, really nice for Elixir to be in that place, in my opinion, because it now is like a super pragmatic choice to use Elixir for a bunch of these different tasks. But even a couple of years ago, I would have been like a dicier proposition more because it might've been more of an unknown or certain libraries might not have been there yet. Or you would have had to be building a lot more stuff like right now you can pretty safely like grab whatever you need. And it's a really pragmatic choice, especially if you understand the runtime.

Amos: Do you both feel that it's, um, becoming more stable to a point that more companies are, are going to be willing to, to jump on board?

Anna: I think that's a harder question to answer because that doesn't just depend on the technology itself.

Chris: Yeah.

Amos: That's just one of the reasons I've heard from people is that, uh, it was, it was unstable. So for a while, they wouldn't, they didn't want to use it.

Anna: I mean, there are a lot of big companies, but there are more, there are more big companies I'm seeing now using it. Um, you know, PagerDuty being an example, all of their backend services are in Elixir. Every new service they spin up, it's in Elixir, but I think the hard, it's not just the technology choice itself, right? Like hiring is a thing that's hard. Right. And a lot of companies don't- have a hard time hiring developers and it's there aren't that many yet, right. Elixir developers. So that's the thing. A lot of companies that are super focused on security, already have a lot of static analysis tools that are built in other languages. And so like, they've already kind of picked a couple languages within their ecosystem. So I think it makes it harder for them to switch over or try something new because of that also. As far as new companies that are like, don't have, that are like spinning up, like I think the thing, the hard thing would be the recruiting thing.

Chris: Yeah, and there's like a legion of people who want to do Go or who, whatever, you know.

Anna: I don't understand those people.

Chris: I don't either.

Amos: And Anna is definitely informed. I'm re I'm waiting for your talk to, to come out from Gig City.

Anna: Yeah. I've been writing more Go these days and I'm, I don't understand why people, I mean, it's fine.

Chris: It's soulless.

Anna: Exactly. Like it's fine. And you can be productive very quickly, but I don't enjoy writing in.

Chris: Yeah. It's completely soulless. As far as I'm concerned. Like you just, you know, there's no spark in there at all.

Anna: You're like, cool. Let me write all this code to do this thing. Also like error handling is not existing.

Amos: Yeah. Why, why would you want to handle errors? Ever?

Chris: Yeah.

Anna: Just have error not nil written everywhere in your code. It's fine.

Chris: I was talking to a buddy who writes Go for a living these days and he's like, he's like, I have an Emacs macro now for it. I just make a claw motion and out it spits, you know, if error-

Anna: If error not

Chris: Yeah. Because it's like, this is what you do. This is what you gotta do. So whatever, I mean yeah. That sounds miserable. I mean, I don't know. I wrote Go the other day and I was like, oh my gosh, this is so soulless.

Amos: I have been able to avoid that for quite a while.

Anna: Good.

Amos: I looked into Go for a very short period of time when it first came out and the error handling-And at that time, I don't know if it got better, but the story around dependency management was kind of a joke.

Chris: It still is kind of a joke.

Anna: It still is kind of a joke. I mean, it's gotten a little bit better, but it's still kind of a joke

Chris: When your whole thing, is it a mono repo why do you need dependency management? Come on.

Amos: Right, right. There was, I mean-

Chris: Go is basically like, I'm stealing this joke from someone else, but I don't know who. Go is basically newspeak, right? Like it's like, you're not even allowed to have wrong think in Go, like it doesn't allow you to say things that would be considered to be wrong in Google's mind. And it's like, so Orwellian 1984 era, like, you know, just, you aren't allowed to have impure thoughts. Somebody doesn't allow you to think impurely.

Anna: Well, somebody, like, was tweeting about how the creator of Go, I'm totally gonna get this wrong, was like, well, I wanted to build this brilliant elegant language, but then you have all these engineer, young engineers at Google

Chris: Who can't comprehend it.

Anna: Who can't comprehend it and you have to put them to work. So I built Go.

Amos: Yep.

Chris: That's a real thing. That's a real thing that was said.

Amos: Yeah.

Chris: And it's definitely been like trotted out a lot of times like that quote specifically, I think rightly so. I don't, I think you maybe shouldn't get away with being able to say things like that.

Anna: Right.

Chris: Even though that's pretty funny. And like you say, things like that, you kind of deserve to get made fun of. So I'm like, I'm cool with it, but I mean, he's that, that, person's also kind of not wrong in that it's Python, but actually you can say less things than you can say in Python and Python's already like a pretty like prescriptive language, right? Like one of their core values is like, there's one way to do it. Like Python says that upfront as a goal, right? Like you shouldn't be, you should, there should be one very well-defined way of doing anything in Python and Go is like, what if we made that not compile if you didn't do it the right way, right? Like, and so you, you aren't allowed to have thoughts that do not align with-

Anna: Which is interesting because it's trying to be a replacement for C.

Chris: I got, I think it, I don't know. Like, I feel like it's,

Anna: I mean, not actually cause its garbage collected, but like

Chris: I think it's, I think it's replacing, people- yeah. I mean, I agree with you. I think like people who would have written something in C++, and who want or like who wanted like something that's garbage collected, like they didn't want to deal with like the memory management parts of C++, but they wanted it to be fast still or whatever. Like, yeah. I think it's a replacement for that. And also it's got curly braces and so it looks familiar and all that kind of stuff. And like some, some version of like references and pointers-

Anna: Exactly.

Chris: Um, that are like, quote, unquote, safe. Whatever.

Anna: Whatever.

Chris: Like they're safe as, you know, you just cast things and that's as safe as it ever was in C, who knows, uh, it wasn't like that ever caused problems.

Anna: Nope.

Chris: But I think more than that, it's just like, it has this really good concurrency model or like it has a concurrency model at all and it's fast. And so I don't know, like, I mean, code routines are fine. I don't, I mean, I'm not gonna speak to like how the implementation of, of Go's code routines or how much I do or don't like them, but I just mean that like, it has a multi-core concurrency model-

Anna: It does.

Amos: And like that's table stakes, as far as I'm concerned for any backend language at this point. Like table stakes are, you have to have a multi-core support on your server, but that's a me thing. So I think it Go is like ticking all these boxes. And like, of course, Google fricking loves homogeneity just in like they prey and they prey upon like this ridiculous notion that developer, that programmers have, where they like have no self-preservation and love homogeneity. They love doing what everybody else is doing. And it's just like, that's just dumb. Like, like why do you have some burning desire to be exactly like everyone else that's and have all your things look the same.

Amos: Because Google's doing it.

Anna: Keathley is throwing it down today.

Amos: Don't you want to be like Google?

Chris: I just, I just like wake up sheeple, like what's going on? Like,

Anna: There's a lot of that going on in this country right now.

Chris: Oh, well, I mean, you know,

Amos: Oh geez.

Chris: I just think, but I think program, I think type is like, but like, I think programmers specifically just love this notion of like doing what everyone else is doing and like having all these things, like, be like, sort of like maximally consistent. And I just don't, I just don't get it. I don't get that at all.

Amos: I lost everything you said. Anna I had one little quote there that I think is the quote of the show and it was very heavy.

Anna: What did I say?

Amos: There's a lot of people and there's a lot of that going on in this country.

Anna: And he said, sheeple and I was like well, , there's a lot of sheeple right now.

Amos: Yep, yep. Yep.

Anna: I don't know that we want to go down that road.

Amos: No, I don't. It was just heavy.

Amos: *sighs*

Anna: *sighs*

Anna: Oh man, y'all

Chris: So, yeah, but I, I don't, I don't care if I have been writing a lot more Rust recently and you know, third time's the charm or so some, some might say. Or something. Rust is fine. I'm actually, I'm enjoying Rust more. But I think part of it's that I've given myself over to the puzzle.

Amos: Are you working with Sonny a lot?

Chris: No. No, I'm not. I just, you know, I just feel like I want to do something new.

Anna: And he's bored.

Chris: And I'm bored. I just want to do something new, just for fun, just to like learn. Rust isn't as bad as it feels better this time finally. But at the same time, I'm like most of what I'm doing is solving puzzles and not solving problems. And the puzzles feel really good when you solve them. But I feel like that's also a programmer trap. That's like a pro like puzzles are like a program or honeypot, like everybody likes-

Anna: Speaking of honeypot id you guys hear that PayPal bought Honeypot for $4 billion?

Chris: Wow! That's a lot of money.

Amos: I need $4 billion.

Chris: Don't we all?

Amos: Then I can have brunch every day.

Chris: There's just so much brunch!

Amos: I would buy you both brunch every day.

Chris: The brunch budget is really, really large at that point.

Anna: At that point, yes.

Chris: You can buy basically everyone probably in the world, I'm going to say,

Anna: Forever.

Chris: Brunch.

Amos: Smoked salmon and capers on a bagel for everybody.

Chris: That's a lot of money for brunch. You probably get some sort of like discount too. If you buy in bulk like that,

Anna: You know? Well, wealth generates wealth. So, you know, there you go.

Amos: Go. I'm buying the nation breakfast.

Chris: Um, um-hmm. Amos for president Mr. President.

Amos: No, no

Chris: Buying the country breakfast

Amos: They'd impeach me before I even got to the office

Chris: With your, with your ridiculous breakfast stance. It'd be like, oh, I really think that Mr. Amos's, Mr. King's platform, his breakfast platform on what are we gonna get the money for that? There's no way we can afford to pay for his breakfast platform. We got to put America back to work.

Amos: We're going to shut down universal health care and bring in universal brunch instead.

Anna: Oh my god, where did that accent come from?

Chris: I'm running on a lunch and dinner only platform.

Anna: Oh my god Keathley.

Chris: We're going to actually, we're going to skip breakfast and use that money to give tax breaks.

Anna: And then how are you going to pay for lunch and dinner?

Chris: Exactly. What do you think that money's coming from? Mr. King's plan would never be able to sustain a viable economy in the digital 2.0 era.

Amos: Maybe you should run. Yeah. Yeah. Are you you're, you're not even old enough to run for president are you?

Anna: No he's not.

Chris: Or qualified. I'm going to go ahead and say not qualified either.

Anna: I was so sad in like the third grade, when I learned that I could never run for president.

Amos: Why can't you run for president?

Anna: I wasn't born here.

Amos: Oh! The more you know.

Anna: That's very sad. I don't want to be president, but I was very sad when my dreams were crushed in the third grade.

Chris: As a third grader,

Amos: It turns out it's like probably the best thing that ever happened to you.

Anna: Otherwise, I would definitely be running for president.

Chris: Yeah. Your whole life trajectory would have changed at that point. Started grooming for, for president early on.

Amos: I'm not, I'm not enough of a megalomaniac to be president.

Anna: Oh my God.

Amos: I mean, I think if you're running for president, you have to believe that you are better than everyone else in this country for that position or you shouldn't be running, you should step down. And if you're that full of yourself, I don't know. I just can't. I'm not good enough.

Chris: I mean you have a podcast where you say things.

Anna: Yeah. But we don't expect anybody to listen.

Chris: That is true.

Amos: Half the time I hope they don't. Especially like today. We just, I would say that, that the conversation divulged. Divulged? Is that the right word?

Chris: That's right. Yeah. Divulged. That's actually all we do on this podcast is we divulge.

Amos: Divulge lots of things. Yeah.

Chris: This is a, is this a call back? Are you doing this bit again? Are you, did you literally forget again? Which word you wanted?

Anna: Do you want to say diverged?

Chris: We've literally done this bit before.

Amos: No. Degraded. No, I just, I can't come up with the right words. It's hard to do that.

Chris: Diverge.

Amos: More like degrade. Degrade.

Anna: Derailed.

Amos: It degraded. I would say that except for the fact that we started out in that position, it slides

Chris: Well I've degraded you a lot on this show. So-

Amos: That's also true. Why do I keep doing this with you?

Chris: I don't know. Because I'm still likable. Because I'm funny. And pretty.

Amos: That's true. Both. Both are true.

Anna: Both are true.

Chris: Both and.

Chris: Yes, and.

Anna: Yes, and.

Amos: Yes, and.

Anna: Uh, alright y'all.

Chris: So we diverged.

Amos: Yeah.

Chris: Is what you would say. I don't know. We talked about Elixir. That's what the people are here for.

Amos: I know. We've diverged so far though, that, and Anna sounds like she's ready to go.

Chris: Amos has been ready to go since he got here.

Anna: I know

Amos: I'm home alone. I'm home alone with the kids. I gotta, I gotta take care of them. My wife's in Costa Rica.

Anna: Oh, ok.

Amos: So, so it's, it's a party at my house.

Chris: Party at Amos's house!

Amos: I probably have to go teach math or history or something.

Chris: Yeah. I should do real work today.

Amos: Why? Just go to brunch man. Go to brunch.

Chris: That does sound good actually. That does sound good.

Amos: Anna, Anna, Chris, you guys both have a wonderful day.

Anna: You too.

Chris: Yup, you too.

Anna: Bye.

Chris: Alright, later.