Це відео не доступне.
Перепрошуємо.
Rich Harris on frameworks, the web, and the edge
Вставка
- Опубліковано 16 сер 2024
- Watch Rich Harris, Svelte's creator, share insights on frontend trends, the edge, and the web at Vercel's Svelte Meetup hosted by Cockroach Labs in NYC. Build with Vercel today: vercel.fyi/try....
0:00 Introduction
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 (🌶🌶🌶🌶)
#vercel #svelte #meetup
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'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 have an entire bookmars folder named "Rich Harris", just for his presentations, that's how much I respect this guy!
Share to me please
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 🤣🤣
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.
This is such a great round up of the current frontend state. Thanks for the valueable insights Rich
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!
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 👍🦾😍😀😘😎🤩
The main reason I love SvelteKit: Less is more.
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.
Excellent talk going over recent trends in js frameworks. Too busy wondering 'if they could', not enough thinking of 'if they should'
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.
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.
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.
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
Always a pleasure to hear Rich Harris speak.
This is great. Especially about cursed trends in modern frameworks that are making us remember lots of unintuitive and tricky approaches/custom semantics.
oh shit
indeed
he's throwing those hot takes as if he was at a chili party!
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" 🤣
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
A fantastic and thoughtful talk from Rich, per usual! :D
I see Rich Harris in the title, I watch it immediately!
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
"Screens are wide but files are tall" is such a down-to-earth argument. I love it.
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)
Welcome to this sermon
Ramen 🙏
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 🤩😀🦾😍😎👍
I am still very much a newb, and its nice knowing there's someone out there like Rich. #InRichWeTrust
Rich opinion is always worth to listen and digest. Premium opinion.
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
I don’t use svelte but i love all of rich harris’s talks
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
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!
We keep reinventing the web! HTML, CSS, JS, PHP were made for the web! Am still bullish on Vanilla Technologies - Just old plain vanilla.
That's a cool video, but something is wrong with the audio track.
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.
Ahh i see svelte creator is a fellow firefox enjoyer
Great talk. Would love to see more of this kind of content 👍
Definitely some great takes 🌶️🌶️🌶️🌶️
Can you make the framework slower
Watch a Rich Harris talk for 30 minutes, get a perfectly clear overview of the frontend world for the next years.
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.
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.”
Rich is a master of masters
This is pure gold, thank you!!!
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
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.
‘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
Lots of food for thought presented very well. Appreciate this.
this is the right time for SvelteKit Mobile/ Native as alternative to React Native
Great talk. Loved the spiciness 🌶️!
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.
I always get fascinated by your talk!
Great talk and lots of things to think about. Thanks for sharing!
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:))
Hey Vercel, you've mistyped "Build step" as "Nuild step" 👐
I really hope there is widespread adoption of sveltekit because this video just makes me want to use it more
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?
i don't always agree with him, but rich harris sometimes feels to me like the only sane "thought leader" in the industry
I love Rich Harris.
Is the peppers falling not in 60fps intentional ?
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"
Well said. Thank you for the talk. I enjoyed every minute of it.
These are some great takes, thanks for the insight
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.)
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.
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.
interested to hear your thoughts on tRPC.. it's so lovely.. back to the basics with rpc. Plus type safety of ts.
Damn the presentation was made in Svelte. I wonder which library is he using? Also he is running it from localhost
🔥🔥🔥
Is it just me or is the audio track a bit out of sync?
He talks highly of DSLs here, but surprised he doesn't mention Wasp, a DSL for full-stack web apps
Puzzled as well.
The man is legend.
Our pastor 🙏🏽
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.
You crossed both Dan and Theo at the same presentation. Swords are drawn!
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.
If MPAs are dead why do I have four Google Spreadsheet tabs open and seven GitHub tabs open
I just want those codes of rich haris
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.
the lagging of the chillies background was triggering something in me....
Thanks Harris.
Great job with the real world examples. Very relatable.
This dude is awesome, tks!
🔥🌶💃🏻
been making frameworks for 10 years wow
"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.
"quite frankly if we could go back to 2016 we would have other priorities" Bless
Is it Okay to translate this video into Japanese?
"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 😅
Whats DSL
Domain-specific language
finally someone who spoke cold hard facts.
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.
Alright im learning svelte
he's so smart holy
I was just casually watching some True Crime (go ahead) and this got served up next and when "the web sucks because of Capitalism" came out as his least spicy take, I knew I was going to fucking love this.
Did he prepare his presentation in Svelte? 🤣
MPA navigation just feels SO weird and jarring now.