Wow. We covered really quickly a little bit of hydration, resumability, streaming islands, et cetera. And I feel like we could be here the whole day talking about a lot of other things when it comes to rendering patterns, but I wanna jump and talk a little bit about what I think is coming down the line.
So, yeah, I had to use a meme. But I think that we'll be discussing a lot routing and revisiting this whole thing of MPAs and SPAs, and where we wanna handle navigation, and revisiting this community decision of moving towards SPAs we had a decade ago. We'll also be discussing a lot about hydration and new and creative ways to overcome the challenges of hydration. We'll be discussing a lot whether we wanna have zero kilobytes JavaScript or not, and how to do so. And I think that we'll be discussing a lot code extraction. And as Dan pointed out a couple of years ago, I think that the next wave of technologies is gonna be about coordinating both clients and several code in a very, very fancy, in the best way possible. And have you seen, for example, this import attribute thing? It's an Akmah proposal. It just made it to TypeScript as a language. And with that you can do, for example, import JSON with type JSON. So I wonder if in the future, for example, we won't be able to do things like important components with type clients or both. I would love to see something like that. And more than ever, we'll be talking about why a given technology is the future.
So a few closing thoughts. As you probably notice, when you find a solution to your problem, you're probably just changing the problem that you have. And while a lot of these solutions, they seem competitive, I think that most of them are actually complementary. They don't solve the same issue all at the same time. Instead, they focus on different parts of the same problem. And that's why the same pattern can be good or bad, depending on which app, which part of your app, et cetera, which case you have. That's why I really like this thing. It's a post called Application Holotypes by Jason Miller, where he basically explored the different kinds of apps you can build, like a social network, an e-commerce, et cetera. And he proposes, OK, how do you want to build rendering for that? How do you want to build navigation? And Ryan Corneado even expands a bit more on that, talking about, for example, how do you want to do hydration? How do you want to do routing for each kind of these holotypes? So I really like it.
Another meme, and I think it's easy to think when we see all these examples with the app router, for example, and these new technologies, to think that we're just going back to rendering HTML on the server like we did back in the day. But the thing is, with PHP and Rails, the boundary, basically they were rendering that HTML and taking form submissions, and that was pretty much it. Years later, Marco tried to push the boundary further, but I guess most of us were busy building SBAs. And then, more recently, we had the PHP in the Ruby community and the Elixir community initiatives like LiveWire, HotWire, and et cetera, where they tried to push this boundary, but coming from a back end background. I think that quick and server components are an interesting attempt coming from a front end background to push this boundary while fully respecting what's client and what's server concerns. Also, as you probably noticed, software development is always going through cycles.
Comments