I've got huge respect for Rich for being the most pragmatic developer I know. Not falling for the trends, analyzing what's actually wrong and instead trying persuade everyone to change their mind, he just fixes all the issues of modern web development and proves he's just right.
This is why I'm always excited to use svelte or sveltekit. It's not because they have the most bleeding edge features (which one could argue they also do!) but because their ultimate vision is aligned with what I deem important. User experience! I trust that every feature they push was carefully thought out and not just integrated because "all the cool kids are doing it these days". Excited for Svelte's future, even if AI disrupts everything and we're back to working at coal mines lol
I find the iPickAxe 2.0 is the best option for getting the most coal out of a seem, it's a great user driven device, of course Coal GPT is getting a lot better but I don't see it taking all our coal mining jobs, at least not for another 3 years
I just find it doesn't make me want to smash my computer monitor with a baseball bat like when I use react, which is more agreeable. Also, it achieves the lighthouse target which is super important.
Funny how Rich Harris, the creator of svelte, one of the most loved frameworks of all time, tries to pretend he is not one of the smartest figures on this subject.
Jean-Luc Godard was a film critic who became a great filmmaker. Quentin Tarantino was a video rental store nerd who became a great filmmaker. Rich Harris is a great insightful critic of web tech who also builds them. "Rethinking Reactivity" is top ten tech demos of all time.
I'm not a Svelte developper (I'm on Angular) and I personally have zero opinion on these subjects, but i really enjoy the thought provoking yet benevolant ideas of Rich Harris and how they ended up implementing them in their version of a good JS framework with Svelte. I like to see him as the new Jesuscript, trying to bring good vibes and interesting ideas so we become better developpers.
I am a 5+ years Vue dev and I love Vue but everytime I watch Rich talking about something I agree with what he has to say! I should probably go and start using Sveltekit! I love the decisions the team made and it must be a great experience building apps with it
I am an angular and vue developer since the beginning of both. Did a lot of enterprise Apps in both of them. BUT I can tell you that the moment you try out stuff svelte in svelte your mind will blow away. Still getting this feeling when implementing stuff in svelte, like "wtf, and this was it? I dont have to do some boilerplaty magic stuff to get this to work?" man i really love svelte 😅
I'm a 3+ years Vue dev and I also love Vue coming from React (blearggghh), especially with Composition API, Pinia, VueUse, plugins, battle-tested, etc etc., but I also agree with Rich's points. I'm amazed at how he can distill complex topics and explain them in a crystal clear, almost instantly understandable way. I've dived into Svelte several times now, and after putting aside criticisms of some of Svelte's syntax (if/else, for example), the lack of a custom renderer, questions about how well its compact size scales with increasing complexity, and doubts I had about Svelte's stores architecture, my experience has been that Svelte values practicality and usability (for both devs and end users) most highly. As a dev I feel good knowing that every decision was thoughtfully, pragmatically made to simplify my experience. I think for prototyping and a wide range of simpler use cases, Svelte is the right tool. I feel like Sveltekit is a great way for me to become a full stack developer, though Nuxt 3 looks fantastic as well to start delving into the back end.
Same thing here, and with the direction Vue 3 is going I think it's time to make the jump to Svelte. I feel like Vue is slowly trying to turn into React these days. Or maybe Qwik for some cases.
@@jex8885 I think Vue is in a great spot right now, now that the Options API -> Composition API transition (a bit painful for a lot of Vue devs) is starting to settle in. I like the Composition API as it opens up power user-type patterns and reusability (vueUse is amazing). I *have* learned that React's decision to decouple React proper from rendering targets (e.g. reactDOM, react native, react three fiber) is actually very powerful. So it's a bit of pool of tools. I'll be learning R3F (back to React, well at least they have good docs now :P), working with Vue at work, and continuing to dabble with Sveltekit to see how easy it makes life for 90+% of websites/apps.
@@dannydevs Yeah, not for me, I think the composition API was a mistake. The structure in large-scale Vue projects I've participated in has gone bananas to the point where the code is barely readable. (especially if you're doing code reviews) It was good on paper, but might as well use react imo.
Love the nuanced edge opinion. The issue in architecting performant and delightful products and experiences is tuning and setting up the dev team for success to properly match the right code pieces with the right services and runtimes. Doing batch data job processing client side and pushing gigs of data is terrible. But rendering a data intensive report to an html string in a stored proc is equally terrible. Engineering - Trade Offs, reslience / performance / etc etc... great take Rich.
It's great that Rich goes out and talks to ppl about this, some developers are very recluse and I think this is another reason why Svelte will continue to become industry standard. The developer is a very normal person.
I really love the takes by Rich. What concerns me more about all the takes are the RPC things. I've never been a fan and being reminded of the potential security vulnerabilities, I am so scared.
27:21 “We will regret reinventing RPC 🌶🌶🌶” surprised me. 2022-06-23: “RPC in the sense it's generally meant in this context is really just about making fetch() more ergonomic and type safe” Something must have happened in the past year to change Rich's mind. People keep bringing up "security vulnerabilities" as the top concern but the more fundamental issue is that the laws of physics of the client-server boundary dictate that *ideally* all client-server interactions should be *designed* to be as «coarse-grained» as possible. Granted `const localFn = server$(async (args) => …)` is more ergonomic but it should never be mistaken for a fine-grained local function. “The major differences between local and distributed computing concern the areas of latency, memory access, partial failure, and concurrency. The difference in latency is the most obvious, but in many ways is the least fundamental. The often overlooked differences concerning memory access, partial failure, and concurrency are far more difficult to explain away, and the differences concerning partial failure and concurrency make unifying the local and remote computing models impossible without making unacceptable compromises.” -A Note on Distributed Computing (1994) While solutions based on Phoenix Liveview, Laravel Livewire, and Hotwire Turbo Streams can work for some use cases, the realities of (wireless, mobile) networking means that the approach isn't anywhere near universal.
Rich Harris always pushes the bar on how we use technology AND introduces new ways to challenge the status quo! Presenting svelte using IPFS is 🌶🌶🌶🌶! Great Talk and Continue doing the lords work Rich!
It is a great talk and even better is the whole presentation is actually a website instead of a PowerPoint, I didn’t expect that at all, he is really great at Frontend stuff and presentation
This is great. Especially about cursed trends in modern frameworks that are making us remember lots of unintuitive and tricky approaches/custom semantics.
I am 5 years into my programming journey started taking it serious about 3 years ago I know HTML CSS JavaScript PHP SQL just about everything cloud. I claim that I could build an app with any framework which I know is a wild claim but I have a good grasp on functional object-oriented event driven and blah blah blah. I have yet to find a home framework home that is. I think I'm leaning towards vue because I hate Facebook. But you guys have convinced me to try Svelte
Great talk. I'm surprised you didn't bring up PHP in the last solid-start example. Writing inline SQL queries was basically what people were chastising PHP developers for over twenty years ago, but with a fresh coat of TypeScript paint people are hailing it as some sort of breakthrough. It's a bit insane.
Awesome talk Rich! I'd remove the noise reduction on the speaker's mic, it distort it too much and gets very distracting after a while and I much prefer to hear the audience as it sounds more natural.
To help you navigate (slide titles written as they were in the talk): - 1:25 your framework is fine (🌶) --> 2:04 why web sucks - 3:27 0kb JS is not a goal (🌶🌶) - 5:26 Most sites should work without JavaScript (🌶🌶) - 9:32 MPAs are dead (🌶🌶🌶) - 13:45 explicit DSLs are good (🌶🌶) --> 14:33 javascript is event-driven; ui is state-driven - 16:06 implicit DSLs are... less good (🌶🌶🌶) - 24:34 code should run close to the user (🌶🌶) - 27:21 we will regret reinventing RPC (🌶🌶🌶) - 30:42 build steps are good (🌶) - 33:26 none of this matters (🌶🌶🌶🌶)
I love SvelteKit I feel the only thing missing for me using it in production is a decent component library like Mantine (and yes Im aware of Skeleton, SvelteUI, DaisyUI, etc...)
Qwik started the trend to trash other frameworks and I'm glad to see it being continued by Svelte here. It's so much more honest than the days of React cheerleaders and everyone staying in their own lanes. As a newer dev, it made it really difficult to separate hype from well-informed architectures. Videos like this and the (unlisted) Qwik video from WWC22 that explicitly compare and even criticize other frameworks have consistently been the most informative
Did rich destroy capitalism, remix and qwick all in one go? The master of shade! The dealbreaker on remix was so on the point - "Sorry boss I didn't mean to leak our sensitive code to the browser" 🤣
I would really like to know what he uses for these presentations. He is showing them in a localhost, so i wonder if he develops it all by hand or if he uses some extra tools on top
The solidjs example just made me realize that being able to essentially make non-reactive values based on the props given on the first render would be amazing for performance in many places in one of my apps. If I already have react determine whether to keep a component mounted based on the key, it shouldn't need to reprocess a passed object at all since the data will be the same, for example let's say I'm displaying an ingame shop in a Card component and also passing a Map which contains all the basic item data, this data will never change.
If none of this matters what should I do now that IA is such a menace? Two years ago I was selling simple sites with HTML, CSS, JS, and PHP for local small businesses. It was the best and most enjoyable job I've ever had. Then I added Astro when it started and it was even better, because I didn't want to dive into a framework. I thought that it would just make things more complex without need for me or my clients. And now I want to return to something similar and was considering finally learning React, but found Svelte. But does this makes any sense with the raise of IA? Would I be wasting my time trying to learn something at this point?
The view transition API more or less turns MPAs into spas doesn't it? Don't know about the technical details, but it makes MPAs way snappier and it feels like the browser prefetches URLs.
“ although the current implementation targets single page apps (SPAs), this feature will be expanded to allow for transitions between full page loads, which is currently impossible.”
Just going to leave something here from the Svelte docs: "It is important to note that the reactive blocks are ordered via simple static analysis at compile time, and all the compiler looks at are the variables that are assigned to and used within the block itself, not in any functions called by them." The docs go on to explain this via an example. A tricky gotcha has been explicitly called out by an explicit DSL here. Svelte is cool because it is concise as a language and magical due to its compiler. But when it comes to programming, I'll take predictability over magical conciseness any day.
I've had a couple conversations with people about DSL especially that Angular, Vue and Svelte have them, and from what I've seen people greatly exaggerate the downsides of using them and then forget that JSX is one too, until we get into the nitty gritty, most reasonable people actually realize. You should be able to enjoy whatever form of DSL you like just don't pretend your DSL is pure unadulterated Javascript.
Rich is awesome! But you should tell google and other ads company that mpas are dead, cause they only work correctly on them :/ I built my latest website with SvelteKit and boy, am I in pain with ad sense.
I've been STRUGGLING to reboot a long dead Dev Career, hopeful as I was that modern web dev would be so much better by now, what I've encountered is far from that.. quite honestly Im thinking of abandoning the nodejs world and just going all in on java spring boot. As much as I want to love nextjs damn, it works great for the demo's, but its a dark, straight, narrow, unforgiving passage through the valley of the shadow of build errors and re-hydrating errors!!! maybe svelt is "A New Hope"
I absolutely love working with Svelte and do not have any actual experience with Solid. I just recreated (what I understand to be) the same situation in Svelte and there are also two different behaviors. When using the prop in the template it reacts to updates to the prop but when assigning it (even with let) to a variable it does not. Or is this ok because of Svelte being explicit about being different? I'm in no way a fan of JSX for a bunch of reasons. But I feel like the critique in the shown tweet would also apply for Svelte, wouldn't it? (And recreating the example in the respective playgrounds Solid even tells me to be cautious of the first case not reacting to changes.)
Great talk, one thing that really stood out to me is the whole server side network call stuff. I thought we all agreed a long time ago that running code closest to the user is the best, and network calls are hugely expensive. Of course everything is a trade off, but this is something everyone should always have on their mind. Network calls are expensive.
The amount of critical thought that Rich puts on every take to get to an absolutely correct opinion is absurd. I wish I could delegate all my life decisions to this man.
I agree that build steps are good, or at least much better than random slow downs for users when just-in-time optimisations are run. But I think they should always be an optional step that you can bypass while developing. It's infuriating to code in a language that requires you to wait several seconds and THEN manually refresh to see any tiny change; especially when the language you're using is a language that transpiles to javascript that sill is interpreted in the browser. I think it's a bit different with traditional compiled languages because here you usually can't avoid a build step completely but you can usually configure it to progressively build only the changed parts and with all optimisations disabled to still get a decent build speed locally. But javascript build tools quite often the only option is a full prod build, at least sometimes a buggy half functional live reload version that works for most kinds of changes but for 10% of changes still needs to be killed and re-started (which is almost as slow as a prod build if not even worse; I have several project folders where I discovered that running a production build and rebooting a production configured local webserver is several seconds faster than waiting for the "live reload" to recompile and reload the browser for some bizarre reason). And annoyingly with javascript and node packages the main delay in either kind of compilation is al the overhead of spinning up the build system, needlessly checking for updates and often needlessly re-downloading stuff for no good reason; and any actual optimisation options like minification and tree-shaking adds only milliseconds in a multi second build or just a few seconds in a multi minute build; so the only real reason to even bother to run any different options than production is to get nicer file-names and less reliance on sourcemaps to be able to debug.
Capitalism has been imposed upon us, the only choice we have bar revolution is to work within it, that doesn't mean we can't criticise it at the same time
I would argue that Web sucking is a product of several things. Capitalism is one of them, but the other one is this push for doing everything on the Web, even though that was not the original intent. We now want to do complicated graphics editing in the browser using a technology that was designed specifically for displaying static data in tables and a language that required years and years of updates and additional external tooling to be called at least decent. Then we tried to make something better to replace it with something probably better, but WebAssembly will not take over, not in the near future. The only option we have right now is to find workarounds and try to make the best of the not-so-bad but also not-perfect situation without touching the fundamentals, while testing new solutions in the hope that this time they gonna stick for longer than a decade.
"When you last went on a recipe website ... were you left thinking 'if only they had used a different abstraction for creating DOM elements'?" Actually yeah, kinda wish they used Svelte, their site would be a little bit faster 😅
"lighthouse is not a scorecard" is something I agree with. But it's wrong when Google punishes your page rank on your score. SEO encourages us to trick and scam a high Lighthouse Score. It's shit.
I've got huge respect for Rich for being the most pragmatic developer I know. Not falling for the trends, analyzing what's actually wrong and instead trying persuade everyone to change their mind, he just fixes all the issues of modern web development and proves he's just right.
Rich is in a league of his own. Fantastic presentation!
he really is. how is this possible. brilliant.
This is why I'm always excited to use svelte or sveltekit. It's not because they have the most bleeding edge features (which one could argue they also do!) but because their ultimate vision is aligned with what I deem important. User experience! I trust that every feature they push was carefully thought out and not just integrated because "all the cool kids are doing it these days". Excited for Svelte's future, even if AI disrupts everything and we're back to working at coal mines lol
I find the iPickAxe 2.0 is the best option for getting the most coal out of a seem, it's a great user driven device, of course Coal GPT is getting a lot better but I don't see it taking all our coal mining jobs, at least not for another 3 years
I just find it doesn't make me want to smash my computer monitor with a baseball bat like when I use react, which is more agreeable. Also, it achieves the lighthouse target which is super important.
check Ryan Carniato videos on solid development... he's doing the same but with less opinions.. He 's just giving you the building blocks you need!
I have an entire bookmars folder named "Rich Harris", just for his presentations, that's how much I respect this guy!
Share to me please
Funny how Rich Harris, the creator of svelte, one of the most loved frameworks of all time, tries to pretend he is not one of the smartest figures on this subject.
Bro is a genius!
Right! It’s hilarious. But I think Rich is a genuine chap.
Whether he does intentionally or not, both are clever postures
Jean-Luc Godard was a film critic who became a great filmmaker. Quentin Tarantino was a video rental store nerd who became a great filmmaker. Rich Harris is a great insightful critic of web tech who also builds them. "Rethinking Reactivity" is top ten tech demos of all time.
Agreed. We’re lucky to have this man.
I'm slowly moving to svelte. It's great to work with a supportive community with a vision of the product. You'll get to learn a lot this way
I'm not a Svelte developper (I'm on Angular) and I personally have zero opinion on these subjects, but i really enjoy the thought provoking yet benevolant ideas of Rich Harris and how they ended up implementing them in their version of a good JS framework with Svelte. I like to see him as the new Jesuscript, trying to bring good vibes and interesting ideas so we become better developpers.
Jesuscript 🤣🤣
This is such a great round up of the current frontend state. Thanks for the valueable insights Rich
I am a 5+ years Vue dev and I love Vue but everytime I watch Rich talking about something I agree with what he has to say! I should probably go and start using Sveltekit! I love the decisions the team made and it must be a great experience building apps with it
I am an angular and vue developer since the beginning of both. Did a lot of enterprise Apps in both of them. BUT I can tell you that the moment you try out stuff svelte in svelte your mind will blow away. Still getting this feeling when implementing stuff in svelte, like "wtf, and this was it? I dont have to do some boilerplaty magic stuff to get this to work?" man i really love svelte 😅
I'm a 3+ years Vue dev and I also love Vue coming from React (blearggghh), especially with Composition API, Pinia, VueUse, plugins, battle-tested, etc etc., but I also agree with Rich's points. I'm amazed at how he can distill complex topics and explain them in a crystal clear, almost instantly understandable way. I've dived into Svelte several times now, and after putting aside criticisms of some of Svelte's syntax (if/else, for example), the lack of a custom renderer, questions about how well its compact size scales with increasing complexity, and doubts I had about Svelte's stores architecture, my experience has been that Svelte values practicality and usability (for both devs and end users) most highly. As a dev I feel good knowing that every decision was thoughtfully, pragmatically made to simplify my experience. I think for prototyping and a wide range of simpler use cases, Svelte is the right tool. I feel like Sveltekit is a great way for me to become a full stack developer, though Nuxt 3 looks fantastic as well to start delving into the back end.
Same thing here, and with the direction Vue 3 is going I think it's time to make the jump to Svelte. I feel like Vue is slowly trying to turn into React these days.
Or maybe Qwik for some cases.
@@jex8885 I think Vue is in a great spot right now, now that the Options API -> Composition API transition (a bit painful for a lot of Vue devs) is starting to settle in. I like the Composition API as it opens up power user-type patterns and reusability (vueUse is amazing). I *have* learned that React's decision to decouple React proper from rendering targets (e.g. reactDOM, react native, react three fiber) is actually very powerful. So it's a bit of pool of tools. I'll be learning R3F (back to React, well at least they have good docs now :P), working with Vue at work, and continuing to dabble with Sveltekit to see how easy it makes life for 90+% of websites/apps.
@@dannydevs Yeah, not for me, I think the composition API was a mistake. The structure in large-scale Vue projects I've participated in has gone bananas to the point where the code is barely readable. (especially if you're doing code reviews)
It was good on paper, but might as well use react imo.
Love the nuanced edge opinion. The issue in architecting performant and delightful products and experiences is tuning and setting up the dev team for success to properly match the right code pieces with the right services and runtimes. Doing batch data job processing client side and pushing gigs of data is terrible. But rendering a data intensive report to an html string in a stored proc is equally terrible. Engineering - Trade Offs, reslience / performance / etc etc... great take Rich.
Always a pleasure to hear Rich Harris speak.
It's great that Rich goes out and talks to ppl about this, some developers are very recluse and I think this is another reason why Svelte will continue to become industry standard. The developer is a very normal person.
What standards committee will standardize Svelte/Sveltekit? IEEE? W3?
I really love the takes by Rich. What concerns me more about all the takes are the RPC things. I've never been a fan and being reminded of the potential security vulnerabilities, I am so scared.
27:21 “We will regret reinventing RPC 🌶🌶🌶” surprised me.
2022-06-23:
“RPC in the sense it's generally meant in this context is really just about making fetch() more ergonomic and type safe”
Something must have happened in the past year to change Rich's mind.
People keep bringing up "security vulnerabilities" as the top concern but the more fundamental issue is that the laws of physics of the client-server boundary dictate that *ideally* all client-server interactions should be *designed* to be as «coarse-grained» as possible.
Granted
`const localFn = server$(async (args) => …)`
is more ergonomic but it should never be mistaken for a fine-grained local function.
“The major differences between local and distributed computing concern the areas of latency, memory access, partial failure, and concurrency. The difference in latency is the most obvious, but in many ways is the least fundamental.
The often overlooked differences concerning memory access, partial failure, and concurrency are far more difficult to explain away, and the differences concerning partial failure and concurrency make unifying the local and remote computing models impossible without making unacceptable compromises.”
-A Note on Distributed Computing (1994)
While solutions based on Phoenix Liveview, Laravel Livewire, and Hotwire Turbo Streams can work for some use cases, the realities of (wireless, mobile) networking means that the approach isn't anywhere near universal.
Switched from T3 stack to Svelte / Sveltekit 2 weeks ago for my latest project and not planning on switching again anytime soon.
Sveltekit is the best meta-framework ever, we dont need any other frameworks, Sveltelit + Vercel takes care of everything 👍🦾😍😀😘😎🤩
Rich Harris always pushes the bar on how we use technology AND introduces new ways to challenge the status quo!
Presenting svelte using IPFS is 🌶🌶🌶🌶!
Great Talk and Continue doing the lords work Rich!
The main reason I love SvelteKit: Less is more.
Excellent talk going over recent trends in js frameworks. Too busy wondering 'if they could', not enough thinking of 'if they should'
A fantastic and thoughtful talk from Rich, per usual! :D
oh shit
indeed
he's throwing those hot takes as if he was at a chili party!
It is a great talk and even better is the whole presentation is actually a website instead of a PowerPoint, I didn’t expect that at all, he is really great at Frontend stuff and presentation
Every time I listen to Rich, it makes me want to learn sveltekit
please do, you will never look back
And then?
@@YehiaAbdelmohsen +1
Just do it! It will blow your mind - such a breeze to work with (just the two cents of an long time enterprise angular, vue and React developer)
This is great. Especially about cursed trends in modern frameworks that are making us remember lots of unintuitive and tricky approaches/custom semantics.
I am still very much a newb, and its nice knowing there's someone out there like Rich. #InRichWeTrust
I see Rich Harris in the title, I watch it immediately!
I am 5 years into my programming journey started taking it serious about 3 years ago I know HTML CSS JavaScript PHP SQL just about everything cloud. I claim that I could build an app with any framework which I know is a wild claim but I have a good grasp on functional object-oriented event driven and blah blah blah. I have yet to find a home framework home that is. I think I'm leaning towards vue because I hate Facebook. But you guys have convinced me to try Svelte
"Screens are wide but files are tall" is such a down-to-earth argument. I love it.
Great talk. I'm surprised you didn't bring up PHP in the last solid-start example. Writing inline SQL queries was basically what people were chastising PHP developers for over twenty years ago, but with a fresh coat of TypeScript paint people are hailing it as some sort of breakthrough. It's a bit insane.
I don't understand what has this to do with RPC?
You can make the same mistake with REST API
Awesome talk Rich!
I'd remove the noise reduction on the speaker's mic, it distort it too much and gets very distracting after a while and I much prefer to hear the audience as it sounds more natural.
This, I found it quite distracting
Great talk. Loved the spiciness 🌶️!
To help you navigate (slide titles written as they were in the talk):
- 1:25 your framework is fine (🌶)
--> 2:04 why web sucks
- 3:27 0kb JS is not a goal (🌶🌶)
- 5:26 Most sites should work without JavaScript (🌶🌶)
- 9:32 MPAs are dead (🌶🌶🌶)
- 13:45 explicit DSLs are good (🌶🌶)
--> 14:33 javascript is event-driven; ui is state-driven
- 16:06 implicit DSLs are... less good (🌶🌶🌶)
- 24:34 code should run close to the user (🌶🌶)
- 27:21 we will regret reinventing RPC (🌶🌶🌶)
- 30:42 build steps are good (🌶)
- 33:26 none of this matters (🌶🌶🌶🌶)
MPAs are dead just 3 peppers? ho ho ho
Thank you!
I don’t use svelte but i love all of rich harris’s talks
Rich opinion is always worth to listen and digest. Premium opinion.
Great talk. Would love to see more of this kind of content 👍
Definitely some great takes 🌶️🌶️🌶️🌶️
I love SvelteKit I feel the only thing missing for me using it in production is a decent component library like Mantine (and yes Im aware of Skeleton, SvelteUI, DaisyUI, etc...)
Radix Svelte is upcoming which will be similar like Radix in React!!!
Tailwindcss and Daisyui works wonderfully with Svele/Sveltekit 🤩😀🦾😍😎👍
Qwik started the trend to trash other frameworks and I'm glad to see it being continued by Svelte here. It's so much more honest than the days of React cheerleaders and everyone staying in their own lanes. As a newer dev, it made it really difficult to separate hype from well-informed architectures. Videos like this and the (unlisted) Qwik video from WWC22 that explicitly compare and even criticize other frameworks have consistently been the most informative
Did rich destroy capitalism, remix and qwick all in one go? The master of shade! The dealbreaker on remix was so on the point - "Sorry boss I didn't mean to leak our sensitive code to the browser" 🤣
I always get fascinated by your talk!
This is pure gold, thank you!!!
Someone please explain what's the issue with the solid code shown at 24:03 Thanks!
Nothing is wrong.. Is just a computed variabel... You just have to think about it... which ppl consider overated these days:))
Lots of food for thought presented very well. Appreciate this.
Great talk and lots of things to think about. Thanks for sharing!
I would really like to know what he uses for these presentations. He is showing them in a localhost, so i wonder if he develops it all by hand or if he uses some extra tools on top
The solidjs example just made me realize that being able to essentially make non-reactive values based on the props given on the first render would be amazing for performance in many places in one of my apps. If I already have react determine whether to keep a component mounted based on the key, it shouldn't need to reprocess a passed object at all since the data will be the same, for example let's say I'm displaying an ingame shop in a Card component and also passing a Map which contains all the basic item data, this data will never change.
If none of this matters what should I do now that IA is such a menace? Two years ago I was selling simple sites with HTML, CSS, JS, and PHP for local small businesses. It was the best and most enjoyable job I've ever had. Then I added Astro when it started and it was even better, because I didn't want to dive into a framework. I thought that it would just make things more complex without need for me or my clients. And now I want to return to something similar and was considering finally learning React, but found Svelte. But does this makes any sense with the raise of IA? Would I be wasting my time trying to learn something at this point?
The view transition API more or less turns MPAs into spas doesn't it? Don't know about the technical details, but it makes MPAs way snappier and it feels like the browser prefetches URLs.
“ although the current implementation targets single page apps (SPAs), this feature will be expanded to allow for transitions between full page loads, which is currently impossible.”
Just going to leave something here from the Svelte docs: "It is important to note that the reactive blocks are ordered via simple static analysis at compile time, and all the compiler looks at are the variables that are assigned to and used within the block itself, not in any functions called by them." The docs go on to explain this via an example. A tricky gotcha has been explicitly called out by an explicit DSL here. Svelte is cool because it is concise as a language and magical due to its compiler. But when it comes to programming, I'll take predictability over magical conciseness any day.
this is the right time for SvelteKit Mobile/ Native as alternative to React Native
Hey Vercel, you've mistyped "Build step" as "Nuild step" 👐
Rich is a master of masters
I've had a couple conversations with people about DSL especially that Angular, Vue and Svelte have them, and from what I've seen people greatly exaggerate the downsides of using them and then forget that JSX is one too, until we get into the nitty gritty, most reasonable people actually realize.
You should be able to enjoy whatever form of DSL you like just don't pretend your DSL is pure unadulterated Javascript.
These are some great takes, thanks for the insight
We keep reinventing the web! HTML, CSS, JS, PHP were made for the web! Am still bullish on Vanilla Technologies - Just old plain vanilla.
Well said. Thank you for the talk. I enjoyed every minute of it.
Watch a Rich Harris talk for 30 minutes, get a perfectly clear overview of the frontend world for the next years.
Ahh i see svelte creator is a fellow firefox enjoyer
interested to hear your thoughts on tRPC.. it's so lovely.. back to the basics with rpc. Plus type safety of ts.
Rich is awesome! But you should tell google and other ads company that mpas are dead, cause they only work correctly on them :/ I built my latest website with SvelteKit and boy, am I in pain with ad sense.
Damn the presentation was made in Svelte. I wonder which library is he using? Also he is running it from localhost
I really hope there is widespread adoption of sveltekit because this video just makes me want to use it more
Is the peppers falling not in 60fps intentional ?
I love Rich Harris.
I've been STRUGGLING to reboot a long dead Dev Career, hopeful as I was that modern web dev would be so much better by now, what I've encountered is far from that.. quite honestly Im thinking of abandoning the nodejs world and just going all in on java spring boot. As much as I want to love nextjs damn, it works great for the demo's, but its a dark, straight, narrow, unforgiving passage through the valley of the shadow of build errors and re-hydrating errors!!! maybe svelt is "A New Hope"
i don't always agree with him, but rich harris sometimes feels to me like the only sane "thought leader" in the industry
I absolutely love working with Svelte and do not have any actual experience with Solid.
I just recreated (what I understand to be) the same situation in Svelte and there are also two different behaviors.
When using the prop in the template it reacts to updates to the prop but when assigning it (even with let) to a variable it does not.
Or is this ok because of Svelte being explicit about being different?
I'm in no way a fan of JSX for a bunch of reasons.
But I feel like the critique in the shown tweet would also apply for Svelte, wouldn't it?
(And recreating the example in the respective playgrounds Solid even tells me to be cautious of the first case not reacting to changes.)
Great talk, one thing that really stood out to me is the whole server side network call stuff. I thought we all agreed a long time ago that running code closest to the user is the best, and network calls are hugely expensive. Of course everything is a trade off, but this is something everyone should always have on their mind. Network calls are expensive.
Fire! Someone know what is he using as the presentation software?
@@elliottjohnson1753 oh lol, I thought it was a app like Slidev, thanks
What is he using?
@@Iamlucasvieira someone told that it was just a sveltekit. I found a similar software, Slidev
That was my guess - he created the presentation as a SvelteKit app. It's probably easier for him.
Great job with the real world examples. Very relatable.
Our pastor 🙏🏽
Welcome to this sermon
Ramen 🙏
Is it just me or is the audio track a bit out of sync?
The amount of critical thought that Rich puts on every take to get to an absolutely correct opinion is absurd. I wish I could delegate all my life decisions to this man.
The man is legend.
I agree that build steps are good, or at least much better than random slow downs for users when just-in-time optimisations are run. But I think they should always be an optional step that you can bypass while developing. It's infuriating to code in a language that requires you to wait several seconds and THEN manually refresh to see any tiny change; especially when the language you're using is a language that transpiles to javascript that sill is interpreted in the browser.
I think it's a bit different with traditional compiled languages because here you usually can't avoid a build step completely but you can usually configure it to progressively build only the changed parts and with all optimisations disabled to still get a decent build speed locally.
But javascript build tools quite often the only option is a full prod build, at least sometimes a buggy half functional live reload version that works for most kinds of changes but for 10% of changes still needs to be killed and re-started (which is almost as slow as a prod build if not even worse; I have several project folders where I discovered that running a production build and rebooting a production configured local webserver is several seconds faster than waiting for the "live reload" to recompile and reload the browser for some bizarre reason). And annoyingly with javascript and node packages the main delay in either kind of compilation is al the overhead of spinning up the build system, needlessly checking for updates and often needlessly re-downloading stuff for no good reason; and any actual optimisation options like minification and tree-shaking adds only milliseconds in a multi second build or just a few seconds in a multi minute build; so the only real reason to even bother to run any different options than production is to get nicer file-names and less reliance on sourcemaps to be able to debug.
🔥🔥🔥
Everyone have their own opinions. Just use what gets the job done. What's futile is figuring out what to use so much you end up doing nothing.
You crossed both Dan and Theo at the same presentation. Swords are drawn!
‘The web sucks because of capitalism’ - on a talk hosted by Vercel, a capitalist company. Irony.
Capitalism has been imposed upon us, the only choice we have bar revolution is to work within it, that doesn't mean we can't criticise it at the same time
Working to afford food to eat or otherwise starve in a capitalist system, ironic
This dude is awesome, tks!
Thanks Harris.
Whats DSL
Domain-specific language
He talks highly of DSLs here, but surprised he doesn't mention Wasp, a DSL for full-stack web apps
Puzzled as well.
Is it Okay to translate this video into Japanese?
I just want those codes of rich haris
finally someone who spoke cold hard facts.
If MPAs are dead why do I have four Google Spreadsheet tabs open and seven GitHub tabs open
Alright im learning svelte
I would argue that Web sucking is a product of several things. Capitalism is one of them, but the other one is this push for doing everything on the Web, even though that was not the original intent. We now want to do complicated graphics editing in the browser using a technology that was designed specifically for displaying static data in tables and a language that required years and years of updates and additional external tooling to be called at least decent. Then we tried to make something better to replace it with something probably better, but WebAssembly will not take over, not in the near future. The only option we have right now is to find workarounds and try to make the best of the not-so-bad but also not-perfect situation without touching the fundamentals, while testing new solutions in the hope that this time they gonna stick for longer than a decade.
"When you last went on a recipe website ... were you left thinking 'if only they had used a different abstraction for creating DOM elements'?" Actually yeah, kinda wish they used Svelte, their site would be a little bit faster 😅
🔥🌶💃🏻
Can you make the framework slower
been making frameworks for 10 years wow
Fantastic talk!
he's so smart holy
"quite frankly if we could go back to 2016 we would have other priorities" Bless
"lighthouse is not a scorecard" is something I agree with. But it's wrong when Google punishes your page rank on your score. SEO encourages us to trick and scam a high Lighthouse Score. It's shit.
the lagging of the chillies background was triggering something in me....
Thank you all for this talk 🤍🦄💕
🔥🔥🔥🔥
Did he prepare his presentation in Svelte? 🤣