Algorithms + Data Structures = Programs - Episode 21: Galaxy Brain Programming Languages

Episode Date: April 16, 2021

In this episode, Bryce and Conor talk about galaxy brain programming languages and programming paradigms.Date Recorded: 2021-04-03Date Released: 2021-04-16Galaxy Brain Programming Languages blog postF...our Languages from Forty Years Ago - Scott WlaschinPower of Composition - Scott WlaschinCppCast Episode 242 is AWESOME! (first code_report blog post)Intro 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 What joke? What joke am I telling? Am I a funny person? No, I just figured that I've got a joke. What do you call a boomerang that doesn't come back? I don't know, Connor. What do you call a boomerang that doesn't come back? A stick. welcome to adsp the podcast episode 21 recorded on april 3rd 2021 my name is connor and today with my co-host bryce we talk about galaxy brain programming languages and different programming paradigms. So, I watched, here's what we're going to talk about. We're going to play another game.
Starting point is 00:00:55 This will probably be a shorter episode, but I watched a talk, you might have seen this on Twitter a couple weeks ago, called Four Languages from 40 Years Ago, and it was given by Scott Wawashin, who's, I believe I pronounced his name correctly. If I didn't, I apologize. He's a prominent speaker, especially in the functional programming community and is known for his work in F-sharp. And he's a fantastic speaker. I'll link to The Power of Composition,
Starting point is 00:01:20 which is a fantastic talk. He introduces the idea of railroad-oriented programming where you're basically, you play with functions as like Lego blocks. And, you know, it's fantastic. But anyways, if you're looking up the talk, that'll be cheating. Because we're... So the game that we're going to play, and I think that Scott made a big mistake
Starting point is 00:01:44 because the best part of his talk is in the beginning, he has this little introduction, where he goes through sort of languages of importance from the 50s up until 1980, I believe. And he talks about, you know, oh, this language was important for this reason, this language was important for this reason. And every, you know, second or third language, he labeled as a galaxy brain language because it was, it contributed, you know, it was the first language to do X
Starting point is 00:02:12 or it was important for some reason. And I think he should have called the talk galaxy brain programming languages, which is now I'm going to go give a talk and I have a blog article that I'm working on. And so what we're going to do, I do have a blog. Of and i have a blog article that i'm uh working on and so what we're gonna do of course i do have a blog of course i have a blog i honestly i made the i made the blog because i wanted to uh write a blog about how much i enjoyed the cpp cast episode when they brought on uh
Starting point is 00:02:38 jonathan turner um jason's cousin who has worked on like i don't know a bunch of different languages he's worked on rust he's worked on typescript he worked't know, a bunch of different languages. He's worked on Rust, he's worked on TypeScript, he worked at Microsoft for a while. And he just his story was just so fascinating as like a programming language enthusiast. And I was I was so excited about it. I was like, I need to go start a blog just so I can write a review of this episode. Anyways, but here's what we're going to do. There were eight galaxy brain languages that were mentioned in his history from the 1950s until 1980. And he sort of makes some remark, I think, like by 1980, we basically had discovered all the big ideas that exist in programming languages today.
Starting point is 00:03:17 And everything that you see now is just a re-articulation of some idea that we already stumbled across. So there's nothing really new that's been invented since the 1980 mark. And we're going to play a game and see how many of these languages you can guess correctly. Oh, God. This is not good. Audience, this is not going to go well. I think you're going to do better than you think. And we'll keep track of how many how many wrong guesses you get
Starting point is 00:03:45 i think you can easily get six of these uh six of eight and then i think you might struggle with the last two i'm gonna be happy if i get one all right you'll definitely get and that's the thing is if you saw those tweets um the four languages that scott talks about and focuses on so he gives a brief history at the beginning and then goes on to focus on four of these languages. They were four of the galaxy brain languages. So what do you want your first guess to be, Bryce? Oh, of galaxy brain languages? Yeah.
Starting point is 00:04:17 I'm going to go with Lisp. Lisp is number two. And here's the hint that I'll give you, too. These were all introduced in chronological order. So Lisp is number two on that list. So you're one for one right now. Chronological order. Oh, wait, if it's number two, that means there's only one that's older than it. You are a smart cookie. Actually, and I'm totally wrong. So there's actually nine. I just I realized I put number two twice lisp lisp was originally lisp was like 1958 so that means that one of the other two like the one of the other two okay so there's only one you said there's only one that there's only one number before the number two and that's no no no but are we are these listed in in age
Starting point is 00:05:01 they're listening yes so so? Yeah, so the... So audience, that means that it's almost certainly got to be either COBOL or FORTRAN, and I got to decide which of those two I want to pick. Now, I personally think that COBOL is a more Galaxy-brained language because COBOL was the first language that was not developed by a company.
Starting point is 00:05:22 COBOL was like open source before open source was a thing. We're going to do a whole episode about COBOL. Like I know COBOL is not very modern today, but it was actually pretty, pretty, pretty modern back in the day. Like in the process by which it was developed was fairly novel. Yeah. So between COBOL and Fortran, it's got to be one of those two. I'm going to go with COBOL. I'm going to go with COBOL. That is incorrect. All right.
Starting point is 00:05:52 And then I'm going to use another one of my guesses on FORTRAN. Hopefully that one will be correct. FORTRAN is correct. And so there's also a little sort of comment behind each of the languages. So LISP is 1959, according to Scott. I know 1958, it's sort of fuzzy which number gets chosen. Fortran is listed as 1957. The comments next to those languages
Starting point is 00:06:14 is that Fortran was the first high-level language and that Lisp was the perfect language that you should read. That's not why I would pick Fortran. I'm, I'm surprised. I, like, I understand that reasoning, but there were a lot of other things that Fortran did that were fairly novel. Like the, the whole idea of like the, the symbolic computation of, of a programming language for math, there were a number of other ways in which Fortran was fairly novel. And it's interesting to me that that's the one that you'd,
Starting point is 00:06:54 well, I guess in a vacuum, yeah, that's probably the most important aspect of Fortran was that it was the first of these high-level languages. Also, too, I thought the year associated with COBOL was 1960. So I'm actually surprised you guessed COBOL. I could be wrong about that, but... Yeah, you know what? I think you're...
Starting point is 00:07:17 Well, all of it's a little bit fuzzy. Yeah. I think of Lisp as being a little bit later there. But I think you're right. I think Lisp originally originated in like 1958. I think the years that Scott chooses are the years where there was the first implementation available. Because I know that a lot of these languages were being worked on um cobalt was designed in like the summer of 1995 it was cobalt 60 the first spec was published
Starting point is 00:07:52 in wait you just said you just said 1995 1959 the um the first and like when i say it was designed in the summer of 1959, I mean the entire language was designed over the summer of 1959, primarily led by a group of female programmers, which is another reason why COBOL was fairly innovative. And so Lisp, I think, did... I think the original ideas behind Lisp were like 1958, but the spec for it, I think, came out after the initial COBOL specs in 1959 and then the final one in 1960. Or not the final one, the final version of that first one in 1960 yep so i hope i hope all the listeners are playing along so bryce is two for three we've got the first two
Starting point is 00:08:52 languages fortran in 1957 lisp in 1959 and that means there are seven languages sorry so i misspoke at the beginning there were nine galaxy brain languages in total so what do you want your next guest to be i guess i'm gonna have to go with c next that seems like a pretty a pretty safe one c is not a galaxy brain language this is fun. It's fun for you. I just imagine, too, that there's folks that are either exercising, they're out on a walk, or they're in their car, and they're playing along being like, why won't Bryce guess this one? Come on. How about... Say again, what's the criterion here? What is necessary for a language to be considered a galaxy brain language?
Starting point is 00:09:50 I can only speculate based on the sort of the comments that Scott put next to the galaxy brain photos. But they're the languages that sort of were the first to do something or to introduce new paradigms or new things for the first time. I think Bryce is cheating now. I heard him clicking his mouse. It's going to Google. How about prologue? Ooh, and this is going to be so fun.
Starting point is 00:10:23 So yes, prologue. Yeah. You are now three for five. So yes, Prologue. Yeah. You are now three for five, so you're batting above 50. That's 60%. See, the reason I said C was because it's been a transformative language, but this guy's been thinking about it from a – not from an impact in the industry, but from an impact in the field of programming languages.
Starting point is 00:10:48 Yeah. So, yeah. So the, the comment next to prologue and so prologue is 1972 and it comes in at number six. It comes in at number six. Okay.
Starting point is 00:10:57 Hang on, hang on. I gotta, I gotta open up. Okay. So we got, we have, we have number one,
Starting point is 00:11:03 we have Fortran. Number one, we have Fortran. Number two, we have Lisp. Is that right? Yeah. And then number, what, what did you, what number did you say it was? So number six is Prologue. And the years on all three of those respectively is 1957, 59, and 72. So we've got three languages in between 1959
Starting point is 00:11:25 and how many are there total? There's nine languages total. So you're missing number 3, 4, 5, 7, 8, and 9. Well, that narrows the problem down a good bit. And also, you're capped at 1980. What? This list.
Starting point is 00:11:41 This list. I'm glad I didn't say JavaScript or Java, which were the next two that I was thinking about. Given that time range, and also given you, I'm going to have to say APL. I think I just have to. I'm insulted that it took you this long to guess APL. And I thank all of the listeners that have been yelling this. But it wasn't a talk that you gave. It was a talk that somebody else gave. All right.
Starting point is 00:12:17 Where does APL go on this list? So APL, although many people think it's 1962, that was when the A Programming Language book that won Ken Iverson the Turing Award was published. The first implementation of APL didn't show up until 1966. And so the two comments also – so APL is number three. It's number three. Okay. We're getting somewhere.
Starting point is 00:12:42 We're getting somewhere i'm getting somewhere and the two the two comments next to prologue and prologue um it says introduced a new paradigm logic programming and apl is uh jokingly because he did say some nice things about it afterwards the first write-only language but he did he did also uh comment next to it that it uh it popularized notation as a tool of thought, which is the name of Ken Iverson's Turing Award paper in 1979. And then he mentioned that Ken also got the Turing Award for inventing the language. All right. All right. So that means you're four for six.
Starting point is 00:13:18 Am I correct? Yeah, I got my D out for – hang on. It's safe to say that Bryce is on is on some wikipedia page i'm checking i am checking yours i mean i i i guess i'm gonna have to say um algol given that c's not on the list algol algol is not come on language this guy this guy so i i think in your defense um c and algol definitely got mentioned in the brief history of you know programming languages and he did remark that c uh and algol were two of the most influential languages. There was actually a language, this is not one of the nine, that he, the remark on the language was,
Starting point is 00:14:10 the most influential language never implemented. And I would, I have zero, I don't think you would get this. If you want to guess, you can. I think I had only heard of this once or twice in reading papers. How about Pascal? It was not Pascal. No, no, no. I'm asking if Pascal's on the list.
Starting point is 00:14:41 Oh, that's one of your guesses. No. So you're now, I think, four for eight now. You're now at 50. This next guest is important. The language that I was going to say that was the most influential language that was never implemented is a language called ISWIM, I-S-W-I-M. I would not have gotten that. Audience, I would not have gotten that.
Starting point is 00:15:01 And apparently it introduced, like like many of the functional programming concepts um but yeah it was never implemented all right so we got five five languages left two between 1966 and 1972 and three after 1972 i think you should definitely get three of these like i said there's sort of two that even i might not guess because one of them is sort of arguable whether it's a programming language oh sequel yes so i'll start i'll start giving hints so you're now uh sequel uh is 1974 and that's number eight number eight um wait 1974 and that's number eight hmm. Hmm, that's interesting. That's interesting indeed. Hang on.
Starting point is 00:15:53 So the remark of SQL is that it introduced a new paradigm, relational databases. You said it caps out at 80? Actually, at this point, you only have one language above 1974. I'll just tell you the year. It's 1976 is when this... So if there are any... See, that puts me in a tough situation because I have one that I want to guess, but I don't think it was...
Starting point is 00:16:14 I don't think it was create... Hang on, hang on, hang on. I got to... There's a version of this language. The most well-known version of this language is, insert the name of the language, 80. The most well-known version of this language is, hmm, that's interesting. I think, actually. I might be mistaken because I think there's an 80 version.
Starting point is 00:16:39 There's an 82 version. Oh, okay. It's small talk? That is correct. That is correct. 2 version um oh but okay it's small talk that is great i i i knew there were i knew that i knew that there was going to be um uh i'll tell you i'll tell you why there was going to be some sort of message passing or concurrency language um so small talk's not not surprising all right so well small small talk is so the remarks next to small talk sequel number eight and small talk's number nine okay all right the um the the comments next to small talk are that they it introduced the interactive uh ide uh the virtual machine garbage collection which um i, Lisp was the first language with GC,
Starting point is 00:17:27 but I think Smalltalk was the first language that really showed the power of the GC. Also, RealOO, which, like, that's also a hint, is that the comment is RealOO, because most people would remark that Smalltalk was the first, you know, purely OO language. But there is another language on this list that some people say was the actual first object-oriented language. See, that makes me want to... It makes me want to... You're at six for ten right now, so you just you're still batting all right i got i gotta guess at this point then uh i thought it was pronounced ada but um i uh it is not ada is
Starting point is 00:18:15 not on the list and i also don't think ada i thought ada was created in like the late 80s no it's like uh 78 79 but I thought it could have been 76. Well, so that's the, you're not using your information correctly because you know that there's only three languages left. Two of them are between 66 and 72. All right, how about ML? ML is on the list, ladies and gentlemen. That's the 1973 one, right? Because that's around the right time time for ml correct yes all right so there's there's two other ones between 1966 and 1972 ml for those uh that
Starting point is 00:18:53 don't know is stands for meta language and the remark next to that one is it introduced a new paradigm of functional programming which uh i'll i'll say something once we finish all right give me some hints for these other two so it's uh funnily enough ml and um sequel were the two languages that i thought you might not get so the two that are remaining i thought you would have an easier time getting so the one that i'm really surprised you haven't guessed one of these you definitely know the language because it is one of the ancestor languages of c++ in fact you can argue that the ancestor languages of c++ no you you could argue that c plus this language equals c++ c plus this language. So what does C plus plus minus C give you? Yeah. Really?
Starting point is 00:19:48 B? D? No, B, I said. B. Oh, B, B. I was like, D definitely didn't come out until, like, the 2000s. B is not correct. Really?
Starting point is 00:20:02 Okay. All right. What did B do? B introduced structs? How about Simula? Because isn't that object-oriented? It is Simula. Yes.
Starting point is 00:20:18 Simula 67 was the first language with classes and inheritance. Was that four or five? That was number four. So was that the one you were just talking about? The one that's C++ minus the C? Yes. And this is also the one that a lot of folks argue is actually the first OO. Like a lot of folks say that the first object-oriented, purely object-oriented language was Smalltalk. And like they're the one that popularized object-oriented programming.
Starting point is 00:20:46 But then there's some folks that say, well, really, Simulus 67 was the first true OO language. I'm just impressed that I got Prolog. All right, so tell me, give me something about this last one. So, yeah, this last one is, I believe it was invented by Chuck Moore. Don't Google that. I'll Google it for you just to make sure that
Starting point is 00:21:10 I've got that correct. And it's known as Yes. Chuck Moore is a computer American computer engineer and programmer best known for inventing this programming language. That does not help me.
Starting point is 00:21:28 It doesn't help you, but it's widely known as one of the easiest, if not the easiest, programming languages to implement. As like taking a first stab at implementing a language to get your toes wet. Oh, well, I mean, I know what... Wait, no, that wouldn't work for the timeline, though. Oh, and here's actually a great clue. I'm not sure if this will help at all. It has five letters in its name,
Starting point is 00:22:03 and it actually was supposed to be six letters. So, like, the word that they chose was six letters, but due to some limitation with, like, word length on some system, they had to remove one of the letters. It's five letters in the name. Which, like, it was, it's easy to implement. It's between 67 and... 72. All right, I'll give one more hint. It's known as...
Starting point is 00:22:30 The remark next to it is it's the first use of concatenative programming. So it's a... And if you're not familiar with that, that means it's a stack-based language. A stack-based language. That was, that's five letters in between 67 and 72. I mean, if you're familiar with stack-based languages,
Starting point is 00:22:58 this is the most famous one of all. So like other stack-based languages that are less well-known are like joy factor um and they're all basically derivatives of this language hang on i got so like when you talk i got an idea i don't actually know anything about this language is it fourth it is fourth look at that you're nine for 15 that's uh that what is that? That's 3 over 5. That's 60%. That's pretty good. Oh, boy.
Starting point is 00:23:27 I do not like your games, Connor. I don't like them at all. So, yeah, 4th dropped the U. I can't remember why they wanted to call it 4th. I think it was, like, the 4th implementation of something. There's some story behind it because like that's not a name where it's like obvious that uh uh like there's not it's not a name where there's like an obvious character that you could drop but like nobody still uses fourth right that's not true um uh it's too bad ben dean's not here, because Ben Dean knows more stuff about this language.
Starting point is 00:24:07 And it's used on a lot of OS implementations. I'm not sure if they're OS implementations, but it's a super good language for where you have constrained resources and you need a really small memory footprint, because it's such a simple language to implement. It has like, it's very small footprint and actually is very high performance because it's such a simple language. And it's a really interesting language. Like it basically has a bunch of verbs,
Starting point is 00:24:39 not verbs, but functions that are basically like ROT for rotate, DUP for duplicate, REV for reverse. And basically you have to build up an expression that does some simple calculation. And a lot of them make use of something I've talked about with respect to APL called combinators, where you need to sort of manipulate the order of the arguments in order to do something, because you're always evaluating the thing that's at the top of the stack. So it's a very, very interesting paradigm. I'm too obsessed with APL right now to go and learn it and explore it. But once I get over that obsession, it's definitely on my list. And yeah, so the reason that I think this is interesting is that
Starting point is 00:25:20 the blog that I'm working on was titled for a long time, The Eight Programming Language Families. And it's based on a former blog by Ben Dean called Six Programming Languages Worth Knowing, where he, I actually don't even have the full list of six. Actually, I can just click on this link and it will bring me to the article. full list of six languages are algal the algal family so c and any of its descendants fourth lisp haskell smalltalk and erlang and then ben also has a tweet where he mentions a list of seven languages i believe and apl is on that list and so i sort of i combined those both ben's tweet and his blog, and then you end up with eight languages. ALGOL, FORTH, LISP, HASKEL, SMALLTALK, EARLANG, PROLOG, and APL.
Starting point is 00:26:11 And I thought it was super interesting that the overlap with the Galaxy Brain languages in Scott's talk is almost 100%. So Scott adds Simula67. He adds FORTRAN. He doesn't include Erlang. And then he adds SQL. And then I would argue that like ML versus Haskell, those are just two different languages that are both extremely functional. And the point here being that I watched a YouTube video by some, you know, computer science educator that was saying, you know, programming languages don't matter.
Starting point is 00:26:50 I have the exact quote here. I have courses on C, C++, Java, Ruby, PHP, Dart, JavaScript, all these different languages. Teaching these languages, teaching these different languages, I'm literally doing the same thing. And if you like listen to that list of languages, C, C++, Python, Java, Ruby, PHP, Dart, JavaScript, they're all from the same category. They're all basically like C or algol derivatives. You could argue that Ruby is a small talk derivative because basically Ruby is small talk with just nicer syntax. But the point being is that like someone remarking that like, oh, like learning C or C++ or Python or Java, like there's no difference.
Starting point is 00:27:33 Well, it's like, well, yeah, that's because they're all in the same category. If you're going to go and learn a new language, don't choose a language from the same family. Like it's the equivalent of if you know French and then you go and learn Spanish. Well, it's not super different, whereas if you know French and then you go and learn Korean, that's an entirely different language, and it's going to change the way you have to think about things. And the point here, the point about the blog is just, if you're exploring languages, choose languages from different paradigms and different families.
Starting point is 00:28:01 So the list in total was fortran 1957 list 1959 apl 1966 simula 1967 fourth 1970 prologue 1972 ml 1973 sequel 1974 in small talk 1980 um all right all right so if we look 1976 technically for small talk but yeah okay if we look past um uh if we look past 1980 what other languages would you add to this list i already have a couple um i would probably add erlang because it was one of the first languages to be designed from the ground up with concurrency and distributed computing in mind. And it was introduced in the 80s. So it sort of, it preceded the multi-core revolution. I think I would also say both Java and JavaScript for somewhat different reasons. well okay there were arguably languages before java that introduced the idea of an abstract machine um and have run anywhere but um i still would argue that java um uh introduced it in sort
Starting point is 00:29:36 of a novel way and then javascript because it was the first um web centric um uh language um web-centric language. It was a language which was, you know, originally designed from the ground up to run, you know, in your browser. Although now it runs in many other places. So what about you? What languages do you think would be galaxy brain languages
Starting point is 00:30:01 from the more modern era? Or ones from the older era that you think should have been on his list but weren't yeah i i agree with erlang um i disagree with java because i think everything in java was in smalltalk um and then uh sun just went and threw millions of dollars at java and that's why it ultimately won it wasn't because of technically um like it wasn't a technically superior language. It was a marketing thing.
Starting point is 00:30:28 And Smalltalk came out of Xerox, which is like famous for not knowing how to market their stuff. Apple came along and just like ripped off all, I shouldn't say ripped off. The true story is that really they were collaborative and they shared ideas. And Xerox had so many good ideas,
Starting point is 00:30:42 even if they were good marketers, they wouldn't have been able to sell them all um javascript i would also quasi disagree with i mean javascript is known as like just lisp in the browser it was originally um designed exactly like that and it was called live how about html and um i mean i would argue html is not a language and i don't i don't want to start that war but i i trapped you i just like all to all to all of our listeners who are html programmers it's connor said that not me um um i mean like i i i agree that like there's something novel about the browser but like it's just a new sort of it's just a new domain that sort of a quote-unquote Lisp. And then I think Sun or I think the story was that it was Sun
Starting point is 00:31:32 that they were creating LiveScript and it looked too much like Lisp. And so they said, we want it to look like Java. And so they rewrote it, kept the sort of Lisp core nature to it, and then made it look more like Java than rebranded it as JavaScript. So I agree with Erlang. I wouldn't add Java or JavaScript. I think I would actually add Rust.
Starting point is 00:31:54 You'd add Rust. I said that basically nothing new has been invented since the 1980s. But Rust, you could argue with their um memory safety um is actually novel it's the first language uh to have like it's the first systems level language that comes with that kind of safety guarantee and i think some people argue that it was actually first implemented. This gets back to my issue with Ada not being on this list. Like, how is Ada not on this list? A language that introduced the notion of design by contract as a language feature.
Starting point is 00:32:41 Like, yeah. I'm frankly shocked that it's not on the list i don't know uh anything about uh is it i i pronounce it i do not know all right well you say ada i'll say ada and one of us it was a language that that like i think it was first introduced in like 77 um it had uh well now it has concurrence i don't know when concurrency was added to it but like it was the language designed from the ground up um for use by the dod um uh for like critical dod systems and it was sort of built from the ground up to be a language that provided very strong guarantees regarding determinism, et cetera, where you could make your preconditions and your prec conditions very clear and more most importantly where you could formally verify the correctness of a program um which is like a big deal and like
Starting point is 00:33:51 yeah i'm just i'm shocked that it's not on the list i'm shocked that it's not on the list and i think definitely if russ belongs on the list at ada or ada however you want to pronounce it belongs on the list uh well so couple of things I was going to say. One, you could, if you're going to argue that Rust should be on the list, I think there's some folks that know more than I do about this that actually say that Clean was actually the language that first experimented with that idea. And then Rust borrowed the language from Clean.
Starting point is 00:34:21 Ada, I don't, yeah, like I said, I don't know enough about. Do you know if ada was invented before eiffel yeah i thought it was another one that i was thinking about um uh eiffel for those of you that don't know is the language that i associate with uh contracts and that typically contracts yeah for those of you that are not familiar it's like preconditions post conditions and like making sure that that's uh definitely um ada definitely um precedes eiffel predates if that's the case then yeah uh arguably ada should be on the list so yeah erlang like i said though i i wouldn't say for sure rust. I just, that is quasi-novel. And then potentially I would add a language like Agda or Idris to the list because that's
Starting point is 00:35:10 like dependently typed languages that are currently being, it's the equivalent of what Haskell was in the early 90s. They're just sort of academic experimental things right now. But, you know, 20 years from now or, you know, like, qualify. um essentially you write like some uh if i recall the idea correctly you write some like constraints um uh or you you partially write the program and then like ml or something figures out the rest of what you wanted oh is it called um angelic because it's uh what do they call it um it's like it's holy because you you basically create type holes and then the compiler right i think that's right yeah
Starting point is 00:36:33 i saw i saw a talk about it at some facebook programming language conference that i went to a few years ago um and and yeah and so so i and i the reason I list that is that there's probably some language like that, or maybe not a language itself, but just the whole model behind machine learning programming frameworks probably deserves to be on that list in some way. Like, like, like, like I really, I really liked the definition that Sean gave last week of like machine learning is just like, you know, it's just a way to approximate a function. And the whole model of instead of, instead of writing, instead of coding logic for something, building up a neural net that you're going to train to do the right thing, instead of programming some fancy, complex system to do the right thing, I think that's sort of a novel idea. And I guess another category where, again, I don't have a language, a specific language to list and where it doesn't really exist sufficiently yet to be listed, but, um, uh, quantum compute, like programming paradigms around quantum computing are fairly different than, uh, traditional computing.
Starting point is 00:38:13 Yeah. The only language I know is Q sharp, which is comes out of Microsoft, um, uh, for quantum computing, but yeah, that's, it's in its infancy right now. Um, at least it, that's it's in its infancy right now um at least or either it's in its infancy or it's just outside of the stuff that i've read another term for the angelic programming thing i think the more popular term is non-deterministic programming in in connor's book sequel is a programming language but html is not yeah yeah we'll have to do a full we'll have to do a full episode on that um i feel like sequel is something that like if i really dove into i would actually fall in love with as well because sequel to me the the little that i've been exposed to it also just basically seems like an algorithm there it's basically just a bunch of joins group buys
Starting point is 00:39:05 uh selects it was highly influenced link uh in in c sharp 3 uh or like in all the later versions as well but c sharp 3.0 got link which was highly inspired by sql um there are there are sql people who have suffered at the hands of sql out there who are going to send you emails about that yeah okay maybe some people suffer but also too i think the the work behind like the the algebra and the work done behind uh relational databases and sql it's it's phenomenal like and um i think yeah that's one of the things like so the four languages in this talk that i highly recommend it's one of the things. Like, so the four languages in this talk that I highly recommend. It's one of the best talks I've ever seen.
Starting point is 00:39:48 The four languages from 40 years ago. The four languages that Scott focuses on is SQL, Prolog, ML, Smalltalk. And he actually has, oh, here's a bonus round of our game. He has a hidden language, which is going to get spoiled. So if you don't want that hidden language to be spoiled for watching the talk, pause and come back to the, listen to the last couple minutes of this episode. It was created in 1979, and he argues that it's a programming language, but like it's by all accounts, like not a programming language. But we actually, and it's, it's the predecessor, um, to, uh, a quote unquote language that we did a whole episode about earlier in this podcast. So first
Starting point is 00:40:34 see if you can identify what that programming language episode that we did was about. Is this the Excel episode? Yeah, it is. Yes. So what is the predecessor to Excel? I don't know. Well, did Lotus precede Excel? Technically, Lotus did, but something even preceded Lotus. And it was the killer app on, I believe, the Apple II. Oh.
Starting point is 00:40:58 Yeah, I'm not going to get this. Which is what a lot of people, it's what a lot of folks argue was actually the reason why that hardware was successful. It wasn't because of the hardware, it was because of the software. And that program was VisiCalc, which actually you probably have heard and recognized the name, but I probably also wouldn't have been able to name that off the top. And it's, yeah, it's a fantastic talk.
Starting point is 00:41:27 And yeah, so the point here that I was getting to is that sequel yeah he he spends quite a bit of time talking about it and how um it has persisted you know amongst so many other programming languages uh that that died and but like not only has it persisted it has absolutely like thrived um like sql is it's everywhere um data like you're not gonna you know meet a software engineer that hasn't at least heard of a database i mean think think about all the different amazon dynamo mongo like everything with a db after it um you know sql and no sql like it's it's of all the languages, you could make an argument that like SQL has been the most pervasive of all of them, quote, you know, quote unquote languages, as obviously some people wouldn't call SQL a language.
Starting point is 00:42:15 But anyways, we should probably start wrapping up. That's where we'll end it. Thanks for listening. And we hope you have a great day.

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