Algorithms + Data Structures = Programs - Episode 70: The Programming Language Quiz

Episode Date: March 25, 2022

In this episode, Bryce takes the programming language quiz!TwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachShow NotesDate Recorded: 2022-03-19Date Released: 2022-03-25Guadalupe TrailBubly...OOKLAEPOXYTony Van Eerd’s TweetmemtestProgramming Language Dependency GraphPython’s graphvizDOTThe Programming Language PodcastDavid Koontz on TwitterSmalltalkPharo-FunctionalErik Meijer on TwitterC# 3.0 LINQC++17 std::optionalC++23 std::expectedRust OptionRust ErrorOCamlJared Roesch on TwitterHaskell + C++ = Rust TweetSimula67AdaStepanovPapers.comSwiftObjective-CErlangElixirClojureScalaDavid TurnerKRCSASLMirandaAWKJavaScriptSelfIoSeven Languages in Seven Weeks: Ch 5 - Scala MeetupIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8

Transcript
Discussion (0)
Starting point is 00:00:00 Damn it, and I'm going to keep this in. It is Blackberry. I said Black Cherry. I said Black Cherry, and it's Blackberry. Welcome to ADSP, the podcast, episode 70, recorded on March 19th, 2022. My name is Connor and today my co-host Bryce takes the programming language quiz. All right, episode 70. We're going to start off by saying that our thoughts and our hearts are with the people of Ukraine. As the last two episodes, I think actually, I don't know when exactly things escalated,
Starting point is 00:00:49 but it was somewhere in between the last two episodes when we were interviewing Andrei Alexandrescu. But when we recorded that, it was mid-February. And definitely the invasion hadn't happened yet because we were speaking to Andrei, who's from Romania. So that definitely would have been topical. And it would have come so yeah we just want to say that yeah thoughts and hearts are with the people of Ukraine and any of the folks that are in neighboring countries that have opened their hearts in their homes to shelter the family and people of Ukraine that have fled our hearts and
Starting point is 00:01:20 thoughts are with you as well and also to a lot of the people of Russia that are not supporting or are not supportive of what the government of Russia is doing. Because, yeah, in the C++ community, there are definitely a ton of Russian and Ukrainian developers. So we're thinking about you and we're hoping that this ends soon. Awkward transition to our regular episode so uh bryce has no idea what we're going to talk about the first thing we're going to talk about is i have five i mean when do i ever have an idea what we're going to talk about on this podcast sometimes sometimes you do sometimes you do like when we have a guest you always are informed of our guests but it's going to be another quiz today. Oh, great. This just means that at some point he's going to bring on a surprise guest. I was about to say I'll never do that to you,
Starting point is 00:02:10 but now it's an idea in my head, so we'll think about it. But five corrections, four corrections from a few of our past episodes, plus a tweet. The first correction from episode 64, we were talking about biking trails, and you said, I mentioned a trail, and I was like, do you know what the name of it is? And you said the San Thomas Aquino Trail. That was actually not the trail I was thinking about. That's the one that goes to the NVIDIA HQ or by it. I was thinking of the Guadalupe River Trail, which is a fire trail. By fire, I mean it's awesome, not that it's on fire, which now that I say that, I would imagine some people's awesome not that it's on fire which now that i
Starting point is 00:02:46 say that i would imagine some people could actually think that it was on fire due to the fire for fire forests forest fires down in california um but yeah awesome trail that is by san jose i'd recommend you to go bike it bryce but you're now in new york so no can do that's right until we're back and it's it's just like the weather's just gotten to be good enough like this week that I'm going to probably get out of my bike sometime sometime in the next week for the first time since October and November. Nice. That's awesome.
Starting point is 00:03:12 Yeah, it's weather has been I mean, it's still snowy here in Toronto, but a couple days ago it hit 15 degrees, which is probably like 50 degrees in Fahrenheit for our American listeners. And that's pretty warm for the middle of March. So yeah, it's yeah. Anyways, that's a mistake number one, the Guadalupe Trail, not the San Thomas Aquino. I'm sure our listeners or our listener cares. Correction number two, our future sponsor, Bubbly. The best flavor is not blackberry. It is black cherry. I am so sorry, Bubbly, for messing up the name of the purple Bubbly.
Starting point is 00:03:49 I will never make that mistake again. They're going to pull our sponsorship deal now. Damn it. And I'm going to keep this in. It is blackberry. I said black cherry. I said black cherry, and it's black berry. Black berry, as in the name of the Canadian company.
Starting point is 00:04:08 How can I ever mess that up? Yes, if you're too young because you're still in university. You know who used to work there? Tony Van Eerd. He's actually the tweeter that we're going to talk about on point number five. So first two mistakes, the bike trail, the bubbly flavor is black berry, not black cherry. The next mistake is from episode 65 when we were you i was trying to solve your volvo wordle wordle's never coming up on this podcast again
Starting point is 00:04:30 why because i went to ireland and when i came back the time difference broke my streak i didn't miss a day you're probably thinking oh connor you messed up the time difference i did not i did not and my streak is gone i still have a hundred percent win rate but my streak is gone. I still have 100% win rate, but my streak is not there. So, Wordle, you're dead to me unless if you fix my win streak. And anyways. Isn't the state client-side? I have no idea, but I'm blaming the New York Times and Wordle. I'm pretty sure it's client-side and it's like a cookie.
Starting point is 00:04:59 And I suspect that you could figure out how to hack the state. Well, if one of our listeners wants to send me the fix for that, I will do it. I am not spending any of my free time researching how to fix New York Times mistakes. Anyways, from that episode where I was trying to get Volvo, I said Ookla's was the name of the speed test website. It is not. It is Ookla, which is actually five letters. With an S, it would have been six.
Starting point is 00:05:23 Important to fix. Our listeners care. Mistake number four, we said epoxy. And I'm sure there were a couple of listeners when we said epoxy. They're like, doesn't epoxy start with an E? Why are they? Because I think that was when we were solving the word that ended up being. We said it started with an A and it starts with an E.
Starting point is 00:05:39 Yes, it does start with an E. It does not start with an A. I don't know why we thought. I never suggested that it started with an E. I think it was me. I think it was me. It wasn't you. Yeah, it was you. I don't know why we thought. I never suggested that it started with an A. I think it was me. I think it was me. It wasn't you. Yeah, it was you.
Starting point is 00:05:47 Anyways, those are our four mistakes. The bike trail, the Blackberry Buble, Ookla, not Ookla's, and epoxy starts with an E, not an A. And that brings us to Tony Van Eerd's tweet. Tony on 9.55 p.m. February 11th tweets out, not gonna lie, I was driving by a shopper's while listening to this podcast, and it convinced me to stop and buy a bubbly water.
Starting point is 00:06:17 Turns out there was two for $3 deal, so I bought two. That's what we like to hear, Tony Van Aerd. Thank you for sharing with us. And bubbly, if you're listening, that's proof. We are causing monetary capital gains for your company, your bottom line. Let's do it. All right. That's the end.
Starting point is 00:06:38 Anything you'd like to add to my four corrections and tweet before we get into today's pop quiz? I don't got anything. Let's – come at me. Okay. This is going to be fun. This is going to – Wait, wait, wait. Am I allowed to cheat? No cheating.
Starting point is 00:06:49 No cheating. No Googling. This is going to be tough because I'm sitting in front of a... I'm like actually in a browser window right now. But go ahead. I'll try not to cheat. First, let's get open programming language quiz. Oh, I got to warn you.
Starting point is 00:07:02 I have to warn you of one thing. Which is the reason I had to revamp my computer before we recorded was that I was running mem test because I was pretty sure that the RAM in my laptop was bad because my computer had been randomly crashing and doing weird things. And it is, in fact, bad. So it is entirely possible that halfway through this, my computer will choke and crash again and
Starting point is 00:07:26 we'll lose the entire recording of that so bryce making up excuses just like he did back in high school whenever there was a test i did i did make up lots of excuses or bullshit would be a more accurate word oh and wait wait i shouldn't show you this one shouldn't show you this one we'll look at this after i'm covering my eyes so i recently during uh thank you day from nvidia where nvidia gives us a couple days off made a programming language dependency graph using python's graph is i've got another story about python and how python bricked my computer when i went to ireland python's you mean the python interface to to graph this correct yeah because, because it's a generic thing. I just use, like, you know, dot if I need to make a graph.
Starting point is 00:08:10 Yes, well, I think it uses dot on the back end. So, anyways. That whole package of software would be an interesting thing to talk about at some point. Okay, okay, we'll put it on the list. GraphViz is awesome, and we'll see at the end. But, this led me to make a small little programming language quiz, which I'll probably turn into a talk at some point so here we go i'm going to put two
Starting point is 00:08:28 programming languages logos uh this is audio so i'll read them out for the listener and bryce has to tell me what when you combine them what language you get here we go i think there's nine so we'll see what percentage is he gonna is he gonna bat above if this was not audio you would not you would not read out what the languages are audio you would not you would not read out what the languages are and you would expect people to know what the languages are from the logo no i'd read it out as well uh just in case they didn't but i mean most of them are obvious so number one question number one c++ plus haskell equals what play along listener in your head or out loud if you want if you're going If you're going for a run, going for a bike ride, going for a walk,
Starting point is 00:09:05 walking the dog, doing dishes in the car. I don't know. Small talk? You think C++ plus a functional language equals small talk. That is incorrect. I'll give you a second guess, but you won't get any points. You got zero for this. You got zero for this. You got zero for this.
Starting point is 00:09:26 I have no clue. What do you think a more functional C++ language is? Like a language that's like C++? Yeah. I don't, I don't, there's none that I could think where you would use this combination. Boom. See, I was thinking that. Rust.
Starting point is 00:09:41 That one does not make, like, that does not make a lot of sense. It does, actually. I talked to David Kunst, actually recorded a podcast with him that never ended up airing for a podcast that I never started, which actually I have started. There's some breaking news. See, I'm going to defend my decision to Smalltalk because Smalltalk is also an object-oriented language, which I believe is also more functional than C++. First of all, Smalltalk was created before both C++ and Haskell. You never said that it was a prerequisite that the languages on the right-hand side of the equality had to be... I mean, I'm pretty sure that was kind of implied.
Starting point is 00:10:26 I just want to defend my choice here. Okay. Smalltalk, it's also an object-oriented language, which I thought was why you had C++ there. And it's got, you know, I think it's more functional than C++. Dude, you're writing a thesis about developing a combinator library in Smalltalk. Yeah, but that's because I'm building it on top of another functional, a pharaoh functional library, which basically introduces a bunch of functional things. I mean, Smalltalk is admittedly, I think, feels very functional.
Starting point is 00:10:58 But like, it's not because it's very idiomatic. Smalltalk is really mutable. There's no such thing as pure functions. It's based on message passing. It feels functional, but it is not. But anyways. The other one that I was thinking about was C Sharp, but I don't know how. I mean, C Sharp is also pretty functional.
Starting point is 00:11:20 What's his name? Eric Meyer worked a lot on it and really worked on getting Link, which was heavily functional programming inspired. But anyways, Rust has a ton of- I'd love to have him give a keynote at one of the C++ conferences. A few years ago, we did other programming languages as a keynote theme for C++ Now.
Starting point is 00:11:40 And I think we'd reached out to him, but we never made the connection. But I've seen him speak once, and he was pretty good. Yeah, Eric Meyer, he's awesome. I'll link a couple of his talks. If you're listening, Eric Meyer, call me. I want to... If I find out that Eric Meyer is a listener of our podcast, I'll be thrilled.
Starting point is 00:11:59 You'll be very excited. I don't think that's the case. But anyways... He is in our circle on Twitters, I believe. That's true. I actually know Paul taylor who's a co-worker he works on rapids um he knows eric meyer quite well so yeah i know paul um yeah hi paul in case paul's listening yeah paul doesn't ah maybe paul listens hi paul if you're listening but i don't think you are anyways see the reason that i'm surprised about rust is that like i don't think of like the functional part of rust as being like the defining thing about Rust.
Starting point is 00:12:28 Well, so here we got to wrap this up because this is question one and this podcast is going to end up being an hour at this rate. But the story I was going to tell earlier about David Kunst is that at one point during one of the companies he worked at, they were going to start a new project and they were going to choose a new language. And they chose six classically functional languages like PureScript, Elm, Elixir, etc. Haskell was one of them and a couple others. And then they ended up adding on a seventh one, Rust, just for kicks because they thought they'd heard, oh, that, you know, it was Rust was initially implemented in OCaml and a lot of the.
Starting point is 00:12:59 What? Yeah. Excuse me? Yeah. It was initially implemented in OCaml, and it has adopted the error types. Basically, it's idiomatic Rust uses the option type and errors. So std expected and std optional and C++ are the idiomatic way to program in Rust. Anyways, I'm not going to say more about it, but the point is Rust is extremely functional.
Starting point is 00:13:22 And there's a quote by his Twitter handle is like R-O-E-S-C-H. I can't remember. But I think I can't remember. I heard him say though once that a lot of people view Rust as like the love child of Haskell and C++. Anyways, question one, incorrect. Zero for one. And they get harder from here, I think. Question number two, Simula plus C. Zero for one. And they get harder from here, I think. Oh, no.
Starting point is 00:13:47 Question number two, Simula plus C. I don't even know that much about Simula. What is Simula? I just got to let you know. Our listeners are going to be disappointed. Why? You'll know why when I say the language. Well, isn't Simula an object-oriented language? It is.
Starting point is 00:14:04 So replace Simula with objects plus C c it's got to be c++ that is correct ladies and gentlemen i got that one right uh simula 67 is actually a lot of people because because doesn't doesn't uh it's it's object-oriented doesn't have similar inheritance and polymorphism. It doesn't have a template system, though. No, I don't think so. Classes and inheritance first showed up in Simula, and a lot of folks actually think that the OG object-oriented language is Simula, not Smalltalk.
Starting point is 00:14:42 But that's because Smalltalk messed up in its branding, and it really should have said it was a message-passing system language, not an object-oriented language in my opinion. What languages did C++ draw inspiration from for templates? I want to say Ada, but I could be wrong about that. Yeah, I think you're right. Well, I mean, I think Ada is certainly one of the ones that had templates um yeah i feel like one of the languages that stepanov implemented his stl in but they call they call them generics right they call them generics yeah ada generics i think um but yeah one of the languages he
Starting point is 00:15:18 implemented the stl in was ada it was like ada scheme j, and then finally C++. We just published the latest revision of Ada. I know this because I am, you know, U.S. Programming Languages Committee Chair, and Ada is one of the, like, three programming languages that we interact with fairly regularly. And so they just put out their latest revision. Nice. We'll link that in the... I've actually... I can't say much more, but I have had Ada-related conversations at work in the actually i can't say much more but i have had
Starting point is 00:15:46 ada related conversations at work in the past two years interesting you know what that means folks i can say this because i don't i'm not in the know kuda ada coming to coming to a theater near you sometime soon anyways uh maybe one for two battingting 50%. I have no idea what the next one is because I actually made the slide deck like a month ago. How is this one harder than the other one? I mean, in general. I think a lot of people are less familiar with Simula, but you're a C++ dev.
Starting point is 00:16:16 Okay, so this one, you've got C plus Smalltalk. Correct. One, why doesn't Smalltalk have a better logo than that? Smalltalk doesn't actually have a logo. So what Bryce is looking at is that the cover of a Byte Mazzine. Okay. So on the C++ one, though, you had Simula on the left of the plus sign and C on the right of the plus sign.
Starting point is 00:16:37 And the answer was C++. And I think it would have made more sense to have C on the left and Simula on the right because you were going for like C with classes. But then on this slide, you've got C on the left and then small, like what you should be consistent with where you put C. Absolutely. I mean, I just added these randomly. There's no pattern. Admittedly. Yes. The, the C plus Simula, the C is more important, but yeah, there's, there's no, there's no pattern. My bad hang on it it took act because you probably just like copied this slide multiple times and this slide comes right after the previous
Starting point is 00:17:09 slide so you actively had to put the c on the right side instead of the left like you had to move it once you copied it i mean that's a good point that's a good point why did i do that nobody knows i don't know i don't know myself uh so c plus small talk question number three what's the listener thinking they can't they can't assume that you don't repeat answers right correct will it be 33% or 67
Starting point is 00:17:38 maybe maybe Swift not a bad Maybe... Hmm. Maybe Swift? Not a bad guess, but that is incorrect. I'll give you half a point. We're going to give you half a point because... And I'll let you guess again. Actually, no, I'll tell you the answer because we're short on time. Swift was a successor language to the answer to this question.
Starting point is 00:18:05 So Swift was basically the new version of Objective-C. Oh, that's, oh, oh. That's not fair. That's not fair. I mean, it is. It is fair. But yeah, basically C plus Smalltalk is Objective-C, and then Objective-C was irritating people.
Starting point is 00:18:26 So Chris Lattner went and created Swift, along with one of our past guests, Dave Abrahams. That is the sole reason that Chris created Swift was because Objective-C was irritating people. You know who we should have on the podcast? We should have Swift and Tanya on the podcast. Or we should have Chris and Tanya on the podcast. Swift and Tanya.
Starting point is 00:18:44 Yeah, I'd love to have both of them on the podcast. Or we should have Chris and Tanya on the podcast. Swift and Tanya. Yeah, I'd love to have both of them on the podcast. That'd be dope. All right. So we're at 1.5 for three because Bryce wasn't wrong. He didn't guess the logo on the slide of Objective-C, but he was not wrong, which is great. So 1.5 out of three, 50% still. This one is tricky. Small talk plus Pearl. We're looking at an onion on the screen. Pearl also famously doesn't really have a logo. It actually has like four logos.
Starting point is 00:19:11 It's got a camel from the O'Reilly book, an onion from the purple one, a raptor. Does Pearl have classes? This is really more. It's small talk with Pearl syntax is what this is representing. Python? Oh, close. more it's small tuck with pearl syntax is what this is representing python oh close i'm not going to give you a point for that the answer is ruby yeah i would never have gotten that yeah so 1.5 or 4 oh this is gonna make math hard so that is uh 37.5 is that right three over eight i don't know you're the actuary yeah yeah there's a math degree i don't deal with numbers 1.504 37.5%. Is that right? Three over eight. I don't know. You're the actuary. Yeah. Yeah. I'm just a math degree. I don't deal with numbers. 1.50 to four is 37.5% currently.
Starting point is 00:19:49 Ruby plus Erlang. This one's a hard one. Oh, I, I, I, I have zero shot of. This is Elixir. I'm sure a couple of our listeners are, or no, actually I can say that a couple of our listeners got that. So yeah, Elixir is a functional language that takes the OTP model from Erlang and adds Ruby syntax to it. So that's 1.5 out of 5, which is 30%. Moving on to question number six. Java plus Lisp.
Starting point is 00:20:17 Java plus squiggly lines. How many Lisp dialects do you know? Does that mean that it's a... Some number. How many Lisp dialects do you know? Does that mean that it's a JVM language? It is a JVM language, and it is a Lisp. There's a non-zero probability that Bryce is cheating right now. I think it's either got to be Scholar or Closure. It's one of those two.
Starting point is 00:20:50 One of them's a lisp. Which one do you want to guess? I'm going to go with Closure. That is correct. Ding, ding, ding, ding, ding. With a beautiful logo, I might say. If you haven't seen the Closure logo, check the show notes or just Google it.
Starting point is 00:21:02 It's one of my favorite logos. Very beautiful. I think Rich Hickey, the designer of the show notes or just Google it. It's a pretty nice logo. It's one of my favorite logos. Very beautiful. I think Rich Hickey, the designer of the language, his brother designed it. I could be wrong about that. But if not, it's a great story. And that was number six. So you are 2.5 out of six, which is halfway between 33% and 50%, which is like 40. Not good.
Starting point is 00:21:23 Not good. It's like 44%. Let's leave it at that. Let's leave it at that not great all right so 2.5 out of 6 moving on to question number 7 java plus haskell is it also a jvm language this is correct scala that is also correct That means you're at 3.5 out of 7. For those of you that don't know, Scala is basically a Haskell implemented on the JVM with Word syntax. But still a beautiful language.
Starting point is 00:21:53 And I think they came up with... I think some people would take umbrage with that. I mean, I think actually most Scala developers are huge Haskell fans that just want a more practical Haskell to program in production. So they would all probably agree that Haskell is more beautiful, but Scala is more practical.
Starting point is 00:22:07 Scala is statically typed, right? Correct. Yeah, and so Scala would not have made sense for the previous question because we were talking about Liz. Correct, yeah. So 3.5 out of 7. We've got two questions left, and Bryce has gotten himself out of the hole he was in,
Starting point is 00:22:23 and he's batting 50. Batting 50. Moving on to question number eight. This one I think is tricky. C-sharp plus OCaml. Oh, my God. Well, what is OCaml known for? It's an ML, which stands for meta language.
Starting point is 00:22:41 Yeah. Is this a.NET language? It is a.NET language. It is basically the functional F... Oh, scheisse. It's F sharp. I would have gotten there, I think, because there's not that many.NET languages. Let's see, what other guests? No, I don't think there's any others that I could have guessed.
Starting point is 00:23:05 I wouldn't have guessed J-sharp. So yeah, I would have guessed F-sharp. Yeah, we'll give it to them. We'll give it to them. 4.5 out of 8. But yeah, that was a pretty bad mistake on my part. F-sharp is an ML, right? Correct. Yeah, it's considered an ML.
Starting point is 00:23:18 So 4.5 out of 8 is 56%. Technically, it's like 56 point something cause it's 12.5 divided by two. Uh, so if you, you basically have bat 50, no matter what, if you get this next one wrong, you get 50.
Starting point is 00:23:36 If you get it correct, that'll be, uh, 5.5, which is basically 60%. Um, All right. So last but not least, question number nine. Oh, yeah.
Starting point is 00:23:48 There's the F sharp logo. No one recognized it. It's a blue diamond. Really? It's not an F? Why is it an F? It used to be apparently something to do with music, like a music note or the F sharp, something like that. But, yeah.
Starting point is 00:23:59 Now it's, I don't know. It's like a deconstructed version of that somehow, I'm sure. Algal plus lisp is question number nine what okay hang on let me think about this algol plus lisp so is it a lisp it is a lisp and you've already guessed one lisp closure so you know it's not that lisp so the question is how many other lisps do you know that's like a really old one and it's not that lisp. So the question is, how many other lisps do you know? That's like a really old one. And it's like contemporary.
Starting point is 00:24:30 I think it's contemporary with like original lisp. Okay, so what are the properties of Algo? Well, it's imperative. So what lisp is imperative? I think I'm going to get in trouble for actually not remembering this because it was in SICP that ALGOL had lexical scope or it had one of the
Starting point is 00:24:54 there is lexical and then what's the other one? Dynamic scope so I think it took like lexical scoping from ALGOL and combine that with Lisp and so this Lisp was the first one with lexical scoping I could be wrong
Starting point is 00:25:04 and maybe you're supposed to replace the word lexical scoping. I could be wrong, and maybe you're supposed to replace the word lexical with dynamic, but I think I'm right. In fact, I can just Google this. Well, given that you mentioned SICP, I'm going to guess scheme. Oh, snap. That is correct. And I should not. Which is the Lisp that I actually know the best.
Starting point is 00:25:21 Although I will question whether it is actually a combination of algol plus um oh it definitely is yeah because that's where this equation comes from is from the sick p textbook it talks about how oh really i have this connor's very jealous i have a physical sick p textbook which which is apparently worth like $250. Oh, no. Yeah, yeah. Let's go Sick P. I can just open the physical copy and look, you know, because I have the physical copy. If we go to Amazon.ca, the hardcover is $1,176.68. Yeah. And I have the hardcover.
Starting point is 00:26:03 Wow. Yeah, because they don't sell those anymore. You can get the paperback for $70. But yeah, they're very, very hard to come across. If you ever find a purple book in a bookstore with two wizards on the front that says Structure and Interpretation of Computer Programs, you buy
Starting point is 00:26:17 that book and either keep it or then go sell it online. Give it to me. Really? It's worth $1,000? Yeah, at least on the Canadian site. If you want to buy a copy of sickbee uh hit me up no i i wouldn't i couldn't part with it amazon let's see what amazon.com maybe you can get it for cheaper in the states uh structure and interpreter of computer programs hit this we go to hardcover in hard in america it's only 1000 uh 1000 it's only 132 dollars and 95 cents okay that's that's you know which is more reasonable all that being said is that if we break out of this uh power uh programming language quiz
Starting point is 00:26:59 and we head over to this diagram i'm not sure if you've seen this diagram. Ooh, nice diagram. But yeah, this is what I created using graph is, and, uh, yeah, it's in dark mode now because I'm adding it to a slide deck at the moment that is all dark mode id. And in the future, I've added a couple esoteric languages to this one that you're looking at right now. I'll leave a link in the show notes if people want to take a look at this, cause it is pretty, if I do say so myself. SASL, KRC, which stands for St. Andrew Static Language and Kent Recursive Calculator. They're two languages that David Turner, the individual who also created Miranda, the main language that influenced Haskell. Those three languages, Miranda, KRC, and SASassel are all implemented on top of combinators and it uses graph reduction techniques to compile the language down and fp and fl which are basically
Starting point is 00:27:55 languages that contributed to j are crazy fascinating languages fp is the language that john backus mentioned and basically outlined in his 77 Turing Award winning paper, Can We Be Liberated from Von Neumann Languages? Super fascinating read. He calls combinators in that paper combining forms. But yeah, I'll stop rambling about that. We'll talk about that in another episode. I have one for you that I think is a challenge. Oh, here we go.
Starting point is 00:28:23 Flipping the quiz. Can Connor go one for one? All right. All right. one for you that I think is a challenge. Oh, here we go. Flipping the quiz. Can Connor go one for one? Alright. It's going to be awk plus scheme. Awk plus scheme. I mean... So is it a lisp with like the power of...
Starting point is 00:28:40 It's not a lisp? So I'll walk the audience through my thought process. My first thoughts are that it's either... I mean, awk's definitely a language. And I don't know much more about sed, but sed goes right next to awk. So my first thought is that it's sed. It could also be regex if you consider that a language.
Starting point is 00:28:59 So I'm just trying to think of languages similar to awk. I'll go with sed. Does that count? Sure, but that is incorrect. i'll give you one more guess one more guess it's not a lisp pearl what it what it what it uh what it well i'm gonna let you rethink that guess after i give you the hint the what it takes from awk is that it's like data driven and event driven not you know, not more of your traditional compiled program. I have no idea. SQL?
Starting point is 00:29:30 JavaScript. Auck plus Lisp. I'm pretty sure that Brendan Eich has said that Auck was one of his inspirations. Interesting. Yeah, I should have guessed that because I did know that initiallyk was one of his inspirations. Interesting, yeah. I should have guessed that because I did know that initially JavaScript was called LiveScript and Brendan Eich wanted it to be a lisp in the browser. And then basically his superiors were like,
Starting point is 00:29:53 no, no, no, no, no. This needs to be like Java. So then he kept the core feeling of it being like a lisp, but then changed all the syntax to sort of mimic what Java did. And then they rebranded it from LiveScript to JavaScript. So I could have gotten my way there, but I did not know. You could arguably say it's really like a C++ plus awk plus scheme and the C++ being the one it's a multi-implementation standardized
Starting point is 00:30:19 language and it draws its syntax from Java, c and c family things yeah javascript implement influenced by java scheme self oc and hyper talk so yeah yeah i don't know anything about self or hyper talk self is a language implemented by david unger and was basically inspired by small talk but it removes classes from so it's basically small tick is both classes and objects and you use classes to instantiate objects. Whereas self is a purely prototyped based language where everything's an object and you create an object by cloning another object. So JavaScript is also a prototype language. And the only reason I know all this is because I just covered IO, which is the second book in my seven languages in seven weeks, uh, meetup that we're currently doing. And IO is basically a prototype
Starting point is 00:31:10 language based on self. Um, so I learned all that like in the last month or two. Cool. Thanks for listening. We hope you enjoyed and have a great day.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.