Rooftop Ruby Podcast

5: Vanilla Never Tasted So Hot

March 21, 2023 Collin Donnell, Joel Drapper Episode 5
Rooftop Ruby Podcast
5: Vanilla Never Tasted So Hot
Show Notes Transcript

Special guest Jared White joins Collin and Joel to talk about Bridgetown, the Spicy Web and more.

Follow us on Mastodon:

Show art created by JD Davis.

Collin Donnell:

Hello. I'm very excited to be able to say this for the first time, which is welcome to the rooftop, I guess, Jared.

Jared White:

Oh, nice. I'm the first I'm the first to join you on the rooftop. Ah,

Collin Donnell:

yeah, you're the first guest on the rooftop with myself and Joel here. Heiko? Hey Joel, how are you? How are you guys doing?

Jared White:

I'm doing great. I'm ready to party here on this rooftop a, I see a lot of Ruby decorations everywhere, a lot of red. So that's cool. Like, read

Collin Donnell:

that. That's the vibe I'm hoping for. So Jared, why don't we start with I'm looking at your website here. It says that you are a programmer, an author, a musician, really a man for all seasons? Why don't you tell us about yourself?

Jared White:

Oh, boy. Where to start? So yeah, this, this has been really both a blessing and a curse for pretty much my whole life, which is I love doing and thinking and creating a lot of different kinds of things, and a lot of different kinds of communities. And it's really been hard to try to pin myself down to a particular lane. And so in some ways, it's really fun, it's exciting. But in other ways, you know, I sort of look back at various moments, you know, particularly in my career as a web developer and programmer and think, you know, I could have done more self promotion, or this or that at that time to, you know, get farther along at that time or whatever. But, you know, hey, here I am, like I've been working on on websites and designing things and publishing and building apps and whatever for a long time. And amazingly, I'm still super excited about it and super into it. And super excited about Ruby. And, and all sorts of good things.

Collin Donnell:

Yeah. So I think the things would you say that Bridgetown is your sort of static site? Generation project, would you say that is your thing people would most nail you for? You also have the spicy web, which is sort of a blog and discord and, you know, really king of all media kind of thing? I don't know which of those you would say people sort of associate more with you?

Jared White:

Oh, yeah, I think I think bridge town probably is, is what kind of helps certainly helped me connect with a lot more people. You know, I've been working on a lot of different Rails projects and, and doing a lot in the web space, prior to starting to work on Bridgetown and 2020. But I sort of by and large, felt like just kind of a nobody adds, you know, I had all these icons I looked up to and you know, people building all this neat stuff. And, you know, I always was like maybe someday I'll release something open source that will be cool. Or maybe someday I can, you know, somehow work on a project Where's so and so is also on the project. And like all these things, right, for years and years. And then Bridgetown started, in what I felt like was sort of a fever dream brought on by, you know, the isolation of the pandemic having started and I'm just sitting around with lots of extra free time suddenly, and nothing to do and like, Well, hey, I've been using Jekyll for a bunch of projects. And it sort of seems like that project. The Jekyll project was in a maintenance mode of sorts, and I kind of wanted to take things in a different directions. So almost on the advice of a friend I was talking to in the local area that was part of a of a bit of Ruby meet up kind of saying like, you know, you could always fork Jekyll and take it in a new direction. Like, no, that's crazy. But I already have that idea, too. But no, it's crazy. But yeah, that's eventually what it ended up doing. And was quite honestly shocked and very pleasantly surprised at what the reception was, like in the Ruby community. You know, pretty soon I was all of a sudden talking with like, lots of folks I admired and respected and they were interested in what I was working on. And I was starting to get PRs from people who were themselves doing lots of cool stuff. And it was just amazing. So so that really helped me kind of build up a bit more confidence around working in open source and contributing things and eventually leading to you know, publishing more about web development and various topics like that. So yeah, it's it's really been a wonderful and exciting journey.

Collin Donnell:

So Bridgetown started as a as a fork of jackal. And would you say it seems like it's diverged pretty, pretty far at this point?

Jared White:

Yeah, it's it's really tough. Verage it's it's almost a, it's almost a total rewrite. And there's a lot of asterisks next to almost because, you know, there might be a particular file for a particular class here, there were if you look at that, and squint and then head over the Jekyll codebase, you know, it's pretty similar. And I don't want to continue to give props to, you know, everyone that's worked on Jekyll and contributed to it since, what, like 2011, or something like that, I guess, when it first started. But, you know, because I just, I really respect the heritage there. But at this point, yeah, a lot of what's in Bridgetown is quite new, and kind of takes things in a different direction.

Collin Donnell:

Yeah, I've been following it for about a year and I went, yesterday, I was going to start a new site or something. And I was like, I'll go look and see what's changed. And there's so many plugins now and everything, like, it's really, really built up

Jared White:

a lot. Oh, I appreciate hearing that. I, you know, it's easy for me to get into the mode of of seeing all the, all the cracks in the ecosystem, and like, Oh, I wish we had this, or I wish we had that. And, but But yeah, I appreciate hearing, you know, that at least has a appearance of providing a lot of value. And I think, you know, based on the feedback I do get from people working on sites, you know, it's usually really positive. And I think that's something that's, you know, not just nice from the perspective of someone who works on Bridgetown. But it really gives me a level of excitement around Ruby, and that people can continue to use a tool that's built, you know, out of Ruby to, like work on modern website projects. And, you know, maybe to someone who works on a lot of Rails projects and is in that world, you know, they're kind of maybe scratching their head for a moment saying, like, what, but because of so much of what I have done over the years has been in the space of like, like working on web sites versus web apps. And I know, that's like, there's a bit of a false binary there. But in the world of web sites, where you're kind of primarily working more on content driven sites and things that you want to kind of build and deploy quickly. And they're at least in part, if not mostly, if not all, static content, it really felt like that arena was quickly slipping away from the Ruby community, like there are all these JavaScript based X site generators out there still are a ton of them. And they're getting more popular by the day, for like a fast build of a site with 1000s, hundreds of 1000s of pages you might reach for Hugo, it's it's written in Go and you get the extra boost of performance there for that. And it just seemed like someone feeling confident that they could reach for a Ruby based solution in that space was was starting to slip away. So it's really been a goal with Bridgetown to not just provide a valuable tool in general. But to really help kind of, you know, keep some folks still in the Ruby fold maybe and even introduced some new folks to Ruby. I've gotten feedback along those lines as well, like someone saying, Hey, I, I was kind of interested in checking out Ruby some more. Or again, maybe I used it years ago or whatever, and went on to other things. But I wanted to try it out again. And I tried using Bridgetown, and this is a lot of fun. And now I'm learning a bit of Ruby. And so every time I hear a story like that, it's really exciting.

Joel Drapper:

That's so interesting. I guess Bridgetown is like a gateway to Ruby for a lot of people. Do you find that a lot of people who use it are, like new to Ruby, or maybe don't even know Ruby? They just want a static site builder?

Jared White:

I'm not sure. I'm not sure I could throw out a percentage with any confidence. But just anecdotally, it seems that, you know, quite a few people have at least a bit of, you know, experience with rails or whatnot. That's certainly true. But there also definitely have been people that are just like, I'm learning a bit of JavaScript. I'm learning a bit of this. I'm learning a bit of that I thought it learned a little bit of Ruby and thinking of building a website. Maybe I could try using Bridgetown and they noodle around with it and and think that's cool. So like, I definitely feel like it's it has the, you know, the potential to reach those sorts of folks.

Collin Donnell:

I know that Joelle is always saying, you know, Ruby is bigger than rails, right. So it's cool to see new projects, getting a lot of a lot of steam like that in the community, and also pulling in new people. So moving on. Then the other thing that you that I mentioned that you do is the spicy web, which had the tagline I just saw recently, just now of that vanilla has never tasted so hot. Maybe what is the spicy web and we can use that Add to talk about, you know, spicy web adjacent things and whatnot.

Jared White:

There's there's certainly a Reader's Digest version of this. And then there's a much more long winded version. And I'll, I'll try to, I'll try to keep it brief here, but apologies in advance. So, as I mentioned, I've been working on the web in one capacity or another for for many years, and doing a lot in the Ruby community has certainly been, you know, hugely influential for me. But I feel like my sort of first love has always been the web. And when I say that, I literally mean like, the open specs of the web, and what people are now often calling like, you know, vanilla tech, whether that's vanilla JavaScript, or just regular old HTML, CSS, of course, even the protocol like what what even is HTTP? And how does that work? And like, why is the fact that it's a stateless protocol, quote, unquote, like, what does that even mean? Why is that important? What do you need to know, like, all of the things around how the web actually works? You know, it's always been something I've been really passionate about. And, you know, as, as the years would come and go, and various conversations would arise, you know, I'd start to hear the same themes kind of come up over and over and over again, and like with each new sort of wave of different stacks, and different technologies, and different sort of, you know, the ways people learn web development, and all the educational resources, resources out there, and, you know, boot camps and everything, like, I felt like I kept sort of seeing a repeat of the same conversation. And it kind of led me to realize that in a way, there's, there's a bit of a, there's a bit of a scenario where there's there's two camps. And I feel like in a way, it's as stark as it's ever been right now. And there's, there's one camp where you could kind of say, to sum up, HTML is a built target. And what I mean when I say that is, you write an application. And at some point, it becomes HTML that at some point executes in the browser. But but you're not actually writing that you're you're writing an application. So there's the sense that what you're writing somehow compiles to something that executes in a browser on the web. But when you're actually writing it, you're writing in this very abstracted layer. And that could be so many different things, right? But these days, increasingly, that's, you know, maybe react, or you can react native because there's, there's actually a way you can translate a React Native code base to just react and then run that on the website, which I believe is what Twitter did, and maybe still does, for example,

Collin Donnell:

yeah, as a mobile developer, I'd say React Native looks like it's just the best, I'm really excited to never use it.

Jared White:

I wasn't sure where you're going there. But I was pretty sure I do how you felt. So I'm like,

Collin Donnell:

I'm a I'm a, I'm a big fan of, you know, I'm a big fan of on mobile, especially, or on native, especially not abstracting away, kind of the underlying API's, like to too much in a way that makes it, you know, makes your life painful in the future, and things like that. Just always, that's not the vibe for me, I guess I would say,

Jared White:

right. So that's, again, it's, this is something I feel like often gets missed in communication. And I've been guilty of not spelling this out very clearly. So when I, you know, when I talked about, you know, that that sort of HTML is a build target concept. And then, you know, the, the opposite of that, which is sort of like, use the platform TM, it's like, you know, go vanilla as much as possible. I'm not really talking about that in terms of the web, per se. I'm talking about that as a philosophy of how you do software architecture. And like what you just said, with mobile, like, like, you could have the same discussion there. Right? Do you use the platform TM? Do you try to use vanilla technology, as you write your mobile app on a particular platform, you know, iOS, or Android? Or do you use some kind of heavily abstracted framework, build tooling, et cetera, et cetera, et cetera. And then, you know, whatever it is that it compiles to is just a build target. Those are really different philosophies. And like anything, there are pros and cons to both. And I feel like when we talk about the web, my contention is that the default should be vanilla. And when you run into issues with that, because of your particular project, team, company, whatever, and you need to reach for something much more than heavily abstracted, and you can articulate the reasons why you need to do that. Like, that's fine. I'm not gonna keep arguing with you. But I think what we have right now is, and for much of the history of the web, this is somewhat been true. But it keeps being this thing where that's like vanilla is not the default, the default in people's minds is we're going to reach for these heavily abstracted tooling. Yeah, libraries, frameworks, approaches to things we're going to reach for, like all of this stuff that's gotten built up in user land, if you will. And, you know, again, like HTML is just a build target, like whatever is executing in the browser is getting extruded out of these frameworks that we're using. I feel like that's kind of backwards. Like why why in the year 2023, when you look at all the innovation around how even JavaScript itself has evolved as a language, the API's the browser provides, like the native vanilla API's that are available. Now, CSS has gone through an incredible Renaissance, like there are things you can do with one line of CSS now, that would like have blown my 2020 of three minds like 2003. I don't know why I said that funny way, by 2003. Mine, like would have exploded if I'd been able to use the CSS that's now available. Like in all modern browsers, it's just amazing. So like in a year where

Collin Donnell:

CSS is what tailwind compiles to write

Jared White:

CSS is just a build target. Yeah, we could, we could go there. But to finish my thought, like with all that we have now in the year 2023, with what you know, with what you can do with just HTML, with CSS, with JavaScript with with web components, which is essentially a way to kind of create these encapsulated bits of HTML, CSS, and JavaScript. With all these things that we have now, why is that not the default, why is the default not to use what the platform gives us. And then, if you have to expand outward from there, you can do so. But know that you are now choosing to move away from the vinil stuff. And there are plenty of cons there, as well as pros. But to just be aware of that, and that's kind of what I'm trying to promote with the spicy web blog and with the discord and with stuff I'm posting on Mastodon and everything is to try to get the word out that you can start with vanilla, it's okay. It's possible.

Joel Drapper:

Do you think that these new web platform, advances in HTML and JavaScript and CSS that we've had, I guess, over the last sort of five years, do you think that they owe a lot of their existence to the abstractions that came before some thinking like CoffeeScript, jQuery, SASS flashy been, like a lot of these things kind of, I feel like they, they paved the way to people realizing like, this is what people want to do with the web, like, have video players and audio players, and all of these, like fancy interactions. And because of that, like, because of CoffeeScript, and jQuery and flash, and all these things that we've had to like, build on top of the web, going back to vanilla web standards, those standards have evolved and changed to accommodate those needs.

Jared White:

Yeah, sure. Sure. That's, that's a really fair point. And it's good to, it's good to have that perspective, too. Because, you know, we can, we can get a little strident sometimes in their advocacy of like, just just use the platform, darn it. But you know, yeah, like, as an example, it looks like CSS is finally getting nesting. Like you'll finally be able to say, you know, UL and then a little bit lower down li to style a list item without having to do ul li again, like 20 different times for everything. And that of course owes its existence to sass and to tools like that that have been around for a long time. And you mentioned flash and that was like a huge thing when the iPhone first came out, which is like we're not going to even support Flash at all we're just going to use the latest web standards to support video and you know, some other multimedia things like that and, and that that was like such a huge and kind of controversial really thing back then that we forget now. But the idea that like, what, you're not going to support Flash, people can't run their flash websites on this new device. Like, what the heck are you doing here?

Joel Drapper:

I think It shows the success of flash, in that everything that flash prototype for the web pretty much has become a standard, like Flash used to be one of the only ways that you can embed fonts in the in the web, for example, and that landed in CSS, it used to be the only way you could play a video. And that landed in HTML. Like, it used to be the only way to do so many different things that have landed in JavaScript and HTML, like Canvas combined. And I feel like now that we have the standards, and I think this is what what you're saying as well, like, we should, like acknowledge that what these abstractions did, but then say, goodbye, like, we now have something much better, and we can move forward and use that. And then what you said earlier, which really caught me was like, if you actually have to do some, if you have a requirement that goes beyond what's possible, then that's where you want to break into, like, designing something else and prototyping something else. And then that, I guess, is like, the place where flash and jQuery and all that stuff used to be back when the platform didn't support these features.

Jared White:

Yeah, absolutely. I completely agree with you there. And, you know, I, I think I'm, I'm probably taking this from some other quote out of context, but I think I think we should all strive to hold her abstractions loosely, and hold standards tightly. I think we should all sort of, you know, every, at least every few years, if not, you know, every year and sometimes the pace, things go like every few months, but like just kind of reevaluate like where you are. Because like, at some point in the past, it completely made sense to use jQuery. And then all of a sudden, it kind of didn't make sense anymore. And it's not that nobody could use jQuery anymore. Lots of people today still use jQuery. But it wasn't necessarily a default, like, people wouldn't come along and recommend it. Like the default thing you should do when building website today is go grab jQuery off the shelf, like, we don't say that anymore. As an industry,

Joel Drapper:

we do say you should go use React. Now.

Jared White:

It's just not a good default anymore. If it ever was the perfect default. And there's always been some conversation around that. But if it ever was like, the default to reach for, I think that time has passed. And there's some specific reasons for that, which, you know, I don't know if we need to get into it. But yeah, that's, I feel like that's the situation we are now where, you know, react, and maybe, you know, some other sort of trendy things in the world of web dev today. People sort of think of as Oh, these are just the defaults, and it gets taught and promoted just everywhere, like, you can't get away from it. And and I feel like that's, it's, it's sort of, it's sort of doing the jQuery thing, or the flash thing all over again. And one thing I really liked that the folks over on the lit team at Google, the folks that work on the lit library for building web components, they keep saying like their ultimate goal for lit is that you don't need it, like their ultimate goal for the library, is that the concepts there would eventually become web standards. And once this web standards are available everywhere, you wouldn't need lead anymore. Or if you did still need it, it's because it solves some new set of problems, right. So the fact that they themselves are holding their own abstraction lightly. I really admire that. And I really respect that. And I don't see that happening in some other projects out there, which is why I get concerned. Yeah, you

Collin Donnell:

had a really good blog post a couple of days ago, called The Great gaslighting of the JavaScript era, which was kind of a response to some things some other people had written about, you know why React is, you know, actually great, or whatever. And you were responding to say, Well, maybe you can explain what this post was.

Jared White:

Yeah, so this is, this is definitely me at my grumpiest. So apologize, I apologize in advance to folks who may be are going to be put off by the tone just a little bit. But you know, as someone who has cared about standards for a long time, and is also cared as the Rubyist about keeping the web in general, polyglot. And what I mean by that is, in order to build a product for the web, you can use any operating system. You can use any type of web server, you can use any language, you know, on the back end at least like it can be anything right You can use Ruby, you can use JavaScript if you want to, you can use go, you can use any anything, right like, because the web is built on top of specific products so much as it's built on specific protocols. So we have the protocol of HTTP, you know, we have HTML is a pretty flexible markup language that, you know, is certainly opinionated. But it's also intended to be kind of usable in so many different scenarios for so many different things, right. The most opinionated you get eventually, maybe you could say is, is JavaScript as the language but it's certainly possible to build stuff for the web where the amount of JavaScript is somewhat limited, like, that's totally fine. So I really care about that sort of thing. And I think the thing that's been so frustrating for a number of years now is going back to say 2010, to 2015. It's like the era when, when everything kind of went through this huge mind shift of we don't, we don't build apps on servers that then get, you know, streamed out to browsers, if you will, because we're serving up HTML and related assets. We're building s pas, everything's s pa now, you know, we're going to write everything in JavaScript, it's going to run all this stuff on the client. If you disable JavaScript, you get a blank page. The server is just there for you know, JSON, essentially, lot of things, they're still built that way now, like, by no means have SPS gone away. But what I mean by the great gaslighting is, for many years, it seemed like folks that cared about standards that kept cared about sort of native web architecture. And certainly folks in the Ruby community, for example, which I'm familiar with, have been saying, you know, like, you're, you're kind of breaking the contract of the web here, you're breaking the idea that the web is polyglot, you're breaking the ideas of progressive enhancements. And, and the performance benefits you get from having things pre rendered on the server and streamed out to the client, instead of just like loading these multi megabyte bundles of client side JavaScript to render anything at all, you know, accessibility, SEO, like, there's all these things that so many folks have been kind of trying to, like, break through the noise and get the message out there of like, Hey, wait, we got to like, talk about this stuff. And then it's seemingly like on a dime, all of a sudden, you have this group of thought leaders that are like, we need SSR, we need accessibility, we need server side performance, we need all this stuff. And it's like the same folks that were telling those of us who had been saying that stuff for, like, what seemed like almost a decade, who in the past are telling us like, Oh, those are silly concerns, like you guys are stuck in the past. Now all of a sudden, like, hey, we need all this stuff. And we're building these new tools and these new frameworks and the news, these new companies around these ideas, because they're so important. It's like, that's what we've been saying for the whole time. Like, the whole time, we never stopped saying this stuff. I mean, it's, I'm glad you folks are jumping on that bandwagon now. And we can all like, have a party and say, Yay, for SSR, and yay for progressive enhancement stuff. But at the same time, I also kind of feel like, there has to be some acknowledgement of harm done. And I know those are strong words, like harm done, you know, like, what are we talking about here? It's just websites, right. But like, I do think there's sort of a sense that like, like the thought leaders need to be able to admit when they're wrong. And I want to be able to do that, too. Like, if I'm really wrong about something like if I put out there like, this is a good way to build a website, this is a good tool to use. This is a good language to use. And a few years from now, it turns out that that was that was a bunch of really bad ideas. I hope I would be humble enough then to say, like, Look, folks, I got that wrong. I really got that wrong. There's there's a better way to do it now. And I just feel like there still needs to be a bit of a moment of reckoning there, just so that we can all start to trust folks again, like there's there's a trust factor there.

Collin Donnell:

So you were talking a lot about how back in I don't know, 2013 2014 it was AngularJS is going to be the future. Right? I think it was about that era. And the quote you had was that the future was not in fact, AngularJS as we now know. And I also liked the part where you so you kind of use that as a you know, as an example of just how quickly things can shift. And then I also liked when you you were talking about the web being kind of polyglot where you can have different languages and different things. And you were saying how, you know, back a number of years ago, it became the stack went from, you know, HTML, CSS, JavaScript to JavaScript, JavaScript, Java. Script. And then more recently now is I guess it's type script type script type script. And I just, I enjoyed both of those parts.

Jared White:

Oh, thank you. I'm glad that point came across at least. And even there, again, I'm saying things that are perhaps very controversial and very pointed, but, but even even that with that sort of glib comment of like, oh, well, that's TypeScript, TypeScript, TypeScript. The reason I want to really emphasize things like that is because even with the TypeScript revolution, it's just sort of a microcosm of all this stuff. It's like, oh, hey, folks, we're not going to write even JavaScript anymore. We're gonna write TypeScript because TypeScript will help our applications be you know, typesafe, and work better with large teams and, and have fewer bugs and, you know, better IDE support, blah, blah, blah. Okay. For the sake of argument, let's say all of that is true. There's actually a way to get almost all of the benefits of TypeScript without actually writing TypeScript. And that's to write JavaScript, and then use Jas doc comments and in the Jas dot comments, you can actually specify the types of, you know, function arguments, even individual variables, like this whole bunch of stuff you can do. And if you actually do that, it means that the code you're writing can be 100%, vanilla, vanilla JavaScript, you can literally copy paste stuff out of files, run them in a browser console. Like it's universal, everyone can speak JavaScript, right? If if you can actually do that if you can use the TypeScript compiler, but write JavaScript and get most like, if not almost all of the benefits of TypeScript. Why isn't that the default? Why aren't we all just writing JavaScript? And using the TypeScript? You know, type checker? linter, etc? Why isn't that the default and then maybe for like, very specific teams, very specific libraries, whatnot, you know, if they want to write like TypeScript, okay, right TypeScript, but we have the opposite, where the default is, everyone's supposed to write TypeScript, TS files, TSX files for React, etc, etc. And when you come along and say, Hey, like, maybe that shouldn't be the default, you get all this pushback. And to me, it's it's mystifying. I'm, it's hard to like, it's hard for me to get into the mindset of where I would want to push back on that suggestion, because to me, it's just so obvious, it seems so obvious that like, let's say 90% of all TypeScript code should just be JavaScript. But yeah, that's that's like, that's where we are now, essentially, as an industry is, is there's these sort of two camps of like, we want to use our abstracted tools, all this stuff. And then there's the Can we just start with Fidella, maybe, and then go to the abstractions later. And I feel like that's a really, really important conversation. And, you know, hopefully, the needle kind of slowly starts to move in what I feel like is a better direction.

Joel Drapper:

I think I would go further and say 90% of TypeScript should probably be HTML and CSS.

Jared White:

Yeah. There's something there, too.

Collin Donnell:

Then you also had another post, I've told you before that I really liked this post, but you had a free, less grumpy example of your writing, which actually, one thing I have to say is when I when I read that gaslighting post, I did come across thinking like, man, like Jared is a really good writer is very engaging, I guess what I'm saying maybe a little jealous, but I, I also really, really liked your, your post on just sort of like how you organize your CSS. And I thought that was a really good post, because it was an example of how you do actually use vanilla things in a very, I don't know, scalable, sort of, you know, what would the word be a, you know, how you actually, you know, put that into practice. I really enjoyed that post a lot.

Jared White:

Oh, I appreciate hearing that, too. Yeah, the sad truth. This is gonna sound so bad. And I really feel bad about saying it. But the sad truth of content creation is you can write something really quickly. That is, you know, controversial and get a lot of attention. So it's like low effort, lots of attention. And then you can write things and put like, lots of effort into it and be relentlessly positive about like, Hey, folks, here's the cool thing. Check this out. And it's crickets. And that's something that over many years of trying to blog and tweet and now post on Mastodon, whatnot, I've had to try to find some sort of reasonably ethical balance there because But, yeah, it, it's, it's very easy to get tension with, you know, complaining about the state of the world. And then you try to say, here's a way to make the world better, and it doesn't land. But I do appreciate hearing that. And I'm really hoping, sort of throughout the next few months, I'll be able to do more of the positive side of things to to offer, you know, some value there.

Collin Donnell:

I absolutely agree with that. I have a really good example. Which is that one day maybe, I don't know, a year and change ago, I had, I was mad at swift because it was doing all this strong typing stuff, compilers complaining, just the you know, kind of thing drives me crazy sometimes. And I decided just to look up how many keywords you know, were built into a bunch of different programming languages like C++, Ruby, small talk, you know, all the all the bunch of everyone I can think of, and, and I just made a little spreadsheet of it and took a screenshot and posted it. And I'm, like, Swift had the most by far, like, by so much, it's a, it's a pretty big language. Oh, wow. And next day, some like, alright, I made this tweet, I posted it. I wake up the next day, and I have many, many, many retweets, many people replying, including, like, Chris Latner, the guy who created swift at Apple originally being like, Nikoli, some of those aren't keywords, these are this other kind of a thing. And I'm like, I just went to swift.org and copy and pasted what they were I don't know. But it kind of reminded me of the thing you're saying about how the controversial sort of snarky take on stuff will be the thing that blows up.

Jared White:

Yeah, yeah, it's, I mean, I feel like I feel like that really came to a head with social media pretty recently, and certainly with Twitter itself, just kind of going into free falls the platform and everything there. Like I think a lot of folks, it was kind of a good point. So reevaluate, like, have we all gotten so sucked into the Snark factor, because, you know, that gets the attention that it's becoming unhealthy. And, and I certainly for a little while, it felt like I had to kind of step back from kind of, you know, trying to publish another hot take about whatever. Cuz, you know, it's like, Hey, I'm trying out this new Mastodon thing? And can we all just kind of, like, be happy to be here in the Fetty verse, or whatever. But, you know, there's, there's room for the snarky stuff too. And I think sometimes that is really helpful in kind of sparking a conversation. And like, you know, I think it's good to, you know, kind of push back a little bit in one direction or the other and start to have that conversation, because the flip side could just be like, whatever is the most popular or trendy thing just wins, like, because it's popular and trendy, right. And nobody is saying anything against it. So it wins by default. And that's not always what we want. So yeah,

Collin Donnell:

absolutely. I just for me, it's definitely a real balance, because you do. I think this has gotten better on Mastodon than when I was on Twitter. But I do know for sure that like, it's a little bit addictive that you post something really snarky. And that's what gets all the responses. And that being slightly different on Macedon, I think has been really good for my mental health and maybe some other people's as well.

Jared White:

Yeah, yeah. Yeah, I agree.

Collin Donnell:

So what else? Other thoughts? Joel, did you have anything you wanted to touch on?

Jared White:

You know, I would be remiss if I were on a podcast with Joel, and nobody talked about flex, because I'm a huge fan of flex. I think it's so cool. And we haven't even talked about it yet.

Joel Drapper:

I was trying to contain laughter when you were talking about compiling, like seeing HTML as a compiled target, because that's literally what flex does, is just compiled to HTML.

Jared White:

Yeah. Like, let's talk about that for a sec. Because I think, I think, you know, like, there's so many types of abstraction out there. And like, you could say, you know, even if you're using PHP and writing some HTML, and you have like, a bunch of PHP tags, kind of interspersed everywhere. Like, I mean, that's still kind of an abstraction over just literally having a static HTML file. So, you know, there's so many different ways of templating a different template syntax, and some of it is, you know, pretty close to HTML and other things go way off in different directions. And I think what I like about Flex is it's, it's sort of really to me feels like what if what if HTML as a markup language had the syntax of a Ruby DSL? Here you go, and I do like that a lot because it it is an abstraction but at the same time, like, it's not so apt abstracted that you're writing essentially like some other kind of concept in your application. And whatever the HTML is that gets spit out the end, like you don't even know like, it could be 20 divs. And you don't even know why it's doing that or something. It's

Joel Drapper:

right. It's there's a one to one mapping between like method calls and tags, and attributes and keyword arguments and blocks and content, for example, in Flex, which I think means that you are essentially writing just a different syntax of the same language, I guess, or quite know how to describe that concept. But you are still writing HTML. And you have to think about the like, which elements to use, and which attributes to use and how you compose them together in exactly the same way. But it's just all in Ruby. And I think there always needs to be some, like, if your application is written in Ruby, and your data is in Ruby, you need something to turn that data into, like to put it into templates that eventually results in HTML. And yeah, you could do that with a Joby like PHP. Or you could do it with some kind of DSL.

Jared White:

Yeah, yeah. I'm, I mean, I'm, I'm a big fan personally. And I think, you know, I've, like if we want to talk very briefly about ERP is, uh, you know, the sort of default in the, in the Rails world. You know, I've seen a lot of ERP, that's just so gnarly. It's like, you know, almost every few characters, it feels like your context switching between HTML and Ruby. And then like helpers that are generating HTML, and maybe it's like, content tag, blah, blah, blah, like, all these different things, and it's like, so many concepts to hold in your head at one time.

Joel Drapper:

Like, my favorite is the big block of the RB at the top that sets a bunch of local variables, that you find that the top of them is their free, like, reasonably sized partial. And it's like that, this there should be an object here, these belong, that like, these should be methods, they're doing calculations on the raw data that comes in. And they should be methods. But there's no object exactly. OB

Jared White:

Yeah. And that was, that was what was so awesome, when, you know, when GitHub first came out with few component was showing it off, because it felt like, you know, you could move a lot of heavy lists, heavy lifting into, you know, pure Ruby code, and then make your templates really simple, like, almost no logic at all, in your ERP template, it's just kind of spitting out some values. And I really liked that. And then flex kind of collapses that even further to this day, like you have a Ruby file, and you have some methods set, you know, do some stuff with some data, whatever. And then you have, you know, a method to just kind of render out your template. And to give credit, where credit is due, like, you know, when you look at React and similar front end libraries, like they did have that really nice kind of conceptual breakthrough, back in the day of like, you know, you have some input, do some stuff to it, you render out a template, there's your little encapsulated bit of, of stuff to stick in your UI. And it's nice to be able to reason through a lot of things that way.

Joel Drapper:

And is it right that Bridgetown, I can't remember now, whether it actually has support for flex yet? Or if it's coming?

Jared White:

It's coming? Yeah, I I've kind of gone back and forth over like, should there be like a Bridgetown flex plugin, but then I'm like, the API Flex is so simple, the plugin would almost not do anything. So at this point, I'm sort of leaning towards just doing the work to integrate it into core. So like, right out the box, like for any given component, you know, he could write A or B could write flex, he could write, you know, whatever. He could go do the liquid thing, right liquid components to

Joel Drapper:

let me know if you want to pair on that sometime. That would be pretty fun.

Collin Donnell:

Well, anyway, I think this is all great. And Joel may speak for you as well and say, Jared, we'd love to have you back anytime. Thank you for coming on the show. Oh, thank you for having me. And what you know, is there anything you would what should people look up about your would you like to let people know about

Jared White:

Bridgetown? rb.com you can get all the Bridgetown stuff there. can find me on GitHub. I'm Jared C white. My personal websites, Jared white.com. And that links to a bunch of things. So yeah, it's probably good.

Collin Donnell:

All right. Well, if there's no other closing thoughts, then thanks to both of you and I will He will see you back in a couple of weeks anyway Well I realized I have a very distinct like I'm podcasting voice. Yes. I switch mode that's funny.

Podcasts we love