Secure System for Episode Numbering
00:00:16
Speaker
now By the way, we we don't have episode numbers anymore, Eric. That's good. yeah We're going for some like modern Message Digest type system, ah which is basically made of like ah names and titles. We'll include the title, but we but the number is going to be like a Message Digest.
00:00:38
Speaker
um what We want a cryptographically secure episode. We should base it on my sunset time, right? Is it a digest of the MP3 data or is it a digest of the title? You know something, that's not a bad idea. At the moment, we've kind of went with like names of the people that are involved, but ah but maybe we can include the digest of the data of the MP3. That way people can check it.
00:01:08
Speaker
Is this the authentic, definitely?
Java Class Format and Hex Letters
00:01:11
Speaker
Yes, yes. Adulterated in some way. Oh, man. Make sure they don't cut out the good parts, you know. Yeah, that is a great idea. We should keep this in. fake Oh, totally. Deep fake some words. Yeah.
00:01:27
Speaker
this is This is the beginning of this episode number F or three. two It's great that you can guess the digest before you even record it. That's awesome. That's great. There's going to be an F or somewhere in there. F off, maybe. Oh, F off. Oh, man. That's going to be on everyone. Maybe that should be the beginning. Yeah, of everyone.
00:01:52
Speaker
Beginning mid-la-rend, you know? so oh Jesus. What's the um the class, the class file, ah the Java class format? Cafe babe, isn't it? Cafe babe. Yeah. We got to figure out, we got to write a program that writes out every possible, ah every possible, you know, letters of hex and then checks it against a dictionary to see if it means something.
Show Introduction and Guest Plans
00:02:22
Speaker
Well, I've got Babushka and I've got a dict file, so give me two minutes. And closure. I mean, he you need to do it so fast. By the way, this is this is not the sort of podcast you can get your dict file out on. Just leave it, leave it, leave it live it in the computer. we Are all recording now? OK, welcome to the show. Welcome to the show. No, do not cut that. That is that is digitastic.
Heart of Closure Conference Reflections
00:02:52
Speaker
So this is the part where you say welcome to DefN, episode F off, cafe babe, something, something, right? Right, right, right. Okay, well, welcome to the podcast and Eric, welcome to you back again. Thank you, yes. I think you're ah you're you're our most repeated, most frequent visitor. Yeah, and I'm trying to keep it that way. You asked me to come on, I have to say yes, otherwise someone's going to catch up. It's true. it true Well, Josh has got to, Josh has told me he's got to go through all the guests to get an interview on them properly, you know? Being VJ made an absolute mess of it last time. Like, you know, like people want to rewrite closure whenever they see someone else's closure. That's right. It's just like, like he's got the same vibe about Daphne, you know, that's why he's here. Do it all properly. Right. Josh, what are we going to do this time? The rewrite, the big rewrite. Yeah. Well, I'm going to rewrite closure and LLVM.
Rewriting Closure in Other Languages
00:03:51
Speaker
Oh wait. No, that's been done. Nevermind. Uh, in Rust, in Rust. That's the biggest. No, that's been done. Done too. Right. By some, some jerk. I don't know. Web assembly. Nah, somebody's doing that. Yeah. Closure and closure is all, it used to be a hot topic. Nice. It's closure all the way down. Yeah.
00:04:13
Speaker
But was one of those things which would have been possible, like for closure script in closure script because of the way that protocols were done because of protocols and stuff. yeah but But it's too, it's too late for closure, I think. Yeah, certainly the way Rich likes to keep backwards bug compatibility and everything. Yeah. Um, cause he, you know, he likes his, uh,
00:04:38
Speaker
His commits, you know, I committed it. It's in there. It's not broken. Don't fix it. So, um, that's what keeps it stable.
Closure Script and Compatibility
00:04:47
Speaker
Yeah. Yeah. ah Yeah. I was going to say. Right. All that dead spirits can go away. Now let's move into something more fun. fun.
00:04:57
Speaker
What fun. Eric, you came here on the back of a wonderful conference we all visited and joined and enjoyed. her um The Heart of Closure in Leuven in Belgium, ah where Josh came on a few bike rides with me. I did. I nearly died. Yep. A few like two hour 15 minute bike rides. That's what I hear, a little detour on a 15 minute bike ride. Well, yeah, I did say half an hour at the beginning and it was turned out to be about an hour. But okay, I think, you know, half an hour to an hour, that's ah that's within reasonable, you know, I think the estimate is okay.
Conference Experience in Leuven
00:05:39
Speaker
I blame those guys for being a bit slow. that's all sure yeah It was evil was slow, man. You know, slow ripping his jeans, all sorts of excuses. Intense. well
00:05:51
Speaker
Anyway, yeah it was a really great conference. I mean, we were very lucky when it was fantastic. and um Everything was great about the whole scene, really. yeah But ah you gave the keynote, Eric, the closing keynote. that's right So, obviously we'll talk about some of the things that you were mentioning there, but what was your kind of ah like like lasting impression of the of the conference? And of Belgium, maybe, I don't know. I think it's your first time visiting? or I had been to Bruges 20-something years ago. right just like It's a fairy tale. Backpacking through Europe.
00:06:25
Speaker
Oh yeah, Bruges is amazing in terms of um just the, you know, you don't see you don't see medieval architecture like that anymore. You know, you might see a building here or there that survived, but this is like basically most of the town is still intact. But Leuven was amazing. I just had no idea.
00:06:48
Speaker
Uh, it's such a lovely place. Um, it's old. So it has like a 550 year old like city hall building yeah that is adorned with hundreds of statues. I mean, it's just, you know, it's the kind of thing that as an American, I walk by and I'm like, how can you so not stop and just gawk at this thing every time? But of course in Europe, you're like, you're used to it.
00:07:18
Speaker
yeah I'm not sure actually, I think that is a particularly impressive one. I mean, you know, I gawked at it when I came over here and I still gawked at it when I got past it. so And the statues are still there. They haven't been like yeah knocked over. You know, I guess they're pretty high most of them, but a lot of a lot of this I used to live in Paris. legal hot adult and They are pretty high.
00:07:40
Speaker
um You know, a lot of the statues in Paris have been defamed or defaced either by the revolutionaries or, you know, something happened to them over the 500 years. um And so it was just cool to see like this thing is like mint.
00:07:59
Speaker
not like yeah and they And they keep them clean too, they wash them they washed them. I mean, they must have washed them in the last decade, which is yeah you know not something they would do in Paris either. So I don't know. And then i also because of the weather,
00:08:19
Speaker
ah Just having all of these outdoor seating, like outdoor restaurants, it's so amazing. like it It literally looked like the whole city could go to lunch at the same time and there would be a table outside for everybody.
00:08:36
Speaker
ah And make sure it's a nice long one as well. Yeah, exactly. Well, there's enough for
Conference Logistics and Environment
00:08:42
Speaker
everybody. So like two hours, if your, if your restaurant is full, just go to the next one. Um, and, uh, you know, I just always get very envious cause in the U S.
00:08:55
Speaker
having you You usually have to drive to a place and the outdoor seating is not great and the service isn't good. And um this is like amazing that there's, within walking distance, hundreds of restaurants, all with 30 to 40 tables outside.
00:09:14
Speaker
um So lovely. And then the location of the conference was on the like the square in front of the train station, yeah yeah which also had was really big and spacious. And it also had cafes all around. yeah and um and ah So it's the thing I mentioned in my newsletter.
00:09:36
Speaker
about the conference. That was great that you didn't have to be inside, cramped in the kind of dark theater that we were in. um But you you did lose something, which is the serendipity. It
Hallway Track and Presentation Value
00:09:51
Speaker
was a little too open.
00:09:53
Speaker
like someone could you know You wouldn't notice that this person sitting you know ah two cafes down is another closureist because they're mixed in with all the other people and it's a little too far away to to like interact and like say, hey, can I join your conversation? yeah know So um i I feel like it was great that it is like um Arna said, hey, use the space outside, but then you kind of do lose that like you're all in the same space. You can identify each other easily. You're kind of bumping into each other.
00:10:30
Speaker
um There was a little bit outside Hal Five that was like that, if you remember. No, Hal Five was nice for that. I even sat with you yeah talking about talking about some book or other. Some books, yeah, yeah. No, Hal Five was nice for that. there because So just for the people who weren't there, there was lunch served at Hal Five for the whole conference. Great lunch too. Yeah, it was a great lunch. It was like a buffet. And then there were all these picnic tables outside.
00:10:59
Speaker
and ah ray reserved for us, I think, for the conference goers. And you just grab a plate, fill it up, go sit outside and It was amazing. There's like, you're you're just surrounded by a 50 to a hundred closure. It's all eating and chatting and, you know, mingling in just a kind of random chance who you sit next to. And that's all, that's all great. And it does go to the like kind of purpose of the conference, yeah which, yeah you know, I ran a conference, right? And one of the things that I,
00:11:40
Speaker
was trying to not do was to have talks, right? Because when i when I go to conferences, I like to do the hallway track. And everyone I talk to, even even not just the hallway trackers, other people who go to conferences, they say, yeah, my favorite part is the hallway track. It's always the best.
00:12:01
Speaker
They're like, well, why don't we just cut out the talks? Everyone just wants to hang out, you know? um There's some logistical issues with that because um the talks do serve a couple purposes.
00:12:18
Speaker
ah they you know, when you're convincing your manager, give me a week off so I can go travel, like maybe maybe you'll pay for it. And they say, well, why should I do that? what's it What's in it for the company? And then you can point to the talks like, well, they're using Kafka and there's a talk about closure in Kafka and like, you know, I'll learn something and get to talk to this person. And then they're like, okay, whatever, you can go.
00:12:46
Speaker
But if you don't have a talk and all you can say is like, well, I don't know who's going to be there, but it'll be fun. It's not quite the same argument, right? um And then also for people like there is a draw where you see Rich Hickey on the, you know, giving a talk.
Heart of Closure Conference Review
00:13:08
Speaker
David Nolan's giving a talk. And yeah, maybe you want to see it live. There's kind of that, you know,
00:13:14
Speaker
Why would why do you go to listen to a band live when you have their CD? You know, the audio is going to be way better on your stereo than in the um but also they're going to be mingling. They're going to be there. You might meet David Nolan. You might meet Rich Hickey. um And so there's there's something to that. too And it's it's not just like I'm going to meet Rich Hickey. I'm going to meet other people who also want to meet Rich Hickey. And so we'll have something in common. yeah Because i I think being in the audience watching a talk live, there is something to that, right? like yeah I do enjoy you know sitting next to, whether it's Ray you know arguing about whether a given talk is good or not. yeah Or you know if it's somebody that I haven't met yet and we're laughing at you know some inside closure joke or whatever. like There is that sort of sense of commodity camaraderie and like yeah I feel you on the hallway track. um I have a slightly different perspective for me. It's like I need the talks to make the hallway track fun.
00:14:21
Speaker
Because I like hear an idea or something and then I'm like energized. I'm excited to talk about it. Got it. So it kind of feeds into it. So yeah. Yeah. Yeah. I can see that too. I also have the, I mean, I have that experience when I also have the other experience, which is, you know, six talks in and like my, my mind shuts down. I'm not hearing anything anymore. And And, um, even sometimes like before I was aware of that going on, I'd be like, that wasn't a very good talk. It wasn't, didn't excite me. And then I'll see it pop up on YouTube six months later yeah and I'll watch it and I'll be like, this is awesome. Why didn't I see it? And then I realized I like kind of ignored it cause I had been there and, um,
00:15:13
Speaker
i think I think to me, the experience of watching videos in general, sometimes it is great to be there, but in general, I have a better experience of talks when I get to choose when I watch them.
00:15:33
Speaker
You know, like I'm ready for this one. I'm interested. The title sounds good. It's not just because it's next, you know, and during the conference. um So, you know, that's that's just me, though. but Anyway.
00:15:49
Speaker
What I'm trying to talk about is Heart of Closure and how great it was. ah It was awesome to be in Europe. It was my first European closure conference ah just to meet all the people who like rarely get over to the US. That was awesome. ah There's so much activity in Europe.
00:16:10
Speaker
Um, around closure and that's cool. Um, and it's, you know, just like the Europe is, you know, relatively. sp yeah Small and compact and like everything's close, like you're getting people from.
00:16:28
Speaker
all over these different countries that could travel there by train usually, yeah sometimes by plane. And by it was a bicycle, even um someone was on like a houseboat down a canal. Like you got everything, you got everything. And um That's also cool that um you got this big diversity of people um and.
00:17:00
Speaker
You know, it's just, it's like, it's a lot of people, but in a smaller area. So you're just getting a lot more activity. Whereas in the U S you got centers that are like thousands of miles apart and it it changes the dynamic of it. Um, so it it was just great to be in Europe, you know?
Technical vs. People-Centric Themes
00:17:19
Speaker
Um, let's see, what else? Um,
00:17:27
Speaker
The talks that sorry, go ahead. Yeah, I was just going to talk for the talks. Yeah. Yeah. No, you you should watch the talks. They're good. um The I think what what Josh ah wanted to talk about around the talks is I wrote this newsletter article like it's called a love letter to heart of closure. It really was the best conference I've been to. um But I was expecting something a little different. So there was some part of it that like didn't meet my expectations. And that was the the subjects of the talks. So not the talks themselves, you know, each talk was good. But um when a lot of the rhetoric around the heart of closure is like it's like very human centered and it's about the people.
00:18:16
Speaker
And it did feel like that in terms of like the logistics of the conference. you know Arna was talking about you being inclusive, like open up your discussion circles so that there's room for someone to kind of just come in.
00:18:32
Speaker
go have lunch together, do an activity after the conference. If you need to have space, go to a cafe outside. like there's He talked about that, but I thought that that would also flow into the topic selection of the talks. And so um I compared it to a conference I went to locally here in the town where I live.
00:18:56
Speaker
And, um, that conference, it was a Ruby conference and the talks were much more people centric. So, you know you know, there was this, the, the theme of the talk was we're all people, the programmers of people, the business people you work with or people sales, all that, the support people, your customers are people. So program, basically the idea is programming is about people. So let's get better.
00:19:26
Speaker
at learning about people and being good people and stuff like that. And so a lot of the talks were like, what? ah Let's let's talk about personality traits and let's talk about emotions. And, you know, it's it was a much different theme than what what I saw, which was more like just technical stuff like I'm writing. a ah that What is jank? It's it's ah Is it LLVM? Yeah, that's a closure in C++. Yeah, closure in C++, plus plus that's right. ah You know, it's just like, okay, that's another technical topic. You know, it's just how how to write this compiler. Oh, I had this sailing problem and I wanted to solve it in Clojure.
00:20:13
Speaker
um Very, very much like you would see in closure conferences. Yeah. Still cool. Still closurey, but just didn't hit my expectation. I mean, interestingly, i I kind of, I get that vibe because I get what you're saying because obviously we work with like software and like closure potentially every day. Um, and a lot of the.
00:20:39
Speaker
There are some things around closure that are like, you know, they're always like sparking joy, let's say, when you discover something or you you just, you see how neatly you can express something. That's a little little, ooh, that's quite nice. But a lot of, a lot of projects actually are about, you know, dealing with the bloody, ah the messy people, you know i you know, I want to make this change. Oh, well, you know, I think that's going to take a bit too long.
00:21:07
Speaker
No, it won't. Honestly, if it's going to be fine. No, but I think you should do something else. you know I don't give a fuck what you think, really. Oh God, I've got to, you're my boss. right you know yeah So it's all these kinds of things. How do we deal with that? yeah How do we deal with it? you know and It's very tricky.
00:21:25
Speaker
Well, okay. But yeah, I was going to say, like there was actually a talk talking exactly about this, right? It was the the talk that Philippa and Martin did on ah the replacing the legacy software system at that logistics company. yeah like They were talking exactly about how they had this amazing like technical solution that was replacing this old AS-400 system. and like They weren't getting any traction and then they discovered, you know what did they call it? They they found the gray beards and these these different um
00:22:04
Speaker
groups of people. And so it was a people problem that they couldn't solve. um So they kind of pivoted to a different group of people and got some traction there. So that talk was exactly about what you're talking about, I think. Yeah.
00:22:20
Speaker
um It was one of the talks about something yeah to do with people, but I think Eric's right in the sense that it wasn't a dominant theme. know I think you're right as well to pick that one talk that was about like ah fact the fact that they were negotiating with different parts of the company and You know in the end they all became good friends. It was like ah it was a kind of like ah was a heartwarming story. It was a heartwarming story, you know, it was it was beautiful. I mean, yeah, yeah, that's yeah that's an ongoing story, which is fun as well. Their talk reminded me how, how, um, like the, the real value of a contractor is that they're an outsider yes and they can bridge all these, bridge all these connections between different factions inside the company and like skip over red tape, just like get something done, make some, I had, uh, an experience as a, as a contractor like that once.
00:23:17
Speaker
I was actually an employee for a company, but um we were um hired to do an integration with their system. And it was it was exactly like that. It was like all these old ah processes, very waterfall. Nobody had any agency and like through maybe like maybe a little bit of their fault because they weren't practicing agency, but also like maybe there's a good reason they weren't practicing. And so, man, I remember um having to fly out to them.
00:24:01
Speaker
This is after months of working with them, like weekly meetings on the phone. Like, how's it going? How's your side of the integration going? Oh, it's just fine. Everything works. And then you get there and they've never run it.
00:24:16
Speaker
They've never, um they've like they've never run the software that they've written. Like, hello, like we've had months, like you start it, see what happens. Like does it talk to our system or not? And they're like, oh, but there's a firewall and I can't poke a hole and like walk over to, it's like the debt is this, it's one floor, like go over there. That's where the the operations people are and talk to them about poking a hole in the firewall.
00:24:45
Speaker
And he would walk over there and he's like, oh, they said no. Like, okay, let me go with you. And I held his hand and we walked over there and we explained better, like what we needed to do and how the deadline was in three days. And please, can we have a thing? And we agreed on this, you know, it and it was just like, you know, I had to be the one to like be the ambassador and talk to all the different groups and get things done. And, um, yeah, that's how big companies work. And that's why nothing happened.
00:25:16
Speaker
Cool. Yeah. I think um that I'll just say one thing on that before we pivot a little bit, um but I think that's ah great about starting a new job, and I know, Ray, you've just recently started. You have that first six months to be an outsider, and you can actually you can actually bridge a lot of gaps in that first six months because you know, everybody has nothing against you. You know, when you come in and start, you haven't made enemies yet. You haven't made enemies. Yeah. So, um, well, you're making enemies. That's what you're doing. Right. yeah Choose your enemies now. this is you're Making enemies. Yeah.
00:25:59
Speaker
So one of the other talks ah was about um obstacles on the path to closure adoption.
Closure Adoption and Community Signals
00:26:06
Speaker
And that was that was an interesting one. And I know you have some, I don't know how you want to say it, you have your ear to the ground or your nose to the radiator or something. Anyway, you you have a magical way to ah spot trends in closure adoption, Eric, I think. So how's it going? Is closure being adopted?
00:26:30
Speaker
Um, huh. That's ah the really really, I don't know where to start. So I'll just start somewhere. So my magical um signal is not too great. it's It's that my course sales are something of a of a ah signal about what's happening in the Closure community because I sell to beginners. And so it's a good way to know um how many people, new people are interested in Closure.
00:27:03
Speaker
Also, I look at my like website stats. you know what kind of What are people visiting? um That is kind of a signal too. And the traffic has been going down over time. like and Who knows if that's like ah SEO or whatever, but um it's a signal that I have.
00:27:22
Speaker
And you know, you look at Google Trends and all that stuff and compared to other languages, closure is not keeping up. Like you and just proportionally, even like, you know, if everybody had 10% growth a year or something like that, you you'd see that everybody's growing and there's going to be Exponentials because it's compounding, but, uh, closure like goes up and then it kind of, you know, kind of is trailing off. Right. And.
00:27:57
Speaker
I think that most people who are not in the Closure community would think that Closure is not that exciting right now, that there's not much happening. And I can see that. like I don't think we have what used to look like some silver bullets, some like killer apps. When Closure first came out, first of all, it was a totally different environment.
00:28:27
Speaker
like this This is, you know, talking in 2007, there weren't a lot of great options for a non-mainstream language, right? Like yeah we're talking, like Ruby was like, oh wow, it's came out of nowhere, right? um And that was one of the big sort of... I don't know what you'd call it, non mainstream. You had your Java, your your C sharp, your Python, even JavaScript wasn't big back then. um And so it was that it was like a new thing with like an advantage. It ran on the JVM. yeah You got this big ecosystem.
00:29:06
Speaker
um And then it also had good concurrency. And at that time, we were all excited about getting thousands of cores on our machines, right? That that was the that was what people were talking about. Like we had two, then four, then eight, and like, when are we goingnna you know how many doublings before we had a million? um So we were we were excited that we had a story for that with all the concurrency stuff.
00:29:35
Speaker
Uh, you know, that, that didn't pan out. Um, and I don't know if there's anything now that's there. Uh, even ClosureScript had a good story, which was that it was like, it was better than JavaScript when it came out, came out in like 2011 or something. And you know, JavaScript has improved quite a bit and it also has a big ecosystem of libraries and stuff.
00:30:06
Speaker
And we just don't have, we don't have a thing that makes closure that much better. Um, that, I don't know. Here's the, here's the cynical part that doesn't take, you know, five years to learn. Right. I think that that's another thing. Um, like we,
00:30:28
Speaker
especially someone like me who's been using closure for so long, I forget that like it's not the stuff that I know that makes me fast. I didn't learn it overnight. It wasn't like, oh, I just did import XYZ and I could do all this stuff. right um and and And a lot of people aren't there, especially you know as the the industry grows, it's growing from the bottom. right It's growing from people who have no experience. yeah And we don't have a story for them. right And I don't think it's about installation. I don't think it's about tooling. I think that it's a it's it's a cycle. right So it's like a it's a bootstrapping problem.
00:31:14
Speaker
It's like, a you know how do you how do you get people to learn this stuff and you need some motivation? They need a reason. And a job is a good reason, but we don't have ah that many jobs. And why don't we have that many jobs? Well, there's not enough people to do them. Or the people you need have to be so senior that you can't afford them. you know there's There's stuff like that. and It's just this cycle that we we don't we don't have a good answer for it. So there you go.
00:31:51
Speaker
Man, let's just end the show. I'm bummed out. Jesus. All right. yeah What are we moving on to? do You wanted to do it right, Josh. you know Do the interviews over again. I mean, you you've just killed the show. Well, yeah i mean listen, i'm gonna i'm gonna i'm gonna um so I know I just opened this in a very downer note. Yeah, we're heading to the mountain at the moment. you that The few lights are flashing the ultimate to meat is going down. yeah Let's get out of this noise dive guys come on. Yeah, so I do want to say that the energy in the closure community the people who are here we it there's a lot going on like there's a lot happening it's just not.
Community Engagement Challenges
00:32:40
Speaker
i I think a lot of it is not like the kind of, I don't know, the kind of hype that you get in other languages. yeah um So, you know, the whole scientific closure work that's going on, like that has a lot of pieces that need to be put together.
00:33:01
Speaker
Yeah, right. Like and a lot of that putting together, I don't think it's that hard. It's like documentation and tutorials and and things like that. if They could just pull it together and show some. Practical ah like this is how you get an AI stack enclosure, you know, so that you can start doing some LLM um training or, you know, I don't know what it would be, but they're they're they're close to that. It's just at the moment.
00:33:32
Speaker
Like to use the like as an example, the Python closure thing, the bridge that lets you run all the Python libraries for for machine learning ah in Closure, there's no good tutorials. And I've tried it, I've i've booted it up, I've brought up a Python tutorial, AI tutorial, and I'm like, I'm just gonna translate this code into Closure, and I couldn't do it.
00:34:01
Speaker
it was There were just too many things that I couldn't find. And I'm honestly maybe not the right person to do it because i um I'm not good at chatting. Like I'm not a chatter, never been one. And a lot of these communities are like docs are ask the chat, you know, ask the discord. And I'm not good at that. I want to i want to document, I want to be able to search it. I don't want to talk to somebody.
00:34:32
Speaker
know and law and yeah so um I feel like that So like I guess part of the part of why i'm bringing that up is like I wish I could help but I can't like i'm not there Uh, I maybe I just need to suck it up and like talk to somebody but i mean Reach out to Eric. sound If you're listening to this, reach out to Eric. But they're so close is what I mean. They've got all these pieces. They've got they've got talks every week about about what's happening in the community. They're building so much cool stuff. they it's just not it's not if Unless you're involved in the community very heavily, you can't be a part of it because it's not it's not easy to use.
00:35:18
Speaker
um and so anyway so they're right They're writing the PhD thesis now, they haven't published it yet. yeah yeah Yeah, and they'll talk to you all day on chat about how to you know solve a problem using it, like what libraries you need to use.
00:35:32
Speaker
um There's there's like Babashka and you know that stuff, this the ah small closure interpreter, the SCI.
00:35:43
Speaker
Like the stuff that is going on there, like scripting enclosure has never been better. Never. And that was a complaint people used to have, but they don't have that anymore. Um, like, you know, the slow startup times, I can't write it for little scripts like, Oh, you got a Babashka. Um, and just all the stuff that that enables.
Comparing Closure and Other Communities
00:36:05
Speaker
It's all there. It's just like maybe too late.
00:36:10
Speaker
You know, so like so like I look at something like elixir Right elixir is maybe smaller than closure um But it had a it was really fast adoption it grew super fast and I think that there's still excitement in the community because ah Jose, the guy who created Elixir, yeah talks at every single conference. yeah He talks to at the American one, he talks at the European one. like He's just always talking about something. And the talk is not great. It's not like just just it's not like one of these rich hickey talks that's gonna stand the test of time. It's just like...
00:36:58
Speaker
like The things that he's working on, you know, and it just, he has an energy and he's like, we're working on this type system for elixir and we're, you know, there's, you know, we've been tracking the growth and here's what it looks like. And it's just like a status update, similar to what, uh, Alex Miller does, yeah yeah but with more energy and more frequently. And, uh, it's, um,
00:37:25
Speaker
It just, it's just not something that we have. There's another thing that the closure community is not as great at. This is the whole community, not just Kong the tech. You know, a Ruby programmer who like moves to a new town and looks around is like, wait, there's no regional Ruby conference here.
00:37:47
Speaker
I guess I'll start it. you know that's That's so common, right? And there's like a lot of Laravel podcasts, like 10. 10 Laravel podcasts. It's a framework that's very popular, but a lot of people haven't heard of it, but there's 10 podcasts.
00:38:09
Speaker
And how many Closure podcasts are there? Maybe two? And we've been around for a long time. And, you know, this one isn't even weekly. Oh, damn. Sick burn, dude. Wow. Okay. Yeah. It's just a fact. Just a fact.
00:38:26
Speaker
We are not corporate sponsored by the way, I just wanna say that. Yeah, well, and that's that's best's part of it. There's no sponsors for these things. So like, yeah's right you know, there's no hope that like, oh, if I put into my time, I'll get paid for it. No, it's not there. So like, we just don't have that um that same community minded, like, I'm gonna get us together kind of vibe that,
00:38:55
Speaker
that you see in other communities. It's just a thing. I think we have it more in Europe, Eric, actually, because like yeah this is the this is the thing I really missed with the pandemic because we used to have 87 closure conferences a year here, Ray.
00:39:12
Speaker
I mean a ridiculous number for such a small yeah area. um and ah you know With the pandemic that went away, but they're starting to come back. and you know it's It's funny you mentioned Elixir and Ruby because I did Elixir for a while and I absolutely loved it. I loved the community. I loved the programming experience. i mean It is the only non-Lisp. I've had like an amazing interactive development experience, like sitting in Emacs doing all the repling. It's like amazing. and um But the other thing it has going for it is, you know, Jose Valim comes from the Ruby community.
00:39:53
Speaker
And he brought his people with him. And Rubius are like amazing. They're they're super friendly. You know, they're they're excited. They want to tell you all about it. One thing that I think Rubius are almost unique in is they're not shitting on anyone. Like they just want to tell you all about how cool everything is. And, you know, they're they're like, oh, you're coming from PHP. Cool. I used to do that. Like here's what we can do, blah, blah, blah. And um You know, I think like there is a bit of that energy, I think, in the European closure community as well, where people are just excited and they want to tell you about stuff. And yeah, there are a few people like me who always have to make no jokes or whatever. But you know, luckily, I'm the minority in the community.
00:40:41
Speaker
So we do you have to watch out for that. There are a lot of in jokes that are like anti JavaScript, you know, and it's not, it's like, even maybe not even a joke. It's just like a passing comment. Yeah. You know, it's like, or at least it's not JavaScript. You know, someone will say that and it's like, Oh, come on. Like there's half the audience here has to do JavaScript. Yeah. And they're not totally there. Maybe they're not unhappy about JavaScript and you just alienated them. Like, yeah um,
00:41:10
Speaker
All right, so we were talking about Elixir, I think, and JavaScript and basically not shitting on other communities. And I was just saying to Josh, I might have been guilty of that myself on this very podcast at some point. But I will definitely yeah we all have sort of own it, but I'm not proud of it, that's for sure. um And I feel like ah feel like thiss if we look back and on things, I mean, things like JavaScript and PHP,
00:41:38
Speaker
The dynamic nature of those languages is something which we should be relishing, we should be joyous about, like Ruby as well, know because we're we're we're a dynamic language.
Interactive Programming and Closure
00:41:49
Speaker
you know and And by the way, one of the things I find quite annoying about Clojure in the industrial setting is that people want to people want to have it as an executable or they want to make the want to compile it on this kind of... No! you know I mean, maybe it will it will squeeze out that bit of performance that you really need.
00:42:07
Speaker
But I would much rather like be having a kind of environment, a production environment, which was much more interpreted. Because it's good enough, in the end, this interpreting thing gets boil down to JVM byte code and it will go fast, you know, we'll go fast pretty quick. It's fine. You know, the jiddle kick in, it'll, the yeah JVM will work. It's magic. I mean, the closure is not my point. My point, Eric, though, is that my, just my quick point is that distribution becomes ah a zero. It's not, ah it's not a problem anymore.
00:42:42
Speaker
yeah You just copy your source code, boom, you're done. Like PHP. That's what we used to like. We used to like, oh, we just we just have an FTP thing open. yeah We just dropped the PHP and bam, we're done. The change and nextby the next page load runs that code. You say Skittle, but it's actually Closure. you know That's my point is that we we're we're kind of like we haven't we don't have to invent a whole new thing. yeah No, no, no, it's true. So like I i ah have this side project that I recently put together and I was wondering how can I have the fastest deploy? I don't want a whole pipeline. I don't want a Jenkins that like looks at the GitHub pull requests. and like you know I don't want all that.
00:43:25
Speaker
I just want something, I hit a keystroke on my machine. I'm a single developer, it's my own project. yeah yeah I just hit a keystroke and it happens within seconds, right? And um what i what I landed on, I don't know if this is the best possible, but what I landed on was if it's a simple change, simple code change, um I pushed to GitHub and then I SSH into my machine.
00:43:54
Speaker
it ah does it get pull, so I get the new code, and then I REPL in, so I have a REPL open, behind a firewall, so like, I have to be SSH into the machine. And then, I just, excuse me, I just do a require core, reload all.
00:44:16
Speaker
And he just reloads all the code with the new code. So it doesn't even restart the JVM. And for a lot of simple changes, that's good enough. like it yeah And I also have another keystroke that's actually restart the server, right?
00:44:37
Speaker
It is the last the last advantage that closure has. i'm I'm just going to put it that way. Yeah, interactive programming. absolutely The fact that you are ah you're working on a I mean, Stu Halloway puts it the right way that it's um you're working on a partially correct program.
00:44:58
Speaker
it's yeah It's running and it's partially correct. It's not done yet, but it's already running. yeah and ah That's something that you is really hard to do with types, to have it running when the types aren't right yet. ah and It's something that you can do with the REPL because you're like modifying the code, you're redefining functions on the fly.
00:45:23
Speaker
um The thing is, like I like i was hinting at before, that's like a multi-year process to get good at that, to get good working with that. it's And what you were saying, Josh, was Elixir had something like that. And i've I listened to Erlang talks, you know, Elixir runs on the Erlang VM. And yeah they're they're doing stuff that I think is awesome, but I'm also like,
00:45:53
Speaker
Is that written down somewhere? Because like I don't want to spend five years figuring it out for myself. yeah I would like someone to just tell me this is the best practice and you know maybe explain like why we don't do it this other way, this other path. No, we try, it doesn't work. But like just bootstrap that information in me because I think Erlang has similar problem to closure. like We just one just don't talk about it enough.
00:46:20
Speaker
yeah um and try to explain it. But like, ah Erlang people are doing some cool stuff with their VM. And like the fact that, here's just an example. I was watching a talk. They built a system during COVID for a hospital that had, since they started, 100% uptime. And They had it like triple redundancy where like there were three servers running in different data centers and they were all syncing between each other. yeah so and then But there was no database. There was no separate database server.
00:47:01
Speaker
right Because it was just all, because of the redundancy, if one went down, they could start it back up and it would sync again and get get a backup from the other two. It's like, wow, I would love to work with just closure data structures in memory.
00:47:18
Speaker
and not have to map to like a sequel statement for everything that I think is important enough to save ah until later and like come up with a table schema and just like, oh, I'm just working with closure in memory and it's saving it all and it's never going to go away.
00:47:35
Speaker
I had loved that, but you know, they have that, but the thing is, it just also sounded like they had 15, 20 years of experience with it. And so they knew exactly how to boot it up so that it, that worked. And I don't, you know, I don't think it's written. Can can I, can I suggest something to you? I mean, I'm actually working on a system right now with, um, with Kafka and closure. And there's a really nice, there's a nice symbiotic symbiotic thing there because with Kafka you can persist anything.
00:48:04
Speaker
And with closure, you can write anything and they have essentially like a key value store underlying Kafka and which is very, you know, and you can, and you can use Eden data structures on there as well. So it's, it's, it's really close to like a perfectly distributed system. Um, but like you say, closure wasn't built as a like Erlang, like the beam is something magical that Erickson wanted as a, you know, always up, always on the system.
00:48:32
Speaker
And so they built everything around that concept and we don't have that. You know, we're sitting on the JVM and it's really about essentially the convenience and the sort of dynamicity of Lisp.
00:48:44
Speaker
not really about kind of like the infrastructure, you know? yeah So there's definitely different a different vibe between the two things. yeah But I can also understand that like, i I invented this reload all thing. Like I don't think I've read it anywhere. yeah and like ah Would would ah would as someone with a couple of years of a closure experience be able to come up with it? I don't know. Or like know when to run one versus when you're going to have to reload the whole JVM.
00:49:14
Speaker
I don't know. I think this whole component system was built around this kind of concept though, wasn't it? You know, yeah yeah so I think, and again, like, um, um, I don't want to say, uh, well, it was, um, Stewart, um, Sierra, uh, Stewart Sierra. And I know that they've now transitioned, but I think they accept their old name for certain, for certain, um, libraries and things. So.
00:49:43
Speaker
Um, you know, I don't want to dead name them, but, but they themselves in a, in a blog post said that they would accept that name for, for their, their work in the past. So, so anyway, um, so a kudos to them for being open about their whole situation, but, um, but also, you know, so, but, but, but, uh, they actually made that jump themselves.
Education in Closure and Macros
00:50:08
Speaker
Um, but the problem to me.
00:50:10
Speaker
with the component system is that it's very infectious. know yeah And it it tends to then be like, oh, I'm now the dominant, i'm now I now own your code base basically. yeah um Which is, I think it's a kind of natural thing that if you have and and you want a certain guarantee or a certain set of yeah infrastructure things, then it's going to be like that. You're buying into certain like concepts or certain protocols or yeah processes or ways of doing things, let's say.
00:50:40
Speaker
Anyway, um right. oh like Let's stay on that point because I think that's actually a problem because we have like a lot of the a lot of the stuff written about closure or like the quote unquote right way to do closure.
00:50:59
Speaker
is with stuff like that. right So it's ah it's with the component or whatever the new thing is. And I see people who are like relative beginners to Closure, you know they've been doing it a year or two and they have like protocols, they have deaf records, they have all this stuff all over the place. And it's like,
00:51:17
Speaker
but all you need are data structures and you're do you have all of this ceremony and you're struggling with closure and you're you're like, well, this isn't really any better than Java. It's like, yeah, not if you read it that way. and it's So there's this weird disconnect between people who really know what they're doing for building these big systems where you actually do want protocols and deaf records and so on, where they actually do help you.
00:51:47
Speaker
But that is not the case for the vast majority of Clojure programmers and the vast majority of programs they're writing. So this is the weird like, and this is, I think, going back to your how do we get people started with Clojure thing, Eric? i did That's a great question. I don't have an answer.
00:52:05
Speaker
So what you're, what you're bringing up, like, I think it hits at a really key issue. There's okay. So there's this blog post, I don't know, 10, 11, 12 years ago, uh, when closure was getting really hot.
00:52:23
Speaker
um by Steve Yege. He was still kind of active blogging. He was, and he was a lisper, you know, he had done lisp and ah yeah, very legend introduced a lot of people to Emacs, which was cool. But um he was, um he wrote a, I think he was on the closure mailing list when it was still like a Google group, you know, or a daily news or whatever.
00:52:49
Speaker
um And what he said was that closure was a no culture. No, a negative culture, meaning someone would say, oh, how do I do this enclosure? And the first answer would be, no, you shouldn't be doing that. You shouldn't do it that way. There's always a no. Like, oh, here's here's the right way to do it. And I think that he was right. Like after, after being in the closure community so long, I even do it. You know, it's like, you see someone write protocols when they're not really needed and you're like, Oh, don't do the protocol. But the thing is,
00:53:30
Speaker
It's working. Their code is good and working and like and they're just using the tools that the language gave them. And ah maybe we should be a little bit more. Yes. You know, a little bit more like.
00:53:47
Speaker
Okay. Yeah. you Hold, hold on to bite our tongue a little bit and say like, just sand you though. Well, we'll start, but like my whole thing is to start with the praise. Start with the congratulations. Sure. You got a program working in a new programming language new to you. Yeah. Like good job. Now, um, let's go over how we can improve it.
00:54:16
Speaker
Instead, it's a lot of negative like, oh, don't put a def inside of a function. You know, don't do this. And it's like, well, that's a lot of critique for and a beginner. But do you think that's actually happening in the Closure community? Because i I don't see a lot of that. So like what I'm talking about is I'm not talking about like criticizing people for having protocols when they don't need them. Yeah. What I'm getting at is like,
00:54:45
Speaker
Why are people writing this code? No, I agree too. you know I agree with that. That's the other side of it. That's the other side of it where they're, as beginners, their um maybe they see a parallel between their Java object orientation and protocols. And they're like, oh, this is how that's how you do an enclosure.
00:55:07
Speaker
And so they're kind of writing Java enclosure. And closure and um I agree with that too. that's that's And that's going to happen. um i ah my my I'm going to yes, and you. that that That does happen. And the thing is, it's it happens. It happens in every, you know,
00:55:30
Speaker
Every community, someone is writing their last language and yeah in their new language. yeah yeah And and we have to we have to support that like transition in a positive way. And um I think that it's it's similar to like how people People will often say something like, you you know, don't use a macro. Like you don't, like probably like your default should be don't use a macro and until you really know you need it.
00:56:05
Speaker
But that same person probably spent a year playing with macros yeah to learn. yeah Yeah. And so they're not supporting someone else playing for a year with them. And they're, they're, they're trying to, I don't know, maybe save someone from a year of wasted time or what, but they're, they come off as negative. They come off as instead they're doing like do as I say, not as I do.
00:56:33
Speaker
right and what they what we need is more like, oh, wow, protocols, that's a cool way to use them. Let me show you how to do it without protocols. you know ah like you know you you you're Your implementation of protocols is 50 lines of code. If you just used a closure map, it would be three lines of code yeah um and you know a couple of keywords. so I think the other thing, by the way, with macros, which I mean, you know I think we've kind of been like dog whipped into not liking macros and I sort of rejected that a few years ago and decided that I will write a macro year or something like this.
00:57:18
Speaker
and yeah i mean i The question is why, you know, and I think that's the problem is that like we we often miss like, oh, you know, why should we write a macro? Why shouldn't we write a macro? Perfectly good reasons to write a macro. yeah Perfectly good reasons not to write a macro. Um, and I, you know, ah half of the bloody, um, call, you know, this, uh, whole, um, quarter async has written in a mic, a macro yeah didn't have to be, but it was. So some of the bosses are using it. That's for sure. ah Um, yeah.
00:57:48
Speaker
Adepts is written in a lot of macros. Specs, sorry. um but ah you know and Again, you could argue that it shouldn't be written in macros, um but but it is. and but For me, I often think about it as a way of, like and I think like all of us do, it's a way of reducing boilerplate and it's one of the powers of language. you know If you see repetition,
00:58:11
Speaker
And you can't get away from, you could use function passing, but what about if you just like used a macro instead and it wouldn't, wouldn't it be so much easier? And yes, especially for things like exception handling, it makes a lot of sense. But, um, there are, there are certain things where you want to like put things together and you can't compose macros and then, hey, presto, you're out, you know, you're out of luck. But people don't, people, and I think as long as you can be clear that look,
00:58:39
Speaker
and Again, education is what it's all about, Eric. you know That's where you're coming from. That's that's your jam. and It's very difficult to, you know like you said, it's a so people problem. you know People want to come in and and they've got an ego. They were very good at their previous language and they want to be good at this language because there know they're a good programmer.
00:59:00
Speaker
Right. and And there's no, there's no guide. That's like, Hey, if you've been doing object oriented programming in Java, yeah and you've got all these ideas about how a program should be structured, it's not subtle, like, Oh,
00:59:15
Speaker
you translate your for loop into you know a map, filter, reduce chain or something. It's not that simple. It's like you first start with this idea of like, I'm gonna have this class and it's gonna talk to this class and to talk to this class. And so you you start like, well, I'm gonna need Something that's that class like is it a protocol? Is it a namespace? Like where does it like? No, you don't need all that but yeah, that's where they're coming from Yeah, but we don't have a guide for that person. We don't like it and
00:59:49
Speaker
I say we're negative, we have the no culture. like It's just one way of saying that. that like there's no we don't we don't as As people in the closure community answering the questions and trying to guide people, we don't have those resources.
Community Guidance and Support
01:00:06
Speaker
So like we, um, I see a lot like, Oh, okay. One of the reasons why I think spec did not succeed, uh, was it had a very no culture. So when someone would ask, well, how do I do a closed map?
01:00:25
Speaker
The answer was always, yeah oh well we you shouldn't do a closed map. yeah And ah you know we've found that every time we do a closed map, we regret it. And so we're just not going to even have that feature. And it's like, okay, but like you you're this isn't just that this isn't the only thing you're saying no to. It's like every single question is an answer like that.
01:00:48
Speaker
What are we supposed to do with this thing? If you have all these great best practices like, oh, we do it this way because of this and we do it that way because you're not sharing them. Like they're not, they're not saying like, yeah I mean, I remember when spec was released, uh, here we go, like maybe be canceled again, but spec spec was released. Um, it was on, I think the cognacast podcast where, uh, Rich Hickey was interviewed about it and he was like, yeah, we, we made these great tools and we're happy. We're looking forward to seeing what people do with them.
01:01:27
Speaker
yeah Yeah. And then the nose started coming back from them like, Oh no, not like that. That's not what we meant. That's not what we meant. Like, well, you, you're the one who just opened the door and just said, let's see what you do with it. Like you give us some guidance because I do think that they might have a lot of great wisdom about how to build these systems using it. But I don't see that, you know, more positive guidance come.
01:01:54
Speaker
That's, yeah. Damn. And so and I think that that that happens about everything. Like how do we work with maps? I don't even know. Like, you know, someone, someone who's like steeped in a, in a very type based language, they're like, how do you, you know, you're just throwing stuff in a map.
01:02:14
Speaker
I'm like, and i that and it works. and But then there's probably like a million little practices that I have that yeah coworkers have about how to how to make it work so it doesn't turn into garbage really fast. A great example of that, Eric, was this um this the library where Nathan Mars, the Red Planet guy, yeah very smart guy.
01:02:43
Speaker
And he came out with this i mean very big closure advocate as well. And um he came out with this library called Spectre. Closure is missing. Closure is missing core library. Yeah, exactly. yeah yeah i mean you know He's got an ego, far enough. That's right. ah ah and He's done some great stuff. So, okay, yeah he's got an ego. Shout out.
01:03:07
Speaker
Yeah, yeah, exactly. You know, again, big, big claims. Anyway, but, but the point is that he, he came out with this, like, Spectre library. And I mean, basically everyone was saying, no, it's like, well, you shouldn't make your maps like that. You know, your maps shouldn't be that deep or that complicated to require such a complicated library as Spectre.
01:03:28
Speaker
And it was kind of like a very peculiar thing, you know, because he, he there was Nathan, like making claims that like, well, in the real world, there are these like complicated maps and these complicated data structures. And here's a library, which will actually help you. Yeah, it's a bit complicated and I've, I've done some documentation on it. Maybe it's not enough. Who knows? I didn't, I've never used it to be honest and anger.
01:03:51
Speaker
Yeah, you know where in the real world we have that complicated stuff and the 8 gigabyte JSON files that APIs are returning to us, right? Yeah, sure. Yeah, probably. Yeah, for sure. Yeah, yeah but my point is that is that like like you were saying, like if you if you have a if you have a ah preference about how to use maps,
01:04:13
Speaker
then you wouldn't need the specter library and you would need and you would need like oh, like if you want to do a reduce and you've got updated and you've got a so you've got a sock and you've got all these sort of things. This is the sort of thing that you should be doing. This is the sort of this is your.
01:04:29
Speaker
says real world data structure and this is how you manipulate it using the core libraries and if you want to go outside of it then you know you might need to invent something that does this or does that or does the other and we're not going to do that because it doesn't have like generic appeal. um But you know that that kind of thing could be interesting again from a developer relationship perspective if they have people like that who want to you know.
01:04:55
Speaker
sponsor content or whatever. you it could be This could be all great stuff. you know or the sort of stuff that you're making in your courses. Well, and like Jahanathan Sharvet's book, The Data-Oriented Programming, like I felt like that was a really great attempt at explaining like what is this data-oriented thing we're doing anyway.
01:05:20
Speaker
yeah um you know it To me, like that it was great that it happened, but the sad thing is like Wow, we hadn't really tried to tell anybody yet. And I mean, even like beginners, like we didn't know what to say. We're just like, use a map. What are you doing? And yeah like he actually broke it down into, I think it turned into four principles by the end of the book um that was like, you know at first you're like, no, it's more complicated. No, it can't be that. like you And then like after a while of thinking about it, I'm like,
01:05:58
Speaker
Oh, yeah, that's kind of it. That's what it is. It's just using generic data structures. What's another one? um Functional programming, so like immutable.
01:06:11
Speaker
um So ah there's, there's four principles. I can't remember them all. I think it's, it's no, don't do it. Don't do validation at runtime instead of it compile time, stuff like that. Right. Closure is the sensible stuff. Well, yeah. And he has a whole tree that he worked, you know, as I, I'm an author and I know like you think so deeply about these ideas. Like you want to schematize it, but then it's like, this isn't really a appropriate for the book. He has a whole cool tree that's like, you know, you take the left branch, you're using immutable, you take the right branch, you're using mutable. And like, you you kind of walk down these choices and you arrive at data oriented programming on one branch.
01:06:56
Speaker
And functional programming is like is is another choice. right so it's um its a you know it's It's cool that that he's actually gone deep on it and and thought about it.
01:07:11
Speaker
Yeah. Well, speaking of going deep and and thinking, the reason we ostensibly had you on was to talk about abstraction and shit has gotten pretty abstract already. so But and just to kind of wrap off this Like, you've given me something to think about that I haven't thought about before, which is like we need a book, you know, closure for Java devs that is not here's how to write for with MapReduce and Filter instead, but it's actually like here is how to build a real program. You know, because if you're coming from Java, you're probably building industrial software, right? ah Or sorry, that sort of program.
01:07:52
Speaker
um and I think another interesting way into it though is like the the way that a lot of people have come to Closure is they've um seen a Rich Hickey talk and they've they've seen the ideas and then they checked it out. and like That's actually something I think you're pretty good at, which is talking about ideas. and In your newsletter, quite a lot of the time you don't even mention Closure. right You're talking about ideas, but then every once in a while you do mention Closure. and I think um I wrote a blog post about the heart of Closure Conference, which I still haven't published, so I'm even later than your monthly wrap-up. But in your closing keynote, I don't know if you said the word closure in your talk. I don't think I did, actually. Yeah. So what in the world were you doing on stage at a Closure Conference not talking about closure?
01:08:49
Speaker
ah Yeah, good question. um So my original idea for the talk, and I think it kind of stuck pretty close to that, was to you know Again, also I was expecting the talks to be much more about people, ah like I talked about before. um It was about how abstraction is this uniquely human thing, this human skill that we have, and just kind of explore that and celebrate our skill of abstraction.
01:09:32
Speaker
um So, I mean, that was kind of the the like beginning idea of that talk. And I think I got pretty close to that. It explored abstraction from you know, the fossil record of like, how can can we figure out the cognitive capabilities of like pre pre ah-human hominids? And ah there's actually, it's not just me, I didn't do any research into that, but there's there's a there's a whole branch called cognitive archeology that's looking into this. and i just
01:10:16
Speaker
looked at what they said basically. yeah um But put it in a talk form and then went through some examples of in history of like important moments in the history of of ideas that we're like now kind of we all take for granted as like this is how abstraction works and it's like no that was invented by like one person ah and ah we all do it now and so just like trying to set up this idea that we've got this legacy that we're all carrying around
01:10:57
Speaker
ah of a genetic like legacy and then a cultural like educational legacy ah that we can make use of in our and our lives. so the the thing I think this is absolutely right, but um one of the things that I posit is that um mean we are all abstracting all the time.
01:11:22
Speaker
But i posit I think you posit, maybe he's in your talk as well, that every level abstraction kind of in the human world, we have people drop off.
01:11:33
Speaker
Um, so as we get into further and further, like, uh, depths or heights of abstraction, let's say, you know, we, we get people get dropped off. So a great example to me is like the difference between, um, arithmetic, algebra, and calculus. Now those three things, not everybody makes it to calculus. Yeah. Yeah. Yeah. I'm not, everyone makes it to algebra. Right. Right. No, it's true.
01:12:01
Speaker
so i you know i feel like i feel like there's there's that kind of um although although It's correct. I feel like there's some abstractions and I don't want to be elitist about these things. Cause I'm not saying that, you know, there are certain people that can abstract and certain people that can't that's bullshit, but you know, it depends on it. It depends on education. Like you just need education yeah that ah experience really, unless you're Newton or, I mean, you know what I'm saying? Like you have to be very special to come up with it on your own.
01:12:32
Speaker
Yeah, exactly. And so this is kind of like the interesting question. Well, let's jump on that because you said the word invented by one person and then you have to be pretty special to come up with it on your own, but the calculus was invented more or less by Newton and Leibniz at the same time, right? So something was in the air. That's right. They're putting pieces together. Yeah. It's a scientific community, you know?
01:12:57
Speaker
um so So this was in a way a hive mind of which Isaac Newton, you know, like I'm not saying he was just some dude, like clearly, you know, he made some leap that, that, you know, only one other person was currently making at the same time. So I don't mean to shit on Newton. I mean, I could, you know, there's all sorts of reasons to do that. Wow.
01:13:23
Speaker
but We don't need to go there. I think it's too soon. It's too soon. Your man has drank mercury. I mean, come on. Well, yeah. If that's what it takes, Josh, if that's what it takes. You're absolutely right. And that's that's kind of one of the the themes that I try to weave through.
01:13:45
Speaker
I don't know if it came through, its it probably didn't, but that um the ideas are often co-invented, independently co-invented, not two people working together, but two people working sometimes.
01:14:00
Speaker
a part or like one person will invent it. And then like their journal is like lost for a hundred years. And then someone else will invent it in the meantime. And then it turns out that they invented the same thing. But yes, there's something like in the, in the air, they're all working in a group communicating, um,
01:14:22
Speaker
There's also the privilege that a lot of people have in this. So like Newton being like independently wealthy, right able to just be a scholar and not, you know, work at a, work in a coal mine or whatever. um and Until they made him run the mint, right? and could afford Well, yeah, right.
01:14:45
Speaker
but But he could afford all of the like yeah equipment, right? He could afford to like order these weird chemicals from all over the world that were very rare at the time. And drink them.
01:15:00
Speaker
yeah and and like Well, he drank them, he burned them. He did he did all the alchemy stuff. Yeah, he was an alchemist, yeah. and um And also, this is the thing I wanted to get into in the talk, which I didn't, which is I think we shit on alchemy too much.
01:15:18
Speaker
Like totally like and when was the last time you invented chemistry? That's what I want to say. Somebody's like all those alchemists, they thought they could turn lead into gold. ha Dude, they were doing real stuff that chemists still do there for sure. You know, melting compounds and doing reactions. They just didn't know what was going on and they were doing their best to explain it. um It's in the name. Come on. Yes, exactly. Exactly. um And by the way the thing i was going to say to you was and I think you you mentioned it in the talk and it's not mentioned enough is that, and ah and this is sort of so so um so like annoying to me and frustrating is that people,
01:16:03
Speaker
Some people at least have this concept that like Western civilization is responsible for all of like the benefits that we have in the modern world and it's so bullshit. Okay, Newton was a great guy and he was ah on the West, an Einstein was a great guy.
01:16:21
Speaker
There's a nice guy, but, but hey, you know, what about, you know, all of the kind of Chinese, Indian, African, Asian people that invented, for instance, algebra, you know, not a Western invention. That's right. shepr It was, uh, it's an Arabic invention for sure. Um, we're, we're super good at taking credit for shit and appropriating shit. Like we're the best.
01:16:48
Speaker
Yeah, I think we're you know we're you also have to look at how different cultures kind of have their own, oh yeah.
01:16:58
Speaker
but ah we we have we we Every culture has their sort of golden age. Yeah. True. um you know it's western culture if we if If Western culture is like influencing more, it's because we're in the golden age of the Western culture right now.
01:17:21
Speaker
Uh, and we're, you know, we do have a bias when we look back and, but then like in a, in a thousand years, when we look back, we'll be like, Oh yeah, that was like a, it was a yeah really flourishing period of that Western, you know, hemisphere. And then it just kind of went back down to average, uh, just like we could look back and say like, oh, look at this Arabic period where they like invented all this cool architecture and math and science, yeah poetry. They were just doing all sorts of cool stuff. And then they just kind of came back down to average. And you can say the same about the Chinese. You can say, like, all these different cultures have their flourishings. And then they they've regressed to the mean. I think we could say something about empire in there as a reason for a golden age.
01:18:15
Speaker
I mean, the Arabs had their empire too. So like, no, that's something to it. Chinese empire, yeah you know? Yeah. Yeah. Yeah. Yeah. I mean, let me add something again. I mean, towards immigration, because there seems to be a problem at the moment with immigration in certain countries, uh, in most countries, uh, most Western countries, at least. Um, and yet problem with people dealing with the fact that there is immigration or.
01:18:39
Speaker
Well, shitting on immigrants, basically. yes you know And you know both you and I are immigrants, Josh. you know You're an immigrant to Sweden. I'm an immigrant to Belgium. um And yet, because you know we're white men, we're probably but probably one of the good ones.
01:18:54
Speaker
um You know, um, two of the good ones. Okay. Well, one, I don't know about you. yeah okay ah But I was gonna say that if you, if you look at America, all the kinds of stuff that happened, you know, like pre the second world war, even, you know, a fact that like, they put this whole, they put this whole thing together for the, um, the Manhattan project. It wasn't made of Americans, you know, there was some there obviously, but there was a lot of immigrants working on that project. all the high tech stuff that has built Silicon Valley, a lot of it's being funded by Americans, but it's coming from immigrants. and What I'm saying is that when you've got a rich civilization or a rich court, let's say,
01:19:40
Speaker
Empire, what do they call it? The Imperial Corps, you know? With this Imperial Corps, yeah, Nazi immigrants, yeah. the imperial When you've got an Imperial Corps, any Imperial Corps, you you tend to attract the sort of best and brightest for the other from the other parts of the world. And then you, like you said, you then you take credit for their work because it happened here, you know?
01:20:02
Speaker
But in fact, you know so so that you know that's where the bullshit is. But but history but the history is definitely that that kind of like abstraction and like the the but the development of the civilization that we call it at the moment has been multi-centered, that's for sure. know yeah um And I like that about your talk a lot that you definitely, you gave truth to that. you know i ah If I have a regret, it's that it was very hard, especially going further back in time, to find examples of women doing it. um it They just have not been represented well in history. yeah yeah History has kind of erased a lot of the yeah contributions of women and it's just hard to find.
01:20:51
Speaker
I think erased is exactly the right word, right? Because, I mean, obviously, women were doing science and for shit. I mean, a lot of, ah as we know, a lot of women were writing under pen names that you know sounded male.
01:21:09
Speaker
So I think that was one really interesting thing about the, I don't know if you saw the Shoulders of Giants talk um about the the foundations of Lisp, which also I thought was interesting because it was about people and not really technology at all.
01:21:24
Speaker
um And there was one um a Hungarian mathematician who is a woman, Rosa Petter, I think her name was. And she was like the only mathematician mentioned in that talk that I had never heard of. And I'm a person who actually enjoys reading about that sort of thing. I'm not a mathematician, so I'm just an ignoramus, but I'm an ignoramus who enjoys reading about mathematics.
01:21:49
Speaker
And um you know it's like surprise, surprise, the one mathematician um who made important contributions in this chain that led up to you know the discovery of Lisp or whatever happens to be a woman. And so, ah yeah, I think erased is the right word. Yeah.
01:22:06
Speaker
Yeah, I think we've got it a lovelace as well as the first programmer and Mary Curie in the kind of like ah the search for DNA and stuff like this. um You know, there's all these Mary Curie.
01:22:22
Speaker
Um, I believe so. I believe what's dna it was on radiation. Right. Oh, radiation. God damn it. Yeah. There was a woman involved in the DNA that that Watson and trick stole yeah the still still area results from. yeah i mean asic Yeah. She just didn't give a fuck because she just thought, well, in the end, it's all going to get found out, you know, so I'll share, yeah but yeah, but they got the prize.
01:22:49
Speaker
Right. I heard, so this will yeah, I heard different. I heard like the story was that because she was a woman, she had to be super careful with her results or they would be discredited. So she was super conservative. She was getting more evidence. And then cluster they were two men came in and were like, Oh, we could publish this. And they just published, you know, they they did a little bit of work and they made a a model of it and like published it. ah And, um, you know, yeah.
01:23:19
Speaker
It's like how, uh, you know, men will apply for a job where they have two out of 10, uh, must haves and women have nine out of 10. And they're like, ah, I'm not qualified for this. I'm laughing, but I guess it's not funny as much as, you know, what are you going to do? Yeah.
01:23:38
Speaker
Well, let's let's be aware of it at least and push our awareness, which is the most important thing that we can do now, I think, you know. But yeah, I mean, I think the whole abstraction thing, Eric, I mean, one of the, let's go back to that because the thing that I found like kind of like interesting at the end, which we were talking about, like a bank.
01:23:59
Speaker
a bank can be represented by a computer. And I also thought that a computer can represent a bank, a bank
FinTech and Banking Transformation
01:24:05
Speaker
can get... this this like Again, there's like you know having worked in banking systems, I think Josh has as well, and maybe Joao as well, Eric. But you know there are like a million banks on top of... FinTech is all about essentially rewriting banks in software yeah um and bits bits of the bank. and you know So I'm wondering where we're going to go with the kind of um abstraction stuff. or How, where do you feel like it feels to me like software and computing is where abstraction meets the real world these days. That's where we're kind of like integrating abstractions like on the phone and on the websites and all these kinds of things, you know.
01:24:46
Speaker
Right, right. So so one of the the the big question of my talk that I was trying to speak to to answer partially was ah how is it that we ah can basically ba build a bank out of electrons?
01:25:06
Speaker
Like a bank in, in, you know, if you really think about it, it's like accounts of gold, like big vaults of gold, yeah like it's just saving money, right? Now our money is all, you know, data, but, uh, how, how is it that we are doing this? We like think of it as the same and like kind of works out right so that we can just run it all on a computer. Um, and.
01:25:36
Speaker
So i try to I try to explain that throughout the talk that um we're able to do it because there's a ah correspondence between ah the abstract operations that we're doing and the concrete operations that you would do in a bank, like moving gold from one account to another as a transaction.
01:25:59
Speaker
And that transaction is just represented as some data ah and um somehow they they correspond. And we found these correspondences between real world operations and these abstract operations.
01:26:15
Speaker
Yeah. Well, I mean a ah ledger itself is an obstruction of faults of gold, right? That's right. That's right. So it was all, it was pretty abstracted. That's that's another yeah another advantage that accounting had is like someone had already figured out this is an information system. All we have to do is write down like what account is it coming from and what account is it going to?
01:26:40
Speaker
And ah we put it in each of the books, each account has a book and you just write like deposit from this account, this $600. And then in the other one you say credit or sorry, debit 600. Yeah. ah Instead of deposit. It's like a credit. Yeah. Credit $600 here. The other one is ah debit $600.
01:27:04
Speaker
And, uh, then it should all add up in the end, just like if you had golds and none goes missing, you know, in somebody's pocket, uh, like it, it, it, uh, works out. Um, and so it's pretty abstracted. So all we had to do is kind of digitize that, like make a database instead of a book. Right. Um, the real hard thing that we do as programmers is we're abstracting stuff that hasn't been abstracted before.
01:27:33
Speaker
Right, right. People might be good at doing it. ah you know ah An employee knows how to fill out this form and then where does it go after you fill it out. And like we have to go through and um figure out like what are the forms that get filled out and where does each bit of information in the form go and like what what are the values that are allowed in this form and stuff like that and ah abstract it ah into something that we can build on a computer. um And I guess another thing that I wanted to get through in the talk and I don't think I succeeded too much at this is I wanted to have like
01:28:19
Speaker
a set of modern thought tools that were like, this is what makes an abstraction better and then a better and then better. It's like, we've got all these like, it's not just like, okay, yeah, the basic, you know, table stakes is that ah It works. It does the right thing. That money adds up correctly in the end. right But then, like you know why you yeah what if you make a simplifying assumption? like Just like in physics, you might say, we're ignoring air resistance in this problem.
01:29:01
Speaker
ah is you know to I've been in situations where I'm telling my boss, well, we're just going to ignore that. And they're like, oh no, but it's important. And it's like it's it's a simplifying assumption. like I don't know if we can even come up with an abstraction that includes the complexity of of these little details. you know ah and you know It's web scale. Does it matter if you like miss a percentage here or there? you know um and i try That's really hard to do.
Probability Misconceptions in Programming
01:29:34
Speaker
It's it's the same kind of trouble that that I've had with people where I'm talking in probabilities.
01:29:42
Speaker
and to ah to an i mean Honestly, to to someone who's not trained in probabilities, if I say 90% accurate,
01:29:53
Speaker
That's bad. They think it's perfect. No, they think it's perfect. They're like, oh, 90%. That means every time, right? Like, no, 90% of the time, 10% is bad. ah Yeah.
01:30:08
Speaker
um So, you know, there's there's ah there's that kind of- We're not good at abstractions here. I mean, the pandemic proved this as well. Oh, God, yeah. That's right.
01:30:19
Speaker
that that That's a thing that Alan Kay talks about is like, he had this back in like the early 90s with AIDS. He was trying to show that like, yeah, it looks like there's not much AIDS in your community, but you're just looking at the you're looking at the present,
01:30:37
Speaker
very small ah you know hole into the time, right? But if you could project it out and you know that it's exponential, that that people have people have the virus now that are not showing symptoms. right And they're gonna be giving it to other people and they're gonna be giving it to other people. If you could see five years out,
01:31:04
Speaker
in the future, let's say, you would stop now. You'd be like, oh, let's stop. Whatever we're doing, we got ah we got to stop this spread. But you're just saying, oh, it's just like a couple percent. like It's probably not a big deal. But that's going to double every two years and it's going to be almost everybody if you don't do something. Yeah. so And even if it's just a couple percent, I mean, like I blew somebody's mind last week at work where they were like pointing to their 99.8% availability and like that's good. And I'm like, yeah, but that's terrible because if your system is unavailable, planes can't take off. And guess how many hours a month 0.2% is? And they were like, oh, shit.
01:31:48
Speaker
right it was like yeah I mean, I remember we were I think this was a ah machine learning class back in grad school. It's called AI now, Eric, please.
01:32:02
Speaker
Let's come to that in a minute. Okay.
01:32:07
Speaker
Let's have the quit reminiscence first. Yes. Okay. So, I mean, this was before deep learning and stuff, but that it was, a lot of it was probability back then, right? Like you were doing a lot of probability. So a lot of what we did was, um, learn learn probability and how there's stuff like you're doing. We learn stuff like if you're having a medical test and it's 99.99% accurate, yeah which sounds great. It sounds like like let's do it. like we'll We'll get a lot of good information from this.
Specifications and Testing in Code
01:32:44
Speaker
The problem is that if the disease that it tests for occurs one in a million people, might then you're going to have more false positives than you're actually going to capture people who have it. And so this and this is a thing that like even doctors, highly educat educated doctors make this mistake a lot because if you don't you know in In your head, 99.99 sounds like I'm never going to see a false positive, right? But ah if you have a million people and only one of them has it, you're not you're you're still goingnna you're going to have like a hundred people are going to say, or more, probably a thousand people. I don't know. I haven't done the math.
01:33:30
Speaker
and long But like a thousand people are going to yeah have positive. And so now you have to figure out which one of those thousand has it. um So it's that kind of reasoning that i that we need to get to as programmers. as That's kind of where I was trying to get to, that there's like a history of like big inventions of like leaps that this lets us think better about our abstractions.
01:33:59
Speaker
Um, and, uh, we can apply them and because we have computers, it helps us, it helps us build the models better because we, we, you know, we're not just like writing it on paper. We can actually run it. We can actually test it. Yeah. Yeah. We can get through quicker. Yes. ronda wiker please specification That's my runnable specifications book. yeah yeah is that that ah i mean the The main idea behind runnable specifications is kind of the same thing that like people talk about declarative programming, where a lot of programming is you like work something out on paper and then you you figure out how to translate it into for loops and if statements so that it gets the right answer. But what if you could just write it directly?
01:34:53
Speaker
and in whatever spec the best language for that specification is. And then it runs. like like like Ideally, it runs fast enough, efficiently enough that you don't need to optimize it. But even if it just runs 10x slower than what you would like it to, ah it's running. You can test it. It's Maybe your model is wrong. Maybe it has problems that you hadn't foreseen on paper. And so the idea is like we want to get to this point where we're expressing stuff at the level of the problem. And then it's good enough the way it is. And if it's not,
01:35:38
Speaker
At least you can use that specification that you wrote. It's 10x too slow, but you can use it as an oracle to write tests for the optimized system. so You can just give the same input to both and see if they get the same answer.
01:35:56
Speaker
um so ah yeah that's That's the idea behind that. That's a great idea. um I think the men the main thing for me is that It's very easy on a bit of paper or something like this to to just forget how these data ah data kind of um structures relate to each other. How can you access one thing from another thing? And you know I've been following your progress on the book. So you know this idea of like, oh, you you want to like
01:36:29
Speaker
ah get access to know the price about a coffee or a, you know, you want to work out, oh, how much, how many, you know, what's the size of the cup or what's the, you know, how, where do these things belong? You know, where, do where do these things sit nicely in the system? I think that is a skill, which is, which I think you've talked about.
01:36:51
Speaker
which is drastically and dramatically underplayed, you know, this ability to make those abstract, um, those abstractions to make and to segregate the decisions. Yeah. And then if you can do it through runnable abstractions, then I think what you're saying is you can use it as a little laboratory to try these things out. And then again, get fast feedback and say, Oh, actually, you know what, if we, and because whenever you've got like a low price thing, no, whenever, whenever things are low cost,
01:37:21
Speaker
then you will do more experiments. Right. It's qualitatively different. Yeah. Yeah. Yeah. Yeah. I mean, I think that that is, you know, going back to the repl discussion, like the, the, the basically the last thing that closure has a big advantage on is, is, uh, it's dynamic. You can run it even when it's not all the way working.
Benefits of Dynamic Languages
01:37:47
Speaker
the the feedback you're getting um and the number of experiments you can do is so high. um Like, you know, look, I'm um not, I know we just talked about like not ragging on other languages, but I'm going to say a thing about Haskell, not ragging on it. But when I programmed in Haskell, people would say stuff like, well, as soon as um it,
01:38:17
Speaker
as soon as it compiles and it type checks, then it's very likely to be correct. Yeah. And I found that to be true. I did. It was, it was, it was, it was a, it was a kept promise. Let's call it that. The problem was I also often learned that It wasn't what I wanted to do. It did what I said and I got it working. And then I'm like, no, that's not really right. And so I just spent two hours getting it to to find out that it wasn't right. Same with refactoring, you know, like I'll add a.
01:38:55
Speaker
I'll add a parameter to a function and then ah spend but spend an hour following the error messages. Oh, you have to edit this to here. This is as it needs a parameter. Okay, da dada trace it through. Then like, no, that doesn't look right. And undo it, right? And so it's, I guess what I want to say is the dynamic nature We give up having a type system. Having a type system is nice. If everything's right, you want it to like keep it right. Don't let me break it. all right that That's a very nice property. But the idea is that it's you're you're often not right. You're often wrong and you don't know it yet. And you would like to see, am I right or wrong? And
01:39:43
Speaker
um ah Committing to types ah is is it it's expensive because it it it removes that experimentability. I think that's why closure was and probably still is a good startup language in the sense that yeah people want to experiment a lot in their ideas and refactor things and change things and change ideas and change your mind. And it's really good. I hate Paul Graham and he's awful, but I will say that, you know, in his whole list is the suit the secret weapon, you know, they were a startup and they could just experiment 20,000 times faster. But sure back to you, Ray, sorry.
01:40:24
Speaker
You know that's that's the point and you know i think that the thing about closure is that you can experiment and often you don't even need to rewrite it because it's good enough to actually deployed in production once you finished your experimentation but like you say eric if you do need like that extra performance or whatever then you've got a great.
01:40:45
Speaker
you've got a great kind of data model, you've got a great kind of a set of abstractions that if you want to you know optimize them in like Go or Rust or Java or whatever, or Haskell, then you've you've kind of got the basic data model and the basic set of abstractions there ready to sort of like drop in. um And you've kind of went to that experimentation phase. Now, whether anyone wants, to but whether many people do that or not is like,
01:41:11
Speaker
up for debate but this feedback loop is really important. I think that's the main thing that one of our abstractions is all about. and i want to I just want to also say I'm not great at Haskell. There might be like workflow practices that I would have learned in and you know if I had a few more years in the language. of like right like One thing I remember learning
01:41:34
Speaker
Uh, no, one thing I, the the thing I remember learning like just after I stopped was that you never add a, you never modify a function. If you're refactoring, you make a copy and you put a two on the end and then, then it lets you modify it without breaking anything that's already working, you know, and like, okay, I didn't, I didn't know that. And so I didn't have that in my workflow.
01:42:01
Speaker
Yeah. Yeah. Well, there was one thing, uh, shit, Ray is distracting me in the chat with all of these interesting things, but you said something super interesting. Uh, yeah. one yeah Sorry to reveal the, uh, you know, behind the man behind the curtain there. Um, but no, it'll, it'll come back or it wont yeah proceed. proceed Something about, I always say, interesting stuff. Thank you very much.
01:42:37
Speaker
Oh no, yeah, the experimentation.
Clojure's Relevance and Support
01:42:40
Speaker
Right. So there was another, um this was one of the last Euroclosures back when Cognitech used to do them. And I forget which one it was, where it was, but um Nada Amin gave the closing keynote, and um at a closure conference, she gave a keynote on towers of interpreters in Scala. And somebody asked her afterwards, like, you know, what's the deal with Scala?
01:43:08
Speaker
you know This is a closure conference and she was like, yeah, I rate closure too. And one interesting thing she said is that I use a Scala when I'm solving a problem I already know how to solve because the type system is helpful. I use closure when I have no idea what I'm doing and I'm exploring the space. and like That really resonated with me and I realized in my work, I'm almost always in the ladder. Very rarely am I solving a problem that I've already solved a million times. right
01:43:40
Speaker
Yeah, that's such a great place. Right. I think we're on our clock. It's like so many hours now where we've really kept you for a long, long time, Eric. in a deep We're very grateful for it, but I think we should start to wrap up because... Yeah, like yeah yeah. I just got a bed over here, you know? Yeah, yeah. I should go too. I was going to say something. um So ah how do we wrap up? Y'all are the hosts.
01:44:08
Speaker
God damn it. Yes. Okay. Did we lose Josh? Oh yeah. I think he's just frozen a little bit there. Maybe he's just back. I don't know. Um, yeah, what I was going to say was maybe it's to, maybe it's to wrap up a little bit was, um, you know, you you're, you're writing books in general, you're, um, you're, you're, you're adding a lot to the sort of closure community in terms of your educational material, et cetera.
01:44:35
Speaker
What's your sort of forward looking advice to maybe some decision makers out there? Uh, maybe it's who are wanting to adopt closure or maybe it's who are kind of like we say at the core team or core team appropriate, you know, maybe it's two, two, two kind of like camps there. Like maybe as you can't talk to the core team, forget those people. I mean, you know, they're, they're very difficult to reach, I think, but let's talk to the community or to adopters of closure. What's what's the kind of, um,
01:45:05
Speaker
Prognostication from from Eric Normand tonight, today. Prognostication. Um, your forward looking forecast, and this is not a financial advice, but no, no, but don't, ah don't put any stock in that. Uh, but the, oh, no pun intended.
NewBank's Role in Clojure Growth
01:45:26
Speaker
Uh, the, I think closure is not going anywhere. Like it has cemented itself in enough big companies that it's going to,
01:45:38
Speaker
It's going to be around. So it's not like, you know, fading out of existence, anything like that. um I think that it actually is going to have, because of the support from NewBank, it is going to have new, what do I want to call it?
01:46:01
Speaker
new development, you know like this whole ad libs thing, I think is great. It's ah it's a big deal. um I don't know if we'll ever see the kind of growth or excitement or even just like media presence that we saw at the beginning of Closure. um i don't I don't know. It doesn't look like it's just going to happen. It's not happening now. And so You know, I've talked to a lot of people outside the closure community and they're like, I haven't heard from about closure in so long. Like I thought it was dead. I thought no one was using it. Um, which is just the way people think, you know, they don't hear about it on Twitter. It's not in their circles and it's not like big enough to like burst their internet bubble. Um,
01:46:52
Speaker
you You know what I'm saying? It's like not on the front page of Hacker News that much anymore. you know it's It's that kind of thing that we're not we're not um at present for them. ah But at the same time, like you don't know how many people I met at Heart of Closure who worked at New Bank as like junior programmers, learned Clojure, and then moved on. And they're like at startups, they're doing Clojure at other companies. um And this is just the people in Europe. like you I just imagine in Brazil, how many more people are still there who like are moving on from
01:47:34
Speaker
new bank but still want to do closure. um So I think that therere there's there's something there, there's something brewing like new bank For all the criticism that may or may not end up in the podcast of New Bank as a you know steward of closure, I feel like they are they are educating a lot of people in closure who might not even have wanted to do closure in the first place. They just wanted a job.
01:48:10
Speaker
And now they're learning Clojure and they're getting good enough and they're moving on and looking for bigger opportunities. ah That's great. That's awesome. but That they're this engine that's like, that ah frankly, it's the kind of thing that I've always wanted for Clojure is like a place that was going to train you up and give you a decent salary and like, you know, do it at scale and then have this just people coming out of them there that are, are good enough. And I think that that's happening. Pitch did that as well. And I think to, to a lesser extent, maybe Griffin over in London, cause I know they're hiring programmers who, you know, don't yet know closure. Um,
01:48:58
Speaker
So I think, yeah, exactly, Eric. And that was, that was what I was getting at with my old like comment way back when on, I don't think New Bank cares about, uh, maybe that the. That's not really to get those lovely points though. No, no, no, no. But this is the positive side of it, which is exactly that New Bank will hire programmers who do not yet No closure. Yeah. Right. And then, and then teach them closure or give them, I mean, and I've heard really, really good things from folks who've worked at New Bank about the support and education you get. So, I mean, it's very structured education. It's not just like, here's a code base. They have a team let's yeah that's like dedicated to education training and yeah.
01:49:48
Speaker
yeah Yeah. So I think that that ah in a sense, you know I hope that New Bank is not the only producer of new closure programmers. No, but they're probably the biggest and like they could dominate in terms of numbers. and like but that's ah Frankly, you you want something at that size, right? You just need you need the scale And I think that that's great. like i it could It could keep closure fresh, like new people coming in. and That's really what we need. like you know that We all have gray hair. like You don't want it just to be a gray hair language. You want it to to have no have some fresh blood.
01:50:30
Speaker
Right. i think that i think I think that fresh blood is a perfect way to wrap it up. you know Thank you again very much, Eric, for your words of wisdom. Thank you for having me. And we'll have you back again when Josh has agreed on a new way to do this broadcast. I thought you were going to say when Josh has been fired and we have a new host who wants to read your video on a guest.
01:51:01
Speaker
I wasn't going to tell you that live on there.
01:51:06
Speaker
um all right well We're going to rate and review your performance afterwards, Josh. Eric, be prepared. okay Five stars, five stars. good Perfect. Thank you. thank I give them five stars. yeah but it was It was great, Eric. Thanks. so The longest I've ever gotten to talk to you. um Yeah. So hopefully this will be not the longest we'll ever talk in our lives, but it's been fun today. Yes. Likewise. Thank you so much. This was great. Okay. Bye.
01:51:39
Speaker
Thank you for listening to this episode of DeafN and the awesome vegetarian music on the track is Melon Hamburger by Pizzeri and the show's audio is mixed by Wouter Dullert. I'm pretty sure I butchered his name. um Maybe you should insert your own name here, Dullert.
01:51:56
Speaker
u If you'd like to support us, please do check out our Patreon page and you can show your appreciation to all the hard work or the lack of hard work that we're doing. And you can also catch up with either Ray with me for some unexplainable reason you want to interact with us, then do check us out on Slack, Closure in Slack or Closureverse or on Zulep or just at us at Deafened Podcast on Twitter.
01:52:24
Speaker
Enjoy your day and see you in the next episode.