Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
#74 - Will Acton and the greatest Clojure podcast Crossover! image

#74 - Will Acton and the greatest Clojure podcast Crossover!

defn
Avatar
17 Plays3 years ago
Will Acton joins the "mobcast" to talk about Martial arts, Punk Music and a bit about his Clojure projects hx and Helix! We are honoured to have @lambduhhh (https://linktr.ee/lambduhhh) as a guest-host in the greatest Clojure podcast crossover!
Transcript

Attracting Younger Audience

00:00:15
Speaker
Welcome to DeafN episode number 74. Since we realized that we are falling out of people's interest and then we thought we're gonna bring in much more hipper, cooler people on your podcast. So reignite the interest in DeafN because we are old ass people talking about shit. And then Ray keeps talking about some Victorian shit that nobody understands. I'm somewhere in between immigrant dude talking about some shit that nobody understands.
00:00:43
Speaker
So we want to, we want to make sure that, you know, the snap, I don't know if Snapchat is a thing these days. I'm not like TikTok thing. Yes. The TikTok meme. The gramophones. The gramophone is a thing. Yeah. Yeah. That's, that's, that's, that's. Vinyl records. We'll probably listen to Streetlight manifesto on vinyl for all I know. Anyway, so.

Introducing the Trendy Developer

00:01:05
Speaker
We decided yes, so we decided we're gonna get somebody way more hip way more cool than us So this is good the greatest crossover that you've been waiting for Please welcome to the episode children
00:01:24
Speaker
I'm the trendy new dev on the block. I actually thought you were going to say Will when you were talking about it. He's the guest. He knows what he's getting into. I was going to be like, oh no, you're going to be so disappointed. I thought you were going to say Will and I was like, oh, this you could lead it. I was engaged too.
00:01:47
Speaker
You have to know that the guests are just an after-effect, you know, just an afterthought as far as I can say. Okay, come one episode off the next, you know.
00:02:01
Speaker
I mean, of course we, you know, first we need to introduce the co-host. Now we're going to introduce the guests. So maybe you can introduce the guests and double down on the Gen Z pandering. Millennials, come on, you know, trenders up. Well,

Casual Banter and Musical Tastes

00:02:14
Speaker
okay. No, no. So I'm the trendy doo-doo on the block, but even trendier is ClosureScript. So we have somebody that is doing some really, I did not prepare a script. This is the line.
00:02:29
Speaker
Welcome to Daffin, everyone. Welcome to Daffin. We'll act it, AKA, let's go. Okay. People should know this. I clicked twice. They should be following the memes. Oh yeah. Yeah. Yeah. Thank you all for having me on. This has been
00:02:51
Speaker
uh quite a journey so far even in the last 10 minutes that i've been on so i'm excited to see where the rest of the regretting uh regret would be too strong but you know getting up we'll get there we'll get there
00:03:06
Speaker
It's too early to regret. Yeah, but it'll be complete regret if it is just Ray and me, but we have better guests and better hosts, so co-host. So we are talking about your t-shirt. So yeah, welcome to the, I don't know, Streetlight Manifesto podcast.
00:03:27
Speaker
What is Streetlight Manifesto? You know, you go to one concert and you get one t-shirt and it's like the entire internet. It was now, you know, as you buy that. Who is Will? Oh, that's Streetlight Manifesto fan guy.
00:03:52
Speaker
It's like, you know, in my, in my top three, uh, you know, music genres, but I do love, uh, streetlight manifesto. Um, I mean, uh, you know, actually I played classical music for a long time as, uh, when I was growing up.

Brazilian Jiu-Jitsu Journey

00:04:14
Speaker
And so, um, you know, when I'm like,
00:04:16
Speaker
It depends on the time of day, but either I'm in like...
00:04:20
Speaker
Okay, I've got to like settle down and get into a flow. So I'm going to do some like, you know, classical music, you know, some, some Bach with all the, or I'm like, okay, I got to, I got to pull myself up. I got to hype myself up. I'm on my third cup of coffee and my brain's not turning on. So that's when the streetlight manifesto comes in. And he lets you Sterling, I would think, I thought you were going to be like, then I get in my flow and I listen, I see a crossover, like classical dubstep.
00:04:50
Speaker
Lindsay Sterling, here we go. I thought that's where we were going with it. I mean, I think our audience should check that out after this. Oh, you haven't heard Lindsay Sterling? Which one? You haven't heard of Lindsay Sterling? Maybe like one or two songs, but her name doesn't like immediately ringing a bell.
00:05:11
Speaker
Well, she's a violinist that dances. She just like, she dances and it's dubstep. It's, and she plays, yeah, it's pretty awesome. This episode should have been a video recording. I mean, people who are listening out, missing out race, monkey jumping and you reenacting while in dancing. Can I, can I check well, you know, when you went to see street that manifesto, did you get into the mosh pit?
00:05:39
Speaker
No, no, I did not. Yeah, I know. I know. It was pre COVID. Luckily, so but yeah, just you know, my
00:05:55
Speaker
My body doesn't, uh, I mean, there wasn't like much of a mosh pit there anyways, but, um, what is it? You know, I'll be the, I'll be the guy, like the guy who's emotionally that you mean. Yeah. Oh, it's like all about like the front of the, the front of the audience, which are going mental and sort of packing and dancing, you know? Yeah, it definitely depends on the scene. Okay. Like, you know, when I was, when I was a teenager, I went to a few like metal shows and you know, they get really,
00:06:26
Speaker
uh you know into their uh sort of you know mashing and you know beating each other up and throwing each other around and i did that like once and i was like okay this this hurts like i don't know if i don't know how much money to go and get a black guy
00:06:43
Speaker
I like punk mosh pits. So I grew up, my stepdad was in a punk band, is in a punk band. And so I grew up, I grew up punk punk. And so I would be this like 10, 11, 12 year old little girl, my dad taken to the shows and they were chill enough that when I wasn't in there, they would go a little rougher. It was fun, but then they would let me in and they would let like a 12 year old girl dance and skunk around and
00:07:09
Speaker
And he's also Moshfit, so that was... Is it the place where they throw the singer's sound to the crowd? Is it that one? No? No, that's crowd waving, isn't it? Crowd surfing.
00:07:20
Speaker
Okay. All right. Well, yeah, I remember when I was because I was a punk when punk was a thing. When your dad was a punk, I was a punk. And then, you know, the mosh pit was it was just basically just pushing everyone around, you know, and it was it was quite, quite extreme, really. But but I feel not not wrong, Will, you do some martial arts, don't you? So you're kind of built for it, really. Punch other people and then move to the front.
00:07:49
Speaker
Well, you know, the, the martial art that I chose is also specifically one that I do not get hit in the face a lot. So, um, you know, I've got to protect, protect the brain, the money maker. Um, but yeah, I'm a, I'm a black belt in a Brazilian jiu-jitsu. Um, so I got, I got my black belt back in 2019. I've been doing it for about 10 years now. Um, and, uh, I haven't, like, I actually yesterday.
00:08:19
Speaker
trained for the first time since like February of 2020. Cause it turns out that, uh, you know, wrestling around with people or, you know, grappling with people is like not super COVID safe. Um, I just wasn't super comfortable with it, but, uh, but yeah, so I'm getting back into it. So very sore today is what I'm hearing. Uh, I went light. I'm using my way into it. Um, you know, I've, I've also got like a ton of injuries that, uh, you know,
00:08:48
Speaker
Um, I'm still like, still coming back from COVID has actually been great for like my overall, like, you know, injury recovery process, uh, terrible in other ways for my health. Um, so I'm trying to like, see like, okay, instead of like going deep into that trough, uh, you know, having everything hurt and being like, okay, how much is that surgery going to cost? Uh, you know, trying to, trying to stay on that healthy helping track instead.
00:09:17
Speaker
So what is Brazilian brazilian verbility?

Martial Arts and Programming

00:09:20
Speaker
I got a word. The only thing that you know is fencing and lancing. Yeah, what's the difference between like Brazilian jujitsu and sort of standard jujitsu from jujitsu? It's taught in Portuguese. Yeah, sometimes sometimes I've been to a few classes in Portuguese. But I mean, it's it's all sort of like
00:09:45
Speaker
the branding and everything is like very nebulous. So, you know, if you go to a school that teaches jujitsu, you're you're you can't always be sure exactly what you're getting because like jujitsu just means martial arts and, you know, Japanese and so
00:10:04
Speaker
That's sort of convenient naming. Like, what are you learning? Martial arts. What should we name this? Yeah. But, you know, Brazilian jiu-jitsu is sort of like a branding around this sort of style of martial art that
00:10:22
Speaker
started in it started in Japan as sort of the it was like pre judo like if you know what judo is judo is about like you know it's in the Olympics people like throw each other and pin each other and stuff like that and it's a very explosive like athletic martial art it's really fun to watch um at least the highlight reels are really fun to watch uh and then um
00:10:45
Speaker
And but sort of like pre pre judo, there was kind of this, you know, primordial form of that grappling art that got brought to Brazil, because there's a huge, actually, like, a huge population of Japanese people that immigrated to Brazil during that time. And, and so then it grew there. And it and Brazilian jujitsu is also very much links to the history of
00:11:14
Speaker
MMA and the UFC. So like the people that started the UFC are the Gracie family, there's a part of the Gracie family that started the UFC. And they're also the ones that really popularized and grew this martial art in Brazil and then in America called Brazilian
00:11:33
Speaker
It dominated UFC. Once people started doing BJJ, didn't they just like any martial arts that was doing BJJ would just destroy every other martial arts from my understanding. And so that's part of what- BJJ already, I mean, this is pretty good. This is what we've got to run for. This is what we've got to run for. So I have a question for you Will. So my understanding is that BJJ is very
00:11:59
Speaker
very, I don't want to say movement driven, very combination driven in that you see your opponent doing this. So it's almost like chess where your opponent does this, you do this, and you build on that. And it's interesting here that you have a background in music, in classical music, in a background. You also enjoy BJJ, which I understand at the higher levels, which if you're a black belt, you're doing the higher levels.
00:12:23
Speaker
Um, you know, you're really kind of weirdly applying these, uh, the same kind of thinking that I think we do in programming a lot with, um, you know, solving, solving problems and thinking programmatically. Um, do you, do you feel like you use the same part of your brain to those things or are they totally like separate for you? Yeah. Is there closure script in jiu-jitsu or not? That's the biggest question. I think that, you know, um,
00:12:54
Speaker
It's easy to pull generalizations out of all these different complex topics that I participate in and that everyone else participates in. So definitely knowing how I learn and how I think about problems helps me understand how I can apply myself. I programmed for far longer than I've done jiu-jitsu, less time professionally.
00:13:24
Speaker
Um, you know, I started programming when I was like, you know, in, in grade school, just like messing around on, uh, you know, the family computer going back to like, you know, me being, uh, the epitome of millennial and, uh, I wasn't, you know, uh, I, I'm gonna, uh, I wasn't on the social media train that early, but, um, I guess unless you count Neopets.
00:13:51
Speaker
Like, is Neil had social media? So I was like really into, I didn't play a lot of Runescape. No, no, but you know, it's, to bring that back to Jujitsu, you know, there's a lot of sort of like analysis that, you know, I applied to like, learn like, okay, how should I solve these different problems? How are other people solving those problems? But unlike sort of,
00:14:20
Speaker
programming and enclosure script, there's a huge performance part of martial arts. When I go to a tournament, for instance, that is an area and a context that I was super unfamiliar with. I kept trying to apply, how do I analyze this and be more analytical in my approach to how I'm combating my opponents in a Brazilian Jiu-Jitsu tournament? And it just didn't work. And I had to learn how to
00:14:50
Speaker
sort of quiet that analytical part of my brain and be more like in the moment and get into a flow and just do what I trained to do in the weeks and years prior.
00:15:03
Speaker
I'm not sure if this is like a programming mindset or something, because every time you talk to a programmer, and then they see like, oh, cooking, it's just like programming. Oh, Moshla, it's just like programming. Like, everything is just like programming for some reason. Well, if you're a programmer, I can tell that the way my brain has fundamentally worked, because I've only started programming recently, and I did Myspace, and then I just didn't own a computer for years and like lived on, you know,
00:15:29
Speaker
And now now I'm super heavy into it and my brain has changed. And it's recent enough that I can remember and I can realize that the way that I think about problems, the way I solve problems, the way I am just more naturally inclined to solve engineering problems. Yeah, it's changed and it's evolved and it's so cool. But isn't it then causing kind of a
00:15:59
Speaker
Fucked up situation where you keep thinking everything is an engineering problem. You know, even when you deal with people, even when you deal with, you know, psychological things, even when you deal with everything, everything looks like I can debug the shit out somehow. All I need is a ripple into my dog's brain, you know. But you're talking about that's the exact problem with Facebook and Google, isn't it? Is that they actually think that.
00:16:23
Speaker
Yeah, yeah. To make everything programmable. Maybe leave some shit alone, I guess. Maybe that would be one thing. That gets me on social medias. I know how these algorithms work. So I know how to fool some of them and I just like willingly won't do it on some platforms.
00:16:40
Speaker
I think there was somebody who posted a comment this morning. I read that they were on Facebook, and then they keep liking anti-conservative, anti-church, whatever something, for their personal reasons. And then they get recommended only the conservative stuff, like the ads. So someone was saying that the algorithm is not able to figure out whether pro and anti-thing is actually a thing. So all it can pick up is the keyword that says conservative. OK.
00:17:09
Speaker
It's like you keep, you keep, you know, liking, I don't know what kind of person you would be. If you click, I hate dogs sort of thing. And then you keep getting advertisement for, you know, dogs. Yeah, I think we go back to that seems to me, it's a bit more like, uh, like Twitch live streaming. Yeah. Or, or Jordan's stuff on board. Yeah. Yeah.
00:17:38
Speaker
Yeah, there's a definite like performance aspect of it. There's also a deep like, you know, analytical aspect, you know, learning sort of the language of, you know, uh, the, how, how your body moves and like, you know, all the rules that, you know, like, like, again, like, you know, jujitsu we're, we're mainly like, uh, you know, wrestling with each other. We're grappling. So we're not getting, I'm not getting punched in the face all the time, which is something that I, uh, enjoy not doing.
00:18:06
Speaker
and uh so um and and so you know there's there's rules there's the way that uh you know your body moves and so uh and you know as you get more experienced you start to be able to like anticipate what other people are going to do um you know if they also understand how their body moves and how the walls kind of work and then you know you start to build a game around that um and so that the analytical thinking of
00:18:34
Speaker
uh, sort of programming is very useful in that aspect of it. But, you know, like, uh, you know, like BJ was saying, you know, there's a whole realm of it that just, you know, trying to stay in like that analytical part of your brain, uh, just doesn't like help you perform at all. And I, and I think that's actually true of programming to some extent too, because, you know, uh, it's easy for us, it's easy for me to focus on like, okay, how do I like,
00:19:01
Speaker
Optimize this like algorithm or how do I um, you know, how do I structure my application but in a way that is like sort of Fits the mechanics of the problem that i'm thinking about. Um, but there's also like, you know, you're communicating uh intent and all this information through your code and through your uh documentation to other people and we don't spend As much time like that's a much harder problem to sort of like sit down and analyze um, you know, it requires more like
00:19:31
Speaker
communication and empathy and like, you know, social like skills. That's why we take the shortcut of, you know, just writing the code and if it works, then I'm done, you know, instead of worrying about, like, let's document this. Let's try to explain this shit to someone else. How do those people I see all these Twitch Twitch streamer coders and I'm like, how are you able to just sit down for hours at a time and not only write code, but also, you know, I hope you write a documentation and then talk it out at the same. Yeah.
00:20:01
Speaker
at the same time, because pairing is one thing. Pairing, you can just be like, oh shit, sorry, coworker, let me, oh, my cat. You can pause, you can think, you can go, oh.
00:20:16
Speaker
You were allowed to do that on a Twitch stream. I think if someone tunes in for like three hours of Twitch stream, they're going to expect a few... They expect fuck-ups. I mean, I think Twitch stream is a bit like many things, like this show or like many things. Everyone likes it when people fuck up, you know?
00:20:34
Speaker
It's like when we do the apropos thing, this YouTube channel, people really like it when we make a mistake in the repl or they can send in better examples. They love that kind of shit. And I think actually, as long as you embrace that, there's someone out there on the internet that's got a better idea. It's okay.
00:20:54
Speaker
I was I was thinking of starting like a thing like every Saturday because I usually pick up some random shit that I have no idea about and then try to punch my brain through it. So I was thinking, okay, this is going to be like Saturday Night Live software soliloquies or something, you know, like it's going to be the brand and then I just keep banging, googling shit and then sharing my screen and nobody is going to enjoy that show.
00:21:17
Speaker
And that's going to, that's going to discourage a generation of programmers. Like this is what programming is. No fucking way. I'm not going to get into this shit. They're already ruined with co-pilot. They're already ruined. I did. I did try it. Did you?
00:21:33
Speaker
Yeah, yeah, yeah. Whoa, whoa, whoa. You got VS Code, Vijay? I have every possible editor on my thing because I need to know, you need to know your enemy. You know, that's the whole idea. Martial arts, apparently. I got invited. I don't know why.
00:21:49
Speaker
Oh God. Okay. That's a Gen Z thing. No, no, no. I recommend VS code for other people that are learning to code because there's so much to learn Emacs and anything else at the same time. So if you're trying to fix that up, use VS code with pair edit, so you get some good habits. Yeah, that's a good point. Or if you're doing Python, also PyCharm is pretty, pretty great. So yeah. Okay. IDEs. What IDEs will? Yeah. So on that bombshell, we need to know, will Emacs or some other shit?
00:22:21
Speaker
This is going to conclude the podcast, so think carefully. You knew what podcast you were on, you know VJ's question, his main question. I did. I was going to be actually super sad if we got to the end of this and he hadn't asked me that because I am an EMAC student. We just really got started. Awesome. I mean, I can come to the EMAC section. Next podcast.
00:22:48
Speaker
I tried to undo yesterday and it locked up my Emacs and I was like, you know, for a brief second I was like, you know, maybe I'll switch to VS Code.
00:23:04
Speaker
Uh, I think it's something, you know, messed up. It's, it's definitely like, uh, a problem with my config, but you know, no, no, I have that same

Programming Mindset and Emacs

00:23:12
Speaker
problem. I can feel like that. Like I'm telling you one out of like a thousand times, it's only one out of 1000 times undo just stops working. Just doesn't, doesn't work anymore. And I have to like close down emacs started back up and then it'll work for another like thousand times.
00:23:29
Speaker
Yeah, I mean, I can see that you're struggling with EMACs, but you need to understand that EMACs is more like a Buddhist way, like suffering is part of life. So sometimes shit hits the ceiling and then you just accept it. That's taking you to Nirvana, you know? You need to accept the suffering. EMACs is telling you, you have to be intentional with your cord.
00:23:49
Speaker
There is no trial. There is no trial. Undo. Exactly. There's definitely no undo. There is, but it might just, you know, lose all of your work that you just did.
00:24:07
Speaker
I mean, I'm super the thing is that like, I'm still really bought into like the idea of evax of this like programmable interactive environment. Like, it's one of the things that I love about, you know, the idea of closure and enclosure script and this idea of having a programmable environment that I can like also have a decent enough text editor in is like really attractive. But you know, it's just like in practice, sometimes it's a little painful.
00:24:34
Speaker
Oh, I guess let's get into your before closure. And how did you find the light? Yeah, happy to talk about that. I mean, like I said, I, I started programming a long time ago, but I sort of always like bounced around like different languages. And so, you know, I, my my pet
00:24:58
Speaker
The project that I used to always do in like every language that I would try was this was way back in the day, but I would write an IRC bot in

Transition to ClojureScript

00:25:06
Speaker
it. So I've probably written an IRC bot in like at least a dozen different languages just to try it out. But this was
00:25:15
Speaker
IRC, not higher C. That's pre-millennial IRC. Exactly, yeah. Well, I know IRC, but the way he said it, higher C, I was like, oh, well, C sucks. Higher C must realize.
00:25:36
Speaker
That is the language of the priests, next level. Only available to the higher category of society. The fuck is higher C? Oh, man. Okay, so you wrote a higher C bot. Yeah. Yeah. But this was, I didn't encounter closure until I was
00:25:59
Speaker
Um, I had been working in the industry for a few years and I was still, you know, I was writing JavaScript, uh, web applications for a living back then. And, um, this was back in like, you know, there was lots of churn in the language at the time, like ES6 was like this brand new thing that everyone was talking about. And like, I was like, at the time, yeah, it stopped, doesn't it?
00:26:26
Speaker
Well, you know, now we're on the like, yes, 20, whatever it is, you know, yes, 2025. You know, yes, six is like, if you're not supporting that, like, what are you even doing? Which there are plenty of browsers actually that still don't support that, you know, depending on what kind of application you're working on.
00:26:47
Speaker
But I was experimenting with more functional languages. Like the JavaScript features that were coming out were sort of like reported as being better because they were more functional. And I was like, Oh, functional languages. That sounds interesting. And so I tried like Elixir and Erlang and I was into that for a minute. And then I started getting into like OCaml and but, you know, I was bouncing around all these different languages and then, and then I did some experiments with like closure and closure scripts.
00:27:15
Speaker
And then I had this opportunity at that job to, we were starting a greenfield project and I was like, okay, what, you know, I'm, I'm, I'm going to make the business case here for like, uh, you know, something other than JavaScript and Java, which is kind of what our stack had been up until that point. And I was like, what if we could like unify, you know, the two stacks with one language and like, um, and sort of like,
00:27:44
Speaker
you know, politically within that organization, there was this big, there was like a split between like you're a web front end developer or you were a back end developer. And I was like, I want to try and fix that as well. I wanted to try and, you know, meet those minds together and, you know, share resources in that way. And so I pitched, I ended up deciding to pitch closure and closure script as the solution to that.
00:28:12
Speaker
And that's where it went from like something that I kind of played with as a hobby to then okay, now I'm working in closure and closure script full time and and doing it as a hobby and and you know.
00:28:25
Speaker
open source work and all that stuff. So they bought into it, I guess. But what were your, what was your, what was your pitch actually? Cause you know, that's often, well, maybe it's like, it's just awesome works for the people you were talking to, you know, and, you know, and I'm Will, so trust me, I'm an actor, you know, maybe that's enough. But if you've got any more details, that would be also nice. Just in case people still need the bullets, you know? Yeah, I think, um,
00:28:55
Speaker
You know, actually, uh, so Derek, the CTO of the company that I work for right now has a great talk called, um, I think it's titled like, uh, why closure script, um, or something to that effect for the skeptics. Yeah, that's it. That's it. Uh, closure script for the skeptics and that talk actually helped me a ton. Um, I think that, you know, um,
00:29:23
Speaker
there was first, I was very lucky in that like the boss that I had at the time was very willing to give me like autonomy and authority to like make some of these decisions and support me in that to like people outside of our team. So that was huge. And then, you know, the developers on the team, I kind of laid it out, like, listen, we, we've been building, uh,
00:29:50
Speaker
applications using JavaScript and Java for a long time now. We see some of the words there and the things that we're starting to adopt, the best practices that we're adopting are basically what's already in Closure and ClosureScript proper. They come out of the box with all of these tools to support immutability and we also get
00:30:17
Speaker
Um, you know, we, we aren't losing like the ecosystem of libraries that we pull in to like, you know, save labor and stuff like that. Um, so, you know, it, it, it definitely wasn't like, uh, unanimous, like, yeah, let's do it. But people were like, yeah, uh, you know, uh, we trust will and, uh, you know, just making some good arguments here. Like, let's, let's give it a shot. And so I was very lucky in that regard. Just on time.
00:30:47
Speaker
On the timing, was this pre or post shadow? This was post shadow. So that also helped a lot as well, I think. So this was back in like 2017, I think.
00:31:10
Speaker
So it was, uh, you know, we, we went, we definitely adopted shadow CLJS after, you know, I had sort of like tried all of the other things that were out there because for us, we already had a ton of, uh, JavaScript experience. We had libraries that we had built internally that we needed to be able to adopt. And, um, shadow CLJS just made the most sense back then to, to do that. And, uh,
00:31:37
Speaker
And so I haven't really like, I've kind of like found my like little home in, uh, using shadow CLJS as my build tool. Isn't this going to be a big argument? It's not going to be a big argument in your company because you know, they know you have black belt and jiu-jitsu. So you say, okay, you're going to cut it, chop their head off.
00:32:04
Speaker
So I'm interested on, uh, did it work? Because we all know about this, uh, this front end, back end, uh, developer situation, I will say. So like, did it, did it work to unite people? Cause even.
00:32:21
Speaker
You know closure and closure script even though they're the the same language and i'll tell i'll seduce people into closure i'll tell them it's the same language the same thing and then like, you know see the closure script code with like all the uh, all the The hard boys are just

Frontend Development Passion

00:32:37
Speaker
to call. Uh, I don't even know what their it's the official name of not the parentheses the uh brackets brackets It's web brackets and it's
00:32:46
Speaker
The workflow is still very different and thinking in a front end because you kind of have to embrace mutability when you're doing front end to a certain extent, you know, you can't get it in backend. You can really get away with being like, no, no, no, we're not, we're not changing things back here. Um, so did it work? Did it work? And what, and follow up question, what do you consider yourself? Like when your heart, a front end or a backend or a polyglot? Okay. Um,
00:33:16
Speaker
Yeah, I think that organizationally it did do what I said that one of the goals was, which was to allow us to unite the developers front end and back ends. It wasn't just all the language, right? Like this was sort of like a push for us as a team and like other teams were really pushing to like, because before this project, we even had like separate teams for front end and back end.
00:33:47
Speaker
And that was like awful. Um, you know, and so we were, we were really pushing for like, let's have like, you know, vertical integration in our teams. Like, let's have, you know, the front end and back end guy actually talking to each other rather than like, you know, sort of like throwing tickets over the wall or whatever. And, uh, and, and I think it worked out. I think that, you know, that organizational change worked out really well for us.
00:34:14
Speaker
Um, you know, enclosure, enclosure script helped because it sort of helped pitch to the business that like, Hey, you know, uh, you know, uh, Amy over here can like, you know, she's a backend dev, but you know, she can like come in and like work on some of the front end stuff and she's not going to be like jury nose closure. So she can like, you know, mess with the syntax. She doesn't have to set up a whole like new like editor and tool chain and stuff like that. And vice versa, you know, but everyone still had their like specialties. And, and I would say that like,
00:34:45
Speaker
At that company, I was very much growing into being like sort of a full stack, I guess is sort of like the term of art that we use these days, you know, working a lot on the back end and the front end. And, you know, when I joined Emperity, that was the reason that I joined them was because it was really a chance for me to sort of specialize. And so, you know, I've been working
00:35:13
Speaker
I still make changes all across the code base there, but for the most part, my, uh, sort of area of ownership and my specialty is on the front end there. And in your heart, in my heart, I mean, so IRC bots, I would say like going back even further, even further, like, you know, the, the, my first programming,
00:35:39
Speaker
language ever was the game maker language. So it was making, it was a program for making games and I had this drag and drop interface, but I was like, it has a language too. And I was like, you know, 11 and had all the free time in the world. So I learned that. But the problem was, at the time I wasn't very skilled in like,
00:36:03
Speaker
art, you know, like making computer art or like writing stories and stuff like that. So I was like, okay, what other thing can I do? So I made, you know, a butt, like an app, an app, essentially with buttons to launch my favorite applications. And, you know, it made me, it brought me a lot of joy in my heart to make a button that when I clicked it, it did something.
00:36:24
Speaker
And so still to this day, I feel like I have that, uh, you know, feeling of joy in my heart every time I make a button that does something. And so that's why I think in my heart of hearts, I'm a front end developer. Click the button and then console log hello world. I'm like, okay, my work here is done.
00:36:45
Speaker
But what are the languages that you experimented with or played with? Because if it is mostly front-end, it's like CoffeeScript or TypeScript and all this kind of stuff. Yeah, I've done a lot of TypeScript as well. And the one that I was really into before I got into ClosureScript was a language called ReasonML.
00:37:14
Speaker
Yeah, which is like, yeah, it's like a new syntax developed by by Facebook for OCaml that looks more like JavaScript, but still has all the same type system. And then and you know, I was at the time they were coming up with like, okay, you write your code, your static, you know, your statically typed code in using this reasonable syntax, and then you compile it using this compiler called buckle script.
00:37:42
Speaker
And then it comes out as relatively readable JavaScript. And I was really into that. I really enjoyed that for a little while. Now it's been rebranded and changed. Now it's called Rescript, where instead of being two to four separate projects that all work together, now it's one bundle, which is probably better for a developer experience.
00:38:10
Speaker
And, and I considered it at the time as well, like, uh, you know, back, you know, when we were starting that new projects, like, okay, what if we did like OCaml on the backend and you know, buckle scripts compiled, you know, OCaml on the front end. Um, but I, I just didn't see like the, I had,
00:38:33
Speaker
experimented with writing bindings for a few JavaScript libraries in ReasonML, and it was a very painful, arduous process. Even creating
00:38:47
Speaker
sound bindings to JavaScript promises. I was having been dived super deep into these like really complex like type theoretical like constructs to like get there. And I was like, am I going to be able to explain phantom types to like some of my coworkers like to like, you know, to be able to use some of these libraries that I'm trying to bind to probably not like I didn't see like, it just wasn't I didn't see it as very
00:39:18
Speaker
useful. It was very fun. I really enjoyed working within the OCaml type system. There are lots of fun puzzles to pull apart and try and piece together there. But yeah, ultimately, I think it makes more sense for us as an organization to use a dynamic language like closure and closure script.
00:39:39
Speaker
Just on that note, when I've worked with closure and closure script, we've usually had some sort of data representation in the middle, or some business logic in the middle written in like CLJC. Is that something which you went with as well? Is that something you adopted? Because I think it's
00:39:58
Speaker
It started off being pretty, you know, I think it wasn't very well picked up at the beginning, CLJC, but now I think I feel like more and more libraries are starting to do that, and more and more people are starting to get into it, despite some of its warts. You know, are you a fan? Yeah, I try and write, you know, any library that isn't like targeted to a specific platform. So like Helix is still a bunch of it is CLJC, but that's mainly for like,
00:40:28
Speaker
sort of organizationally. I can have macros and functions in the same file that might operate at different times in the compiler tool chain. But other libraries that I've written that aren't targeting a specific platform like JavaScript, I try and write them all in CIC. Because I think that there's a lot of power in being able to use the same tools on the front end and the back end. And at that company,
00:40:57
Speaker
we had a shared data model that we were also building at the same time. And the way of talking front end to back end, the way that we were sharing that was through GraphQL. So we had a GraphQL service that
00:41:18
Speaker
was sort of like, here's everything that you would need to know about a user and their accounts and all that stuff. And so you could talk to that via the front ends or via some other service. And that worked okay, but again, kind of going back to like being constrained by the type system, I felt very constrained by the GraphQL type system. And so I, you know,
00:41:45
Speaker
That made a lot of sense for us because we had JavaScript clients that weren't built in Closure Scripts that were starting to adopt that as well. But I think that if we were all Closure and all Closure Script, something in CLJC or something that used Eden as the transport would make a lot more sense to handle that shared business logic and shared representation of, again, who a user is, their account information, stuff like that.
00:42:15
Speaker
Nice thing. Before we switch to the next topic, I think we need to address the emergency kitten in the podcast now. We have a special guest. What's his name? It's a her. She is. Oh, sorry. Yeah. Come on. What is the cat's pronouns? I think, I think, I think, you know, fair enough. Yes. This is a, this is pretty girl, pretty lady. What's her name?
00:42:43
Speaker
Pretty girl, pretty lady. Oh, okay. I thought you were just describing me right now. I mean, it's a self-describing name. She's a pretty girl. She's a pretty lady. She had another name once, but I haven't used it since I got her. When I got her, I named her Luna because I really liked that. I've watched it since then, that anime Sailor Moon. When I was younger, I was just obsessed with it.
00:43:12
Speaker
And Luna is the cat in that. And yeah, I watched it as adult. I'm like, oh, oh, these are not great values for a child to make up. Okay. Scratch that. Scratch. So yeah, I got her and she's just the prettiest lady. Nice. I think we have one more.
00:43:37
Speaker
I was expecting just one more guest, but then, you know, now we have even better guests, you know. But you've got your dog in the fucking background. Come on. Let's do a round of pets, Border Collie, right? Yes, he's a Border Collie. His name is Bowry Kwalbeger. That's his name, but what's his real name? Oh, well, it's a short. The short version is Bowie. Bowie. Bowie. I've been told it's like David Bowie, apparently. I didn't know who that guy is.
00:44:07
Speaker
Oh, you've got to watch Labyrinth. You'll get it. OK. No clue. But every time I take him on a walk or some old people, they ask, what is the name? And then David Bowie. And they're like, let's dance. I'm like, OK. I don't know what let's dance is. Cool, I guess. But actually, he's not named after the music guy. He's named after a character and he cycled out to the galaxy.
00:44:31
Speaker
which is a bit of everything. He's the weird immortal guy who doesn't die. He gets bored. So he decides to insult every being in the universe individually, alphabetically. So that's his mission. So that's my dog.
00:44:50
Speaker
I have a reject library. One day I'll turn it into something that does something, but I still have the GitHub repo just because the name heart of gold is a really good one of these days, something, something, I don't know. It's going to be a closure script library of some sort that doesn't do what everybody else's closure script libraries already do. Yeah, because it's going to have the infinite in probability drive.
00:45:15
Speaker
Anyway. Okay. Let's not make this HIGGARD guide to the Galaxy podcast. I think, I know, I know Ray has way more software-y dog. Software. Software related dog. Oh, software. Oh yeah. Well, service related, please. Yeah. Yeah. He's called Eula. Which is like a end user licensing agreement. You know, we argued a lot about the name, but in the end we just, you know, and the dog, but in the end we just accepted it. So.
00:45:46
Speaker
And it's complicated. We don't know what's going on there, you know? There's a lot of small things. Just scroll up and then say, accept, move on. You should have named it cookie. Yeah, it keeps on getting updates, but you know.
00:46:05
Speaker
I personally do not own any pets. I managed to... I thought about it a lot. I thought I was going to get a dog at some point during the pandemic, but... Oh, so good you didn't get a COVID puppy. Think about all the horrible COVID puppies that are... Hey, my other... We'll be both on COVID puppies maybe. Exactly, yeah. Other people in my life got COVID puppies, so I get to have the benefit of hanging out with them and playing with them, and then I get to eventually they go away.
00:46:34
Speaker
It's different because, you know, we're never going to have to go back to the office, though, like they're OK. Yeah, that's true. That's true. Y'all remember before Covey, it was like not remote work, was it? But now it's just like nobody will ever make a pro framer, never pay for office space. Yeah.
00:46:51
Speaker
Because I already changed my job to fully remote, so after getting the dog. So my life is basically being his assistant and his chauffeur driving him around. Border collies are, I used to have a border collie. Border collies are, you got to entertain them. Yeah, yeah, yeah. He's, he's fun. But well, I was thinking, asking about pets. You're going to say, Oh, my Neopet is still alive. You know, I was expecting. I have no idea.
00:47:17
Speaker
I have no idea. Yeah, exactly.

Helix Library Development

00:47:21
Speaker
Do Neopets die? That would be pretty dark for a children's game. Maybe they do. Well, let's look into it. Where's the server? Yeah, maybe. This pet can be rescued. Got to get a hacker in to do it. Oh my God, Mr. Roboto would do that to the animals in Sonic.
00:47:46
Speaker
Any who, so I think we had, we had music segment. We had, you know, martial arts segment. We had a little bit of closure somewhere nearby and then we have pet segment. And then I think we should sneak back in a little bit into closure thing.
00:48:01
Speaker
because you said you're primarily front-end and you've been building front-end stuff in ClosureScript. So what is your stack? Is it reframe or is it something that you built yourself? You wouldn't do that. No, come on. No one's going to do that.
00:48:17
Speaker
Y'all didn't even listen to the talk that he so kindly linked to us. Yes, I watched it. I was at the gym on the treadmill listening to your talk, just so you know. People were giving me looks like, wow, that's usually a masochist. Preparing for podcasts is not bad. This talk was not bad. Come on, Jordan. VJ is just a master of transitions and leading questions. He's teaming me up.
00:48:47
Speaker
no i'm not i'm not leading i'm not leading with questions i have no fucking clue i don't do any preparation as you can see for the podcast so all the questions i'm asking who i was at the beginning of the podcast and who's this bloke with the beard you know that's why well i guess we cannot assume we shouldn't assume our listeners have watched the talk so i guess yes we'll take it away will we exactly listeners and me
00:49:15
Speaker
Yeah, I think I've spent the majority of my time building UIs and ClosureScript using reagents and reframe. In the last year, a little over a year, I've started to adopt this library that I created called Helix, which is a much thinner library around React. Because React came out
00:49:45
Speaker
around that time with this feature called React hooks, which is like a very reagent like API for managing state. It's very similar to like the API that reagent provides. And, you know, you can build your components as functions and all that. So you don't have to mess with like classes and, you know, it's a little less object oriented. And I was like, Oh, well, I could use that instead. And so yeah,
00:50:15
Speaker
Thus, Helix was born TLDR there. But, yeah, and we started to.
00:50:23
Speaker
How is Helix different from React? How is it different from Reagent or Reframe and other sorts of approaches? Because we had a wave of React-based or not React-based. I mean, things that are built on top of React to make easier for ClioScript, for starting from Om, Omnext, Rum, I don't know, Quizient or whatever. There's like many flavors came out. And then finally Reframe became the dominant thing that people are using these days, Reframe plus Reagent.
00:50:51
Speaker
Now it's sacrilegious to say, no, we're not using reframe anymore on the front end. So how is it? How is it different? Sacrilegious, wow. I just wanted to use the word. I don't know what that means. It's a really good question. I tell you, it's so tawny. Yes, I've fallen a long ways from my high RC to my higher C to now sacrilegious.
00:51:21
Speaker
Yeah, but no, I think I think that You know when I was building you eyes using reagent and reframe There were some things that I found frustrating there were some Decisions that were sort of like made for me in there that I was like, what if I can try like other stuff? So, you know helix is a
00:51:45
Speaker
really like, let's take out some of those features. It has less features than reagent and reframe. I think that that's important to communicate because Helix is really like, how can we provide the best interface to like stock react? You know, those other libraries that you mentioned, like Om and Omex and Quiescent and Fulgro, they provide a bunch of stuff that, you know, out of the box for you to like,
00:52:12
Speaker
and generally opinions on like, here's how you should structure your application. Here's how you should manage the concerns of routing and other kinds of states. Helix doesn't have any of that. It's just like, how can I bind to React in a way that feels nice for Closure Script developers?
00:52:34
Speaker
And then, uh, you know, the idea is that then that leaves more room for experimentation and things like libraries to manage like data fetching or, or navigation or other things like that. So you actually did the proper thing and made a library, not a framework. Uh, I mean, in a way, like, I mean, react itself is like its own like framework, like react has a lot of stuff that it wants to manage for you. And if you want to manage it outside of react,
00:53:04
Speaker
there's like trade-offs to that. And so that was the reason that like, you know, with reagents, uh, you know, managing all of your state in like an atom that lives outside of the component tree, uh, was a decision that was made for me by reagent and it made, and I was like, uh, you know, well, what if I want to use like local component state, truly like, you know, the, the react feature of that, um, it was really difficult and reagent. Um, and so,
00:53:34
Speaker
Yeah, I think that the, I was trying to, React already has a lot of ideas that are in its core, that are core to closure. And so I was like, well, what if I just ran with that rather than trying to build something on top of it?
00:53:51
Speaker
So, so is there a way to, to, to mix helix and reagent? Like if you just, let's just say you happen to have a couple of big old production apps that are reagent and reframe and you wanted to like, like, like just like dip your toe in like, what's up with this helix stuff? Because it's, uh, as someone who's kind of made a career out of reagent and reframe now I'm now expanding the portfolio.
00:54:19
Speaker
I do, you start to see the cracks, I guess. And then it's like- Reagent reframe regret. First you see through the reframe thing, you're like, wait, reframe is just reagent with state manage. It's just like predefined state management for reagent. Why am I not just using reagent? And then use reagent, you're like, why am I not just using react? Oh, wait.
00:54:46
Speaker
That's why. Uh, so is that, I guess like, I get back to the question. Um, like, is there a way to like dip, dip your toe in and see, see what's up with Helix, but not just like, you know, make the decision, just like flip your application upside down. Let's create a new branch, remove reframe and reagent and then add the dependency and then get started. Uh, yeah, there's definitely a way that,
00:55:14
Speaker
So that's the reality that we are in at Comparity right now. We have this very large, tens of thousands of lines of code, one of the largest screen frame applications that I've worked on. How long is the event screen space? I mean, luckily we split those out long ago, but yeah, there's a lot of events, a lot of subscriptions, a lot of code that we've written using those tools.
00:55:42
Speaker
Um, you know, when we started to adopt Helix, we didn't want to have to go like rewrite everything from scratch. Um, you know, reagent actually is like very, you can kind of separate reagent into like, it's almost two different libraries. Um, one is the binding to react. And so it's like.
00:56:05
Speaker
you know, taking like the hiccup data structures that you're right, the vectors and maps and keywords and stuff and converting those into React components or React elements and then rendering them. And then there's this other part of the application that's like all of the like reactive atom stuff. And so the way that we...
00:56:30
Speaker
Yeah, exactly. Nobody can see my air quotes. I air quoted the state management because just in relation to your talk, what about state management? You're like, ah, you're tired. What even is state management? What is that? I would ask anyone. I think what the fuck is state management to be to court you properly?
00:56:55
Speaker
I think you cleaned it up but you know otherwise get done and dirty again. We'll translate the statements more palatable to deaf and audience now because they don't understand the normal dialect. You're right I gotta I gotta shake loose a little bit I gotta like I can this is a safe space I can say what I feel. Nobody loses in this crap man so don't worry.
00:57:19
Speaker
Yeah. So like what the fuck is state management? And we can get into that, but I want to answer your question first about like, you know, can you use reagent and helix? And the answer is yes. Absolutely. Yes. You know, you can reagent is actually like very permissible and that like, if you just sort of plop a react element inside of your hiccup, it just works. So like, if you render a reframe or a reframe, a helix component in the middle of your hiccup,
00:57:48
Speaker
then it'll just work. And then likewise, you know, I haven't gotten around to like open sourcing this yet, but you know, you can write a pretty small sort of like translation layer between the reactive atoms that Regent has and two react hooks. So like, you know, at work we have a like, you know, use reaction hook
00:58:16
Speaker
that, uh, you can just pass it like any, uh, radum or reframe subscription or anything. And it'll just, you know, re-render your, your Helix component based on like any state changes there. Oh, so that's the answer. Cause I've been trying to figure out how to, how to get in, I've been procrastinating, getting in on that, like react hooks, I've been procrastinate. I'm like, Oh, I guess this is really a, really a thing I had to learn now. Okay. So Helix is the, is the can be, can be a key to that. Is it what I'm hearing?
00:58:44
Speaker
Yeah, that was kind of the original goal with Helix was I wanted to experiment with React hooks and see what it was like to create a binding to React that allowed me to just use React hooks for state management. And so Helix was sort of that. I will say that we did, to talk a little bit more about the experience of
00:59:10
Speaker
uh, you know, mixing reframe, reagent and helix. We did at first try and be like, okay, we're only going to use hooks for state management. We're not going to use, we're going to like, you know, totally disregard reframe and reagent totally. And, and we found that that was actually like not the best way to go about it. It became like,
00:59:34
Speaker
There's a reason that reframe and other solutions similar to it exist, which is managing things like data fetching and stuff that with data that sort of exists outside of the life cycle of a component, it becomes really difficult to manage that just in local component state. And so having a way of managing those outside of the componentry is important.
00:59:59
Speaker
And so we still use reframe for things like data fetching and navigation and other stuff like that in our application today. But we find that a lot of sort of like the core work of like building user interfaces that like when you click the button, something happens. That can be done mostly with Helix and local component state.
01:00:25
Speaker
So for people like me, explain the don't fucking idiot sort of thing. What is this React hook that you're talking about? Yeah, I think if people are familiar with Reagent, then
01:00:48
Speaker
you know, region allows you to create like atoms at sort of like construction. See, you know, there's like the form two components as the term that they use. And so you can create like local atoms that then will re-render your component every time they change within the body of your component, wherever they're de-referenced. And React hooks is like a very mechanically similar API for doing that. So instead of,
01:01:18
Speaker
Like before the React hooks feature came out, if you wanted to manage some state inside of your components, you had to use a class. So you had to construct a class that extended the React component class. And then you would call like this dot set state and you know, a method inside of your event handlers and all that. And it is very clunky. It was hard to like compose behaviors. So if you had, you know, components that all like,
01:01:47
Speaker
you know, had some like, I don't know, some behavior that had like both state and side effects and everything. It was like hard to like pull that out of the component and share that across components code wise. And so React hooks is something that like you can just write your component as a function that returns React elements. And then inside of the body of the component, you can call another function
01:02:15
Speaker
called useState, which will then return you a tuple of the current state and a function to change that state. And it's stable over re-renders. So you don't have to set stuff up in the constructor of a class. You just call this function inside of the body of your component and then use the values that it returns to read the state and set the state.
01:02:40
Speaker
Okay. So this is, how did the name Helix come from? What's up with the name? Is it something like a, what is it again? The manifesto level stuff or some punk rock thing? Because the only Helix thing that I know is that, you know, some of the people who wanted to understand DNA thing, they were sleeping and then they dreamt about the structure, the scientists. Did you dream about this helical structure in the court somewhere?
01:03:09
Speaker
No, no, it actually so helix actually started like the sort of the fundamental parts like the bits and pieces that are there today grew out of another library that I had written called Ajax. And Ajax was a library for parsing hiccup.
01:03:35
Speaker
into React elements. And so like that name was sort of like, I don't know, like a hiccup transformation. I was going for something there, like HX just, I don't know. The letter X is cool, I guess. Okay, follow up question. Tell me about the name Lilac Town. Lilac Town. It is an anagram of my name. So willactin.
01:03:58
Speaker
is is you know if you shuffle the letters around okay you shut the fuck up you clever cat you well there's no there's no w in it there is oh damn what there is how do you spell town yeah and he's the english guy in this podcast if you're listening cut this out okay
01:04:23
Speaker
No, keep that in. People need to know that to raise English is before W was introduced into English language. I don't know. His English is from Germanic, nomadic sort of days. Free www, you know, I didn't know. Not everyone is good at like visualizing, you know, the way that words are like that. Thank you, Will.
01:04:49
Speaker
He's just ensuring there's no way to cut this out. We don't cut anything out. So what about the octopus though?
01:05:02
Speaker
the octopus. I don't know. I just like that. You have like a little like mirror guy like next to it. I thought it was related. I'm not like, what is this cult? Can I join? I really like purple lavender lavender city, like lavender road or something. Laughter lane. Yeah. I like Tom lavender lane. Nice. So, um,
01:05:28
Speaker
So you said there are obviously Helix is open source thing, right? People can use it and then they need to just remove reframe and reagent and then replace everything with Helix. That's what you said.
01:05:44
Speaker
Yeah, I don't I don't paraphrase anything man and I'm here to just deliver the delivered the guests, you know, there is a certain sense of plug ability so you can easily introduce helix. So this part is complete open source and you said there are a couple of things that are you're still working on and what is the plan like.
01:06:04
Speaker
Do you, do you want to, is it, is it like some of those closure libraries where they're finished? Well, they're complete, not finished, you know, they're complete. Um, is Helix is a complete, um, library that you can use to build things or there are more things that are coming from lilac town. And HX is complete. Same question. HX. I know the answer, but I read your blog. Go on.
01:06:29
Speaker
Yeah, you know, I'm kind of done working on Ajax I Yeah, I just don't have a lot of interest in it. There's still some people that use it and I've been Someone a while ago talked to me about like taking it over and I I didn't respond and I feel bad about that still because I
01:06:54
Speaker
I don't know, I'm like in and out of like, sometimes I'm just like, I can't even look at a computer after I'm done with work. So, you know, so I apologize for people that reach out to me on like, closure in Slack, I do appreciate the messages. And I would I do think that the people that are still using that library, you know, they should be able to like,
01:07:16
Speaker
Fix some of the bugs that are in there and split that but it's not something that I use every day So it's a little bit harder for me to like find all those rough edges and spend the time fixing them But with helix, there's definitely still some things that I want to do before I call it done There's just some like there's some decisions that I made early on about like like little little decisions little details of the library that I'm like I wish I could fix that and
01:07:43
Speaker
Um, like the way that it converts like the props that you write, uh, that you're passing into your component, uh, the way that it rewrites those from like, uh, it tries to be smart, which is always like a dumb thing to do. Right. Like it tries to detect like, when should it like, you know, convert your props from kebab case to camel case and like, you know, some other stuff like that, that it just turns out like, isn't true in all scenarios. And it's like frustrating to try and like work around when it's.
01:08:12
Speaker
trying to be smart for you and it's actually being really dumb. And so I'd like to kind of like rip that part out and provide it as like its own macro or function that you can adopt when you know you need it. And then some like some other like kind of rearranging. The big thing that I think that Felix provides other than just like, you know, an API for React is also
01:08:39
Speaker
The more experimental features that I've been working on are doing static analysis for your components. We've been talking about React hooks. There are all these rules about how you can use hooks. You can't use them inside of conditionals or loops. And that's something that
01:09:00
Speaker
Uh, react, you know, has like extensive documentation for, and in the JavaScript community, there are like linters and things that will check that for you. Um, and so recently I shipped a version of Helix that will check that at compile time to ensure that you're not calling a hook inside of a. A loop or conditional or, or other things that would break those rules and cause like bugs or things to fail in production. And, and I think that, uh, I kind of want to keep like leaning into that where.
01:09:28
Speaker
you know, less runtime stuff, less like trying to build like, you know, state management teachers or other things inside of helix, but rather like, how can we make the developer experience for someone who's building user interfaces, like really, really good and provide a base for those other solutions to be pulled in as libraries.
01:09:47
Speaker
Nice. So is there a way for people to contribute to this vision that you have right now? Is it something that people can go to GitHub and then poke you when you're off the computer, call you, and send you snail mail? Oh, feature toggle. Looking forward to that feature toggle. Is that in there and yet? Well, it was actually that feature of analyzing your component and telling you when you're breaking the rules.
01:10:16
Speaker
That was behind a feature flag for like, I don't know, eight months or something like that. And I recently, the most recent version has it turned on by default. So, you know, if people are using it and they're getting errors when they think they shouldn't, please open a bug report. But, you know, I've been using it for a while. Yeah. Or a PR. Yeah. Nothing worse than getting a bug report without a PR.
01:10:46
Speaker
Stop complaining. I have to do the work. No, it's actually really funny. So Dominic was on the podcast, like, yes, I don't know, maybe last episode or like a few episodes ago. Yeah.
01:10:59
Speaker
And he was talking about how he tries to get other people to do the work of fixing bugs and stuff like that. I was like, that's what he's trying to do. That's why he keeps reporting these bugs. And then I'm like, great. I see that you already know what's wrong and how to fix it. Open up PR for me, please. And he's like, oh, yeah, maybe I will. Like, maybe I will. No. Yeah, he's been
01:11:29
Speaker
He actually found a bug in the like hooks rule detection recently when you're trying to use hooks inside of JavaScript values and he did. He did open up a request, so thank you Dominic if you're listening, but.
01:11:45
Speaker
But still I feel like we're in like a stalemate because I'm like, ah, I really like, I want to get as much work out of, you know, people who are using my library as possible. And he's like, I want to, you know, get as much work, will at least here as possible. And, uh, what you were battling. No, no. Uh, he just has contributed a few times to, to heal. Okay. I thought you said you worked with him and I was,
01:12:13
Speaker
I'm pretty sure I'll remind him to listen to the episode so he knows. We know his tricks now.
01:12:23
Speaker
I think people need to subscribe to your GitHub issues to see the back and forth between you and him. No, you fix it. It's your library. You fix it. A lot of it happens in the Helix Closurians channel. Oh, so it disappears. Yeah, he'll come in and he'll write this super detailed analysis of what's not working.
01:12:47
Speaker
And he dives into the source code. And he's like, I think this is the part that's not working correctly. And here's, I think, how we could fix it. And I'm like, Dominic, that's wonderful. Thank you so much for all that. Will you open a PR for me? And he's like, no. He's giving you the line numbers and column numbers and what needs to be chosen. And I'm going to type all the things that you're supposed to do.
01:13:11
Speaker
I can't even hate because I've totally done that before. I'm just throwing shade at him. I mean, there is work that is involved in creating actual production ready pull requests and ensuring that it passes all of my style, stylistic things. His diagnosis alone is worth a lot to me, so I appreciate it.
01:13:36
Speaker
You can enforce rules. You can be very... Oh, what's that? CLJS style? What are the ones that... Okay. There's CLJ Condo, which is so polite and so nice. It's like, hey, by the way, this isn't great style, but no big deal. It's all right. And then some people are like, well, why doesn't CLJ Condo go fix it? I don't want it fixing it. Maybe I want it to be bad code. What do you know about me? I know the do is needless. Say less. I get it.
01:14:04
Speaker
We like scum by coding, you know. But that's an open source project I was involved in for just like a glimmer in time was the Athens project. Yes. But open source ROM research thing. Yes. Yep. Yep. Yep. That's the note, the note taking tool kid community. And
01:14:29
Speaker
Jeff Tang had all sorts like, I will say if anybody needs just a CLGS repo, which is like the kitchen sink. I mean, we got everything set up like he's got, he got everything is he uses that like data script, dev cards, CLGS style, uh, like doing all the bells and whistles to like try and I don't want to say control, but like all the bells and whistles of a CLGS app. They got it. Okay. I kind of think some go on.
01:15:00
Speaker
I think that can serve as an example, like how to use some library. You just go to Athens Research and then just see the code there. It will serve as a nice documentation for everything. I don't know if you know, there is a programming system called OZ. It's probably some sort of research thingy. They have every possible paradigm built into the language, like everything.
01:15:24
Speaker
from the imperative shift to structural things, to object-orientedness, to functional things, and then message-passing every fucking thing into one language. I'm like, okay, this is the only language that I need to learn. And that is not the mission of Scala as well. No, Scala is halfway there.
01:15:43
Speaker
I should know some more about Scott because people tell me, oh, functional like other. It's so weird talking to other devs that aren't like so deep in this, this, this, this area because they're like, you're like, oh, like functional programming. Like, oh, yeah, I've done Scala. I'm like.
01:16:03
Speaker
You're like, no way. That's not, that's not financial programming. I just kind of nod as well. Cause I don't know enough about it to like, like fight about it. That's a lot of things. I talk way too much for someone who does not know enough.
01:16:22
Speaker
Anyway, let's get back to Will, come on. I'm thinking, if you zoom out a little bit now, because if you spent enough time in Clojure, ClojureScript, in our building library, interacting with the community,
01:16:37
Speaker
Apparently, you spoke on YouTube thingy that I don't know about, but I'm sure. I'm curious about your view on Closure in general, Closure and Closure Script, because you also worked with OCaml a little bit to reason

Growing Adoption of Clojure

01:16:56
Speaker
So there are like typing things there and then you come to Closure. JavaScript is like a Wild West sort of shit for typing. How do you see the Closure ecosystem on Closure Community? What do you like and what you kind of put up with? Reagent is what I used to put up with. Not anymore. Not anymore.
01:17:21
Speaker
I mean, I still do. I still write reagent code every day and probably will for the foreseeable future. And I think that closure and closure scripts, it's been very interesting because I think that talking less about the programming paradigm and more about
01:17:47
Speaker
What do I see other people using it for? What do I, what do I see like out in the, you know, rest of the industry? I mean, there's lots of companies that are, uh, being built in closure, enclosure script right now that, you know, have been building, uh, enclosure, enclosure scripts kind of like almost stealth, uh, you know, for years now. And, um, so I think that, you know, from a professional standpoint, like.
01:18:11
Speaker
it seems like there's a big market for people who are experienced enclosure scripts and can kind of carve out a niche there. I think that when it comes to building products in enclosure scripts, I think that the things that
01:18:39
Speaker
are really, I miss every time I go and try out another language are things like Eden, like having a like transport like, uh, cause like Eden is like what we write code in, in closure, but it's also like a wire transport, like a wire, uh, a way of communicating about data between like different services or between the front end and back end. And that's like super powerful.
01:19:05
Speaker
that like the only other really mainstream language that we have going on in is JavaScript. And, you know, JSON is not a very rich language for doing that kind of stuff, even has like a ton of benefits over JSON. And so, you know, that's the thing that I think I really, that's one thing that I really miss, you know, trying to use other languages to build products. And then, but there's still like,
01:19:36
Speaker
One of the things that I think is tricky in Clojure is there's all these best practices that have been developed in other languages that we often bring into Clojure that those best practices were developed within the context of C++ or Java or TypeScript or whatever.
01:20:05
Speaker
So they have mechanical sympathies with a type system or other ways of structuring code that are specific to that language. And when you bring them into a dynamic language like Clojure, they tend to fall apart at scale in my experience. Honestly, I don't know if React wasn't such a
01:20:28
Speaker
a behemoth of just mindshare and the millions of dollars of R&D and development that has gone into making it as hardened as it is. It basically serves as a universal runtime for user interfaces. But React also grew up in this context of Facebook building user interfaces that
01:20:55
Speaker
they use a type system, they use flow or a lot of people in the industry are adopting TypeScript now because like the way that you write components and construct elements out of them, there's a lot of mechanical sympathy between the way that you write the code and having a type system to check that you're passing in all of these props and stuff to them correctly. And so there's,
01:21:24
Speaker
What am I rambling about? What I'm saying is that I think that there's a lot of room for experimentation and closure and closure scripts there. And I think that the more companies that are actually investing dollars into the development of closure and closure scripts, there are the more that we're gonna see that kind of innovation come out of. What's a solution that really works well in a dynamic language like closure as something that I'm interested in seeing?
01:21:51
Speaker
Let me ask you, as far as what are your views on spec, Mali, all of the, I'll just say spec-like things that are kind of, there's this argument of it can be better than a type system if you just use it the right way. What are your thoughts on that? Do you have one of those that you subscribe to, having worked with typed systems as much as,
01:22:20
Speaker
I think that we use spec a lot. I've used spec a lot more for defining the domain that we're working in. So when we have a new domain entity, the first thing that we do is we write specs for the attributes that they have and the shape that it has. And I find that very useful
01:22:46
Speaker
um, mainly from a documentation standpoint of being able to go and look at like, you know, entity.core and see like, okay, here's all the attributes that may or may not show up inside of this entity. Um, but when it comes to sort of like, uh, you know, validation of more stuff that like, I'm, I kind of think about it as like, there's sort of two,
01:23:13
Speaker
two hats that you might be wearing when you're working within a product one is the like. The sort of product engineer which is like i'm going in and i'm trying to build a part of the system that does something so i'm trying to.
01:23:32
Speaker
you know, make a button that when you click it, it like, you know, adds a thing to your cart or, or, uh, you know, kicks off some backend process or whatever. And it's, it's using these, uh, domain entities to like, you know, do, do all of that, but you're not really in the business of defining those. And, uh, and so I find that spec is not super useful in that, in that when I'm wearing that hat, because like,
01:24:01
Speaker
If my user interface is in charge of running those specs and using it to validate these entities that I'm either constructing or consuming, a lot of times when I'm doing UI development, those are hot paths that if a spec validation takes 20 milliseconds to validate this deep data structure that I'm generating or consuming, then I just blew my frame
01:24:31
Speaker
allotment, right? It's a very tight like you essentially have like about 16 milliseconds before you you start to see the user interface degrade in performance. And so I really want to be intentional about like, how I use that. And so doing a bunch of spec validation inside of the user interface, like, you know, when things are being passed into components or whatnot is not
01:25:00
Speaker
in my experience, something that is like good for the user's experience. You do what I call the poor man spec. And I just have been right. I had just write the fuck out of doc strings. I know it doesn't count as any sort of catching, but I mean, hey, all it takes is this thing takes this and outputs this and I hope you're using a rebel.
01:25:23
Speaker
Yeah. Well, I mean, the other thing is that specs can, well, if you do it right, you can have instrumentation for your specs that is turned on when you want it turned on and turned off when you don't want it turned on, you know, you can have instrument, the new word, instrument,
01:25:42
Speaker
A musical instrument. Keep your spec on when you're in development, but then not on production? Is that what- That's what it's meant for. To be honest, I think it's-
01:25:56
Speaker
maybe we'll have to work on this, but I know it's a lot of work for relatively small gains, I think. I like these libraries where the specs are inside of the deafens rather than sort of, you know, like if F-deafs and they're all, it's sort of like that becomes tedious and annoying to write all these externalized things.
01:26:21
Speaker
So I like orchestra, for example, that's a good library where you get these things inside of your, um, inside of your deafens. And then you can, yeah, you can turn instrumentation on and off as you wish per namespace or whatever. So that's pretty good. Um, sorry. Well, yeah. Yeah. I was just going to say like at the times that I've, uh, you know, played with stuff like that, um, you know, I've ran, I'd still ran into like,
01:26:48
Speaker
you know, oh man, I just passed in this like really deep data structure that like has all these specs and it like, you know, it, it's not impacting the user experience, but now it's impacting the developer experience and that like, you know, it has to, um, it's, or it's still impacting the developer experience where now I'm having to like sit there and wait for like a second or two while it checks my spec to make sure that, you know, the data is valid. Um, and so I think that, you know, using spec at like,
01:27:15
Speaker
the edges of your system, you know, like when, when you're sending data or when you receive it on the back end, for instance, and then before you send it to the front end, those work really well. And I, I haven't used Mali, but I imagine that, you know, same thing there.
01:27:31
Speaker
But like speccing components is something that I've played with a bit, I've experimented with it, and it's been really difficult. So that's kind of where I was talking about like the two hats. Like one is sort of like the product engineer where like I'm building, you know, user interface or parts of the system that's like going to do work. And I find spec less useful for that. And then, but then there's like the more, I guess, architect hat.
01:27:57
Speaker
that I might put on where I'm like, okay, what's my domain entities? How do I, how do I provide documentation and validation and parsing for these that people can use like sort of at the edges of their programs? And, uh, and that's where I think that like spec and Maui and other libraries like, like that really shine. So to, I think, um, I got to ask you about your, um,

Skepticism About Dart and Flutter

01:28:21
Speaker
Close the script on a lot of all these things. Now, are you keeping an eye on Dart, Flutter, way of building front end? And what do you think about it? Because I know Kristoff Grown, and then I think somebody, they're building like a Dart.
01:28:36
Speaker
integration with Closure Script, something like that. It's only a couple of tweets. I vaguely remember what they were doing. I dig deeper into that one. So what's your U1 like Flutter and then Dart as a language? And how that is going to change the way that you're building the UI? Because the declarative UI seems to be a big deal if you see SwiftUI and all these things are picking up that direction. Yeah, I haven't experimented with Dart yet or Flutter.
01:29:04
Speaker
I think that they're really interesting. A lot of it is just like, you know, um, I think that the, the, the closure dart project is exciting to me because it means that I'll be able to like probably have it, uh, it'll be an easier jumping off point into like experimenting with that. Then like, okay, I gotta install like all these IDs and like, uh, you know, understand like dart the syntax and like, you know, my, my brain is too full of other things right now to like, you know, think about that stuff. So.
01:29:35
Speaker
But I think that it's really, there's still a part of me that is suspicious of whether Google will continue to fund Dart and Flutter, right? Like there's a whole like, you know, killed by Google. Like, I think that that's really what it's about. Is that, you know, like,
01:30:00
Speaker
targeting I like native like truly like the native API's of iOS and Android. It's a moving target. It's and that can be really frustrating. But you know that like, unless people stop using iPhones, this is still going to be like, you know, a reasonable way of writing my application. Same thing with the web, right? Like web browsers are not going it
01:30:22
Speaker
away, there's so much value captured in the home. Yeah, exactly. But there's always going to be, for the foreseeable future, building user interfaces for web browsers is going to be a great way of providing an experience for people that they can use. With Flutter, I'm still just a little nervous that
01:30:50
Speaker
maybe it's maybe it's not this year, maybe it's not next year, but like three years, five years down the road, you know, there might be like a reorg in Google and then suddenly like it's without funding and you know, then, uh, and, and the way that they're, the way that they're doing it is, um, you know, for, for listeners that aren't familiar with it, like Flutter is like a complete re-implementation of the platforms, uh, like, you know, UI constructs. So instead of like binding to,
01:31:19
Speaker
like, uh, you know, Coco or Swift UI or something like that. Um, you know, they're, they're drawing all of this stuff on a, on a canvas and it's, and they're trying to get to do their best to get like this, the same, uh, UI and behavior. It's like the AWT in Java again, you know, like back to level. Yeah. Yeah. And so that's like just incredibly labor intensive and it's based on like,
01:31:46
Speaker
Uh, you know, is there going to continue to be funding for that to ensure that they, you know, keep parity with, uh, you know, the way that the platforms behave and look. Yeah. Yeah. So that's my like sort of, you know, uh, critical pointing a critical eye and dark and flutter. But I also think that, uh, you know, targeting it is, uh, with a closure, um, you know, dialect is also like a really great plan because it
01:32:15
Speaker
very well could be that this provides a way of getting native performance on devices other than servers and desktops. So that sounds really cool. So what camp do you land in? SPA? I know you like SKA. No. I didn't open that video. Come on. OK. I know you like. So single page articulation.
01:32:45
Speaker
That is a bit of a, yeah, sorry. Oh, no, okay, okay, refocus, refocus. Single page application or native app is, you know, your perfect word. What do you, what do you, pros, cons, likes, thoughts? Yeah, this is why I'm like a terrible thought leader is because like I'm always gonna come in with a, and it depends and I'm gonna add more ambiguity to the situation rather than be like, this is the way. Oh, I don't know the way.
01:33:16
Speaker
I do think that it's going to depend on what you're trying to do, what your funding is, all that stuff. I do really like native applications. I like the way that they behave, especially if I'm interacting with it on a smartphone.
01:33:40
Speaker
you know, offline support and other things that, you know, even if you're using it on a desktop, like those are things that are really hard to build on into a web application. There are people that do that. And, uh, but it's a ton of labor and it's, uh, easier to do that with a desktop application in my experience. Um, but you know, the reach of web applications is just like, you know, hard to beat. And so, you know, when you're, uh,
01:34:10
Speaker
when you're looking at it, it really is more tied to like, how are people paying for this, right? If you're paying for a service that, you know, you're, you know, you pay monthly to like access some service, then like, a web application is probably going to make more sense for me, the user and for the business to use, right?
01:34:32
Speaker
But if it's something that I buy as a one-time transaction and then I have this application for until my computer dies or whatever, then I think that a native application, it makes more sense from a funding perspective. So that's my very medium take.
01:34:56
Speaker
It's problematic. It makes sense. So I think we are almost reaching 90 minutes before we continue to punk rock again, punk reggae rock thing. You got it, see? Scott, you got it. See? Yeah, exactly. I just need to know the terms and then, you know.
01:35:20
Speaker
So now I can say, oh, I know punk rock thing. I think it's one of those, what is it again? Manifesto stuff. And then everybody thinks I'm hip now. No, you could fall into some weird corners of punk though, if you start talking about manifestos.
01:35:39
Speaker
I have no clue. But any things that we missed, Will, from your experience, or did we touch up all the topics, or we have to do episode two with you again? Obviously,

Podcast Guest Challenges

01:35:56
Speaker
we have to. I mean, I'd always be.
01:35:58
Speaker
I'd always be happy to come on and talk about, I'll definitely pick a different shirt next time. No, you can't anymore because, you know. Okay. Don't be greedy, Vijay. You can't have episode two. Give some to Lawson Lambdas. Okay. I got a baby podcast. Okay.
01:36:27
Speaker
We are cross-posting this, come on. Exactly. We're like Disney plus empire now, you know, in the closure podcast world.
01:36:39
Speaker
Deafened is like Disney plus level, so we acquired every possible guest possible, every possible media thing. It's so hard. It's so hard getting guests trying to not overlap, y'all.
01:36:51
Speaker
Yeah, because it's it's it's a smaller group, but but I think it's it's it's good that they talk to different people, right? Because if they're talking, if they're coming on deaf and it's mostly, you know, me and a bullshitting. So, you know, obviously, if they go to that, I bullshit. I'm a bullshitter. I know we can't have. No, no, no, no. You can't you can't steal our thunder. I'll just add some pink and purple and like it's called rebranding. It's called rebranding. OK. Yeah, fair enough. Yeah.
01:37:21
Speaker
Okay, questions for Willow. Riot is a bullshit can, you know, be coexist. It's okay. I stole your question, Will. Is there anything else you want to talk about? Um, I don't know. I think, like, I think we, we basically covered it.
01:37:41
Speaker
nice but you should i mean obviously you need to go and then you know get into the podcast on what's the what's the new name again instead of lilac town which was purple lane something
01:37:54
Speaker
You're going to come up with a new name now. Earline account will be Lavender Lane. Yeah, Lavender Lane, sorry. Sounds like a name that... Yeah. Yeah. Maybe I won't go with Lavender Lane. Maybe not a good idea. It sounds like a dodgy street in Amsterdam, but yeah. Anyway, so obviously, people need to listen to Jordan as well, and it was super, super fun to have you on the show, Will.
01:38:23
Speaker
um lovely to talk to you and uh finally i know about punk and rock and reggae and everything now and um and react hooks the new hotness react hooks i'm hooked yeah so we're gonna edit that i can't if
01:38:46
Speaker
If there is one thing that the listener should take away from this is that Will is a brand ambassador for this Street Light Manifesto. So that's one thing that you guys need to remember. Also. Hey, Black Belt BJJ. I think that's a very rare detail. Yeah, BJJ. Exactly. And also check out this small thing in Clojuskip that he's doing called Helix and try to send him PR so he'll be happy.
01:39:16
Speaker
But only PRs on Ajax. Yes. I see this is a small thing though, actually. Well, is it, do you do the GitHub sponsors thing? Is that something that you're looking for? GitHub sponsors or? You know, I've thought about it. And
01:39:35
Speaker
I've thought about looking for funding for some of my open source projects before. And I just wasn't, I haven't been in a spot where I felt good about taking people's money. And not that anyone would necessarily increase their expectations of me, but I would feel obligated to do maybe more than I have. That's very stressful. It's very stressful. Yeah, I just haven't wanted that stress yet, but I am still thinking about that. I probably will at some point.
01:40:05
Speaker
You know, if I don't.
01:40:10
Speaker
If I don't get fired for doing this podcast, then okay. Well, you can blame Lost in Lambdas for that one. We've never had anyone fight it before. If you decide to go pull a trigger on that, yeah, you should talk to Jordan. Hey, we hire you at my company. Actually, it was all a ploy. It was all a ploy to steal it.
01:40:37
Speaker
I think that that is the reason the question, like, can I introduce he likes to be tiny bit, you know, and then that was that low key. That was a question from my CTO, as a matter of fact, because I got to my coworkers before I talked to somebody like, Hey, any burning questions, anybody want to know anything? And that, as a matter of fact, that was his question. Yeah. I've gotten that question enough times at this point that, you know, at some point I will like sit down and put pen to paper and actually write like a blog post or something about like,
01:41:07
Speaker
you know, this is this is kind of like mechanically how to do it. And also, like, this has been our experience. I think that that would be really valuable for me to do to sort of collect my thoughts on it. And also for, you know, the rest of the community, because yeah, like people, people are starting at different places, you know, some people are doing Greenfield stuff, they look around and they're like, Oh, we'll take helix. Other people have long standing. I think that that's the other thing that
01:41:32
Speaker
is interesting to me, like looking at the closure and closure script community is that a lot of the applications that are being built are applications that have been around for a number of years and are expected to exist for many, many years to come. And I think that that like drives us towards like different solutions than like, you know, like Ruby on Rails and like, you know, in Elixir, there's like the Phoenix framework, like those are very useful for like,
01:42:01
Speaker
you know, consultants that are like spinning up a new application or I think like, you know, um, uh, was it Dominic that was talking about and stuff? Yeah. So that's like a very, that's a very, um, that's, those are solutions to problems that like, I just don't have right now because I work on an application that has existed for four years already and is going to exist for, you know, hopefully a lot longer than that. And, uh,
01:42:30
Speaker
And so, you know, having resources for, you know, okay, I need to spin up a project from scratch. How do I do that is very useful. Having like documentation and blog posts and guides and stuff like that for like, how do I migrate an application that I maybe started like five years ago to like the latest stuff is also something that I think would be great to see in the Closure community. I'd like to pitch in when I can.
01:42:53
Speaker
I think the thing for me, though, about what you've done, I mean, I think what you've done is pretty special, in fact. Well, is this like being brave enough to kind of like take on existing thoughts and existing sort of thought leadership, if you like, in a closer script space?
01:43:10
Speaker
and say, you know what, actually, these React people, they haven't done a bad job. They've built things up over the past couple of years. They've put a lot of money into it, like you say. Let's see if we can just make more use of the raw materials. I think people have been wanting to pull a trigger on that for a while, I think, and I think this hooks thing has definitely been a reason to do it.
01:43:36
Speaker
So, you know, I think it's really great what you've done. And I imagine that a lot of people are quite excited about helix. And it's always great to talk to people who've kind of like, I think closure to some extent is a little bit of a kind of like that. It's a bit counter cultural. It's a bit like, you know, you know, respects and accommodates new bits of thinking. You know, it's rad. It's only
01:44:01
Speaker
So yeah, I think it's really good and congratulations on getting it beyond a thought into the real world. That's really good.
01:44:12
Speaker
Yeah. Yeah. Thank you. So a big, big thank you to you, Will, for joining us and sharing your thoughts on Helix and everything. I'm pretty sure people are going to check out your blog and then if there is an opportunity to contribute in whatever the way, I think we encourage people to do that. And speaking of money, so go ahead and check out our Patreon and then give us money. Hey.
01:44:35
Speaker
I mean, there are really nice people who have been. There are a few new Patreon people who are supporting the podcast. That's a big thank you to everyone. And we are thinking of doing something like Twitter Spaces or something, depending on schedule. So we'll do something exclusively for patrons. And having said that, I think, Jordan, if you can wrap up, please tell us what next plans that you have on your podcast so people will
01:45:02
Speaker
You know, stop listening to our bullshit. My pitch lost in lambdas a little bit. Come on. We haven't given you much of a chance actually. What had happened was I was getting my tweets on and bork dude was the one that I mean, it's not really much of a story. I just like to talk so much and I just.
01:45:25
Speaker
I like to talk to people and I really like to, I think it's important to humanize these developers. And I think that these experiences talking and having real conversations with these, you know, these, these screen names at Lilac Town, at, you know, we,
01:45:42
Speaker
And we forget that they're people and they have hobbies like BJJ and hiking and reading and just all these things. And I think it's really important to humanize as somebody who weirdly learns best when I have an emotional interest tie into something.
01:46:07
Speaker
I will learn, like I learned best in school if I like the teacher. And I think a lot of people are like that. And if you humanize and you look at the developers, you know, you can be involved with the projects more. You can, you know, just appreciate things Lauren.
01:46:21
Speaker
Really is just having fun. Lost in lambdas. I'm trying to find people that y'all haven't already talked to or that will squad my Slack messages because I'll hit up somebody, crickets, nothing. I'm like, okay, I get it. I'm not cool. That's fine. You'll regret it. Whatever.
01:46:41
Speaker
Now, I think it's a trust. We have to help you to get on to your show because we know some of these people, you know, so we're going to shame them. Get them up and just get the entry, the entry code. I want to do some more stuff with y'all too. This is really, really fun. Yeah, this is really good. You know, I think this is really fun, you know, and thanks to Will for being, you know, again, he's a brave guy, you know, the mob cast.
01:47:11
Speaker
But I think we should be, you know, we have a job as well to mix up some of the end-attainment for people in the closure world as well. You know, we've got to try and do that a bit more and have a lot of fun. Yeah, so it's been really great, Jordan. Thank you very much.
01:47:25
Speaker
Yeah, thanks a lot for joining us and bringing the pretty lady as well onto the podcast. Where is she? Oh, she's sleeping. She's the best. I was like, Oh, I'm a pretty lady. Oh, yes, my pretty lady. That was almost awkward for a second.
01:47:44
Speaker
Oh, shit. Yeah. Okay. I got to keep it sane. Keep it professional. Fun with each other. Is Will the pretty lady? I thought Will's the pretty lady. No, I wasn't my pronouns at the beginning. Yeah, it's true. It's true. I asked. I'm working on it.
01:48:03
Speaker
But I think, you know, even though, you know, we took over the bullshit, what do you call it? Specialization. There is still cow down, you know, like there is there is there are other flavors that people can pick up and, you know, entertain people a lot. And and yeah, I'd encourage you to talk to the folks. I think it is always a challenge like even I and Ray does that as well, trying to scout, quote unquote, scout for the for the people. Sometimes we need to encourage them because sometimes they're like, you know, yeah, maybe not or
01:48:33
Speaker
there might be many reasons, right? As you said, when, when people are, there are humans behind it and there might be many reasons that they can't make it. Um, but, um, but yeah, so I'm, I'm pretty sure in the closure community, it is much, much easier for, that's what I noticed because I'm also doing the rust podcast. That's way harder to get anybody to get onto the podcast. And also I think it helps a little because since we've been running the show since the dinosaurs were there and also we are like the
01:49:04
Speaker
Yeah, there's only so many people. That's the whole thing I was thinking about. There's only so many superstars. Yeah, come on. We're at number 74. Exactly. I think there are more than that. There's a bit more breadth and depth in the closer script world. But I think from the podcast perspective, I think we can do a bit like the conferences do. We should be more friendly towards each other.
01:49:30
Speaker
I think this has been really good. I think we can all help each other out and be part of this community too. We don't have to compete for people to come on the show. Everyone can go on different shows. I think you've got a really great personality and a really great way to talk to people. I think everyone's going to really enjoy your show and it's a different flavor than ours, like you say. You're just a total star in my opinion.
01:49:58
Speaker
Um, I'm going to be doing something different with you as well. So, you know, we're going to have a little, a little project. We're not going to talk about it now. We just tease it a little bit. So don't use the P word. You got to stop using the P word. I know it to me by the P word now, but stop using it. What is the P word? Oh yeah. Okay. I see. Yeah. Okay.
01:50:22
Speaker
politics. I feel like it's more like a philosophy of technology. You get like, hey, can I ask you about politics? And everyone's like, no, God, no. Yeah, no, but I was teasing you by saying we're going to talk about the P word, you know, it's like the P-tip, you know, it's like, we're going to, that's what we should call it, the P-tip, you know. God damn it.
01:50:47
Speaker
Pick up some of the branding, you know? Well, say goodbye to your job. You should just, I shouldn't even tell people that you're still here. You'd be like, I am not associated. Yeah, I left. I'm not doing like 30 minutes to go. Exactly. This is that paid sponsorship end. You know, this was like, welcome to Quip Toothbrush. Brush your teeth with quips and stuff. Yay, VMware.
01:51:19
Speaker
Anywho, on that bombshell, we're going to start the dramatic piano. And then we say goodbye to each other now. That's not our theme. That's our show. Thank you, Will. Thank you, Jordan. All right. Bye. Yeah, thank you all. Bye.
01:51:41
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. Maybe you should insert your own name here, Dullert.
01:51:57
Speaker
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, Closureion Slack or Closureverse or on Zulep or just at us at Deafened Podcast on Twitter. Enjoy your day.
01:52:27
Speaker
and see you in the next episode.
01:52:54
Speaker
you