Why Don't We Have A Laravel For JavaScript?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
if you've been writing code for a while you were probably around for the rails era when suddenly out of nowhere we had a way to build applications with this weird new language Ruby that allowed us to have server and client together in a way that kind of made sense you would write a template you would fill its data out using the model view controller Paradigm and structure through the view and the template what you wanted the user to see and this is a magical pattern that is how so many of the applications we know and love were built and how many of them are still built today services like GitHub are still powered almost entirely by rails they've moved a lot of the client to things like react but the general infrastructure is built around the patterns that rails was one of the first things to invent in the OG Ruby Era the goal of this video is not to talk a bunch of about Ruby or LL or all these other Solutions and the ll in the title has a purpose here because LL is an awesome framework and I don't want to sit here and pretend it isn't it is the PHP framework for web Artisans which sounds a little bit pretentious but let's be real we're JavaScript devs we've said way more pretentious stuff in our time I'm bringing up Lal because it is a very important example of an all-in-one framework what do I mean by allinone well if we take a look the ecosystem you'll start to see what I mean in the fact that it takes a page scroll in a three column structure to see all the options here showcases the level of stuff that exists here and if we just click the getting started and you see how many things are included there are Primitives for so many things in LL from setting up a mail server to managing notifications like push notifications websockets all of that stuff stuff to having a live update layer which if I go back to the main page here there it is live wire the most productive way to build your next web app powerful Dynamic front in UI without leaving PHP you're able to update the client as new data comes in or as a user clicks a button you can see the result come back in all coming from the server where your UI is being powered by the servers side code and is constantly interacting back and forth via something like a websocket these are all really cool things and having one framework that includes all of this so you don't have to go find the right solution for your problem it's just there there's a lot of value to this and there's a reason people getting so hyped about larval and solutions like it there's a reason that we started in the same place with rails back in the day the reason is because when you went hunting for Solutions the ones you would find would often suck like suck really hard the alternative to the rail stack back in the day was the mean stack the mean stack was Express angular and node and of those four things I can definitively say at least two of them are a mistake if not three that's the problem though the alternative to rails which was an all-in-one solution that had recommendations for every problem you might have was a thing that was so insanely modular and the parts were not necessarily built to be very compatible with each other that we could glue them and it could work but it didn't always work great and if one of those parts was hard to implement or build around and it turned out to not be a great part that sucked and it really was awful feeling like the solution you picked was wrong the new one that just came out was right and now you're behind and have to catch that thing up that doesn't really happen in these other ecosystems we don't see a bunch of stuff laravel where people adopted the wrong version and now they're miserable trying to upgrade or they picked the wrong thing to manage their off and now they're trapped in having a miserable time do you know what else doesn't really have that problem anymore react this is why we can go so much more modular now with so much less pain and that's the thesis of this video that we're about to dive deep on the reason we don't have a ll for JavaScript is because things are so much better without it to be clear we have tried there are lots of attempts to do an all-in-one framework for JS the ones that I have pulled up here are Blitz which if you're not familiar is very very similar to what I did with create T3 app and when I say I I mean my community because I didn't really build create T3 app create T3 app is a starting point that includes a bunch of our recommendations we don't really recommend Prisma anymore we really push for drizzle because it's a better experience overall and we learned and have moved on since trpc is a great way to do client server interactions but you can also use server components now too Tailwind CSS is the best way to write CSS even like the rails and The Elixir communities now largely agree with that thankfully next off is an open source authentication layer that you can use and if you don't want to use it there are also Services you can integrate here as well typescript because we don't think you should be ready vanilla JS anymore very rare that it makes sense for application code and next as the core piece we're building around Blitz was originally very similar the difference being Blitz has its own version of a lot of those things its own wrappers around those things and doesn't really give you a way to remove the ones you don't want or replace them with something else instead because it's meant to be a lot more like rails the creator of Blitz Brandon Bayer fly Bayer on Twitter built Blitz because he missed the rail's experience of just having a working solution for every problem he might run into the solution might not be perfect but it at least works and is there he doesn't have to think about it sadly Blitz did not particularly take off okay this is the issue there's no create Blitz it's just the one Blitz thing so it's really hard to compare installs which is what I wanted to do but it is not trivial to do so so I won't do that I would be a weird dunk anyways Blitz is far from the only one of these Solutions though there's also Adonis create with smoke backend applications in record time the types framework for building web apps and API servers they're not as focused on the UI side but you can integrate UI stuff in it this is much more focused on the server side making apis with the whole ecosystem of all the tools and parts and DBS and ORS and controller type things you might want or need and it looks and feels a lot like Ruby and rails so if that's what you're looking for you have the solution there and then there is redwood redwood is particularly fascinating they have some really cool stuff coming soon if you're not already familiar with redwood it is kind of an alternative to next but it's much more focused on being batteries included having all the react conventions all the backend stuff a giant graphql server built into the framework with the ability to interface between client and server story book built in as well which God I really hope they delete at some point because the story would is rough is an interesting option that has also historically found issue finding a customer base and getting adopted to this day I don't know anybody who's actually shipping Redwood that isn't part of the Redwood team which is sad cuz it seems like a really good solution I've had great conversations with them it's really interesting stuff but nobody seems to care they're actually coming out now moving to server components and moving off of graphql which is awesome especially if they have a good migration story but despite existing having all these Solutions and being the rails for JavaScript which as we've established here we have three options and arguably cre3 app is a fourth option but we're more modular our goal is to give you the parts and let you opt in and out these Solutions did not take off and even create the3 app barely did especially when you compare it to things like just vanilla xjs with typescript there's a reason for that though the reason is because it's so much easier to take pieces in out in this ecosystem when it was hard to adopt a solution and it was even harder to identify a good solution and the Absolut was part when most of the solutions sucked having an all-in-one that was guaranteed to be good enough was a fantastic thing especially when you look at those other languages and realize how hard it is to make packages or framework like things there's a common saying in the react World now which is that if you're not using a framework you're building one and on one hand this is meant to be a dunk on the people who say I don't need next or remix or any of those things I can do it myself but the more important undertone here is that effectively any appdev can build the exact framework they need with the parts they do and don't want JavaScript has a bunch of massive advantages here it's way easier to swap these pieces in and out and compose them in the ecosystem around everything from npm to react components to hooks to all the stuff that we adopt and use in these infrastructures and servers and applications it's all much easier to compose change swap in swap out rewrite and do what you want with and over time those pieces have gotten really really good that's the magic that makes JavaScript so special and that's the reason we'll probably never see one of these rails or LEL like things succeed in the JS ecosystem because it's an ecosystem where we have infinitely more people making awesome new solutions that improve on certain problems that the existing Solutions didn't not happy with Prisma well there's three guys in the Ukraine making drizzle which is way faster way smaller generally easier to work with and has a lot fewer of those quirks don't like next we got waku and remix pushing the boundaries of what you can do with react don't like react well we got solid and spelt is phenomenal Solutions for you to adopt as well this is the magic of JavaScript not a flaw in the idea that JavaScript is somehow fundamentally worse because we don't have a laravel is so confusing to me because we have three and no other language has so many great full stack all-in-one Solutions much less so many great pieces that we can compose and assemble into our own best solution these are the strengths of JavaScript it might suck a little bit that if you're learning the language and you look and there's 15 different options for one of the problems that you have and you're used to rails where there's only one it might feel a little bad to have to pick a solution because you're worried about picking wrong the reality nowadays is that it's hard to pick wrong if it's one of the solutions that's being recommended online and the dock that you're reading is less than 5 years old you're probably going to be okay you can start a react app today using Create react app and I might make some jokes on Twitter but it's a fine solution and if you realize it wasn't and you actually want to move to some other solution because I don't know you want to render the pages on the server or you saw these server component things and you were excited you can go make a new project using those Solutions copy paste your components over and they'll probably work the way that JavaScript works is so much more accessible composable and flexible that the desire for these Frameworks just isn't there and if you're in the ecosystem for a long time you quickly realize you don't want that because you'll build a gut feel for the solutions that make sense for you and you can just keep using those instead as much as I love the new nexj server component stuff cre3 app still by default recommends the way that we did it 3 years ago which was render with Pages router a quick template on the server side and then let the client side take over with trpc because that was one of the best ways to build really client Dynamic Heavy applications like what we built with ping we have not moved ping over because it's still a really good solution for that problem but if we wanted to we can and that's the magic sorry for the outfit change I realized I missed a point that I really care about with this discussion and I wanted to take some time to talk about it the idea that any one of these pieces that yes get swapped around a lot improved changed rebuilt constantly has an interesting side effect that people are reasonably concerned about that side effect is startups forming around these pieces in the larvel community the idea of an O company sounds funny because O is just a part of your framework but in the JavaScript Community there are startups that do just that I think this is awesome because we have the options in JavaScript because some things make a lot of sense to just have a package for and O is one of those we have great options like OJs and Luchia to self-host open source authentication but when you realize a lot of the intricacies of off that suck like the compliance the creation of jws and dealing with those all of the weird Integrations at every level you might have to build to make this stuff work in the first place compliance with all the crazy things that big businesses expect getting all of that right sucks hard enough that a company can show up and do it and Clerk's not the first one they're one of many and if you look at other ones like off zero they were largely built around the rails community so this isn't a new thing so I'm really frustrated people seem to think it is that javascripts just forced everyone to go to Services no this has always been a thing more importantly the ability for anyone to build both a service for a thing as well as an open source alternative is better than it's ever been for every one of these big companies that's solving this problem there are five open source Alternatives made by developers just like us that you can contribute to yourself adopt do whatever you want to and if you don't like what they're doing you can Fork it and put it in yourself this is just not the case in these other ecosystems where all the tools are made by the same core team is a win it's not a negative the fact that JavaScript is the best place for these startups to start is not a failure of JavaScript it's again one of the strengths of it it's much harder for a company to take a vertical in their stack and turn that into a business if the vertical is something that's built into rails or LEL if they're in an ecosystem where every piece can be treated in this modular way one of those pieces could become a business if it's what makes sense for that piece there is no other ecosystem where this is the case and I don't get why people treat this like a negative I know a lot of devs that are more than happy still shipping react 16 barely even using Hooks and that's awesome because if that's what you're into and you like the solution you have you don't have to keep up and the fact that we have things going on constantly that's not a negative and I really am confused on like a deep level as to why people look at the JavaScript ecosystem see that there isn't a popular alternative to LL and somehow blame us and say that javascript's worse for it it's not it's actually the magic of JavaScript and it's the reason I will keep betting on it forever long live JS and God bless the maintainers who made this ecosystem the best one in all of software it's a shame other communities look at it and think the good is bad because the good is unrivaled in any other space let me know in the comments why I'm wrong about PHP because I know you guys love to do that and until next time peace nerds
Info
Channel: Theo - t3․gg
Views: 88,942
Rating: undefined out of 5
Keywords: web development, full stack, typescript, javascript, react, programming, programmer, theo, t3 stack, t3, t3.gg, t3dotgg
Id: yaodD79Q4iE
Channel Id: undefined
Length: 12min 36sec (756 seconds)
Published: Sun May 26 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.