Algorithms + Data Structures = Programs - Episode 70: The Programming Language Quiz
Episode Date: March 25, 2022In 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)
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,
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
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,
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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,
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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,
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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
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
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
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.
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...
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.
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?
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,
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
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
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.