Reactivity & Rendering

  Рет қаралды 8,526

Ryan Carniato

Ryan Carniato

Күн бұрын

Пікірлер
@hansschenker
@hansschenker 2 жыл бұрын
The best explanation for what SolidJs does is Ryan's:"...you can have ten different expressions in your template and each can update independently.."
@mfpears
@mfpears 2 жыл бұрын
A lot of of people don't understand the benefits of asynchronous reactivity, but it's literally the same selling point as synchronous reactivity. The only difference is the learning curve. It's not harder to do. There's just more to learn. IMO it's worth it.
@larrycoleman8149
@larrycoleman8149 2 жыл бұрын
Saw your video. combineLastest is annoying. It's impossible to group form properties by form name without doing a bunch of redundant calculations when some props rely on form.valueChanges and some do not. Rxjs simply does not allow people to write clean code in some cases
@hansschenker
@hansschenker 2 жыл бұрын
Ryan could you give a presentation in which you do not mention any other Web framework (React, Svelte, Prereact, Vue, ...) and just talk on your Design Philosophy, your assumptions why you have choosen the your basic syntax construct (createSignal, createResource). Every mayor Web Framework has a profound Design Philosophy and works with assumptions. All your thoughts should be your words with no reference to another framework! Still appreciate your effort on finding a new way!
@msetti
@msetti 2 жыл бұрын
Hi Ryan, thanks for the content you make, it's masterpiece 👌. Hope to see more similar streams
@hansschenker
@hansschenker 2 жыл бұрын
Are you sure : "Angular upcoming with Signals"?
@arthurfedotiew3609
@arthurfedotiew3609 2 жыл бұрын
I have never written a line of code with solidjs but recently started watching your content like mad man!)) I am really confused though, why all these frameworks like react, svelte, and solidjs included allow only using synchronous components, whereas all the useful things in javascript happen asynchronously due to its single main threaded implementation. The only exception as far as I understand is Qwik which allow you to write async components using very similar to solidjs (to the best of my knowledge) reactive primitives like signals.
@ryansolid
@ryansolid 2 жыл бұрын
It's not that they ignore async. There are mechanisms. Things like Suspense. The goal here is consistency. The challenge is JavaScripts mechanisms give us a bit of what you need but don't make those guarantees. And the APIs aren't all suitable. Like pretend you wanted an Async Component.. that used async/await .. the second you hit the await you don't process the rest of that code. It's blocking in a sense. What you probably want to do is show some sort of affordance related to its loading. UIs are a constant thing, not something that freezes in time, we need to indicate the passing of time. The solution generally is to turn the promise into something we can describe synchronously like a Signal(Resources we call them in Solid when the source is a Promise), or if you have a re-render model catch it above in a boundary of some sort. I would say most frameworks now have good patterns around async now. Especially things like Transitions in React or Solid which give us tools to ensure consistency. And I'd challenge anyone that would suggest otherwise. If you'd like to learn more about what I mean on consistency I suggest these 2 articles: dev.to/this-is-learning/why-all-the-suspense-understanding-async-consistency-in-javascript-frameworks-3kdp dev.to/this-is-learning/the-cost-of-consistency-in-ui-frameworks-4agi If you want to understand the difference between how Qwik and Solid use Signals this video you are watching is a good one. Most things I say about Preact apply to Qwik which differs from how Solid works.
@arthurfedotiew3609
@arthurfedotiew3609 2 жыл бұрын
@@ryansolid Thank you very much for your detailed reply, and even more for links provided! I indeed to seek to understand these things better, since many topics you are talking about makes my head hurt when thinking about 'em to long (which I enjoy ;) ).
@ajayraja6636
@ajayraja6636 2 жыл бұрын
Why nested Objects doesn't works fine with Signals and Effects? Unnecessary re-run effect when non changing property. Is there any way to fix this?
@ryansolid
@ryansolid 2 жыл бұрын
Yes proxies with nested reactivity. In Solid we call these Stores, in Vue they call it Reactive, and MobX they call it Observables.
@hansschenker
@hansschenker 2 жыл бұрын
Reactivity is a loaded Term - why not just call it "Observable-State"?
@arthurfedotiew3609
@arthurfedotiew3609 2 жыл бұрын
When you were talking about rxjs & redux, it was a sin not to mention neither ngrx nor ngrx component store)))
@Xania-js
@Xania-js 2 жыл бұрын
I don't understand why a UI library can't support cold observables. because cold is not hot is not really explaining anything.
@ryansolid
@ryansolid 2 жыл бұрын
It could support them and there are places for it. But most frameworks internally are focused on synchronization and most things in our world are multicast and hot preferably. Andre Staltz is an Rx guy so I will let him explain it better: staltz.com/why-we-actually-built-xstream.html
@Xania-js
@Xania-js Жыл бұрын
​@@ryansolidI went down the rabbit hole of reactivity using observables. Based on my experiments I concluded that yes hot is better fit for view. You might know I wrote xania from benchmark by krausest which gets it's reactivity from observables. I extracted the internal `state` feature to a separate library and contributed to the benchmark of maverick-js to measure how efficient it solves the diamond problem and it is the fastest. you can check in github pull request #13. I still belief that the UI library should not care about hot or cold. xania proves it is not a matter of performance when u use state library like xania's. On the other hand using signals in solid it is not clear to me how that affects composability in the higher order components, my instict is telling is tricky to get it right with signals becuase signal are not time independent like observables but I admit I am not certain about my thoughts on that. I also want it to ask what makes solid not able to adapt a state library like xania's as first class citizen?
@ebrelus7687
@ebrelus7687 2 жыл бұрын
I wish to have a list of what is used for what and when. Which trade-off is optimally used in which situation. And all basic constructions and mechanisms inside JavaScript, with one basic syntax without any framework bloatware for specific purposes full of additional constantly changing plugs for this and that. Make JS modules doing anything in one system. And let me know which to use for which functionality I may in that moment need. This Babilon tower is a confusing place for. newcomer. Bring me Abrahauron and give me one Ring to rule them all.
@ryansolid
@ryansolid 2 жыл бұрын
If anything is clear from this stream is that there are different philosophies and things are still constantly changing. Since there isn't agreement it will be some time before we get good standardization. Unfortunately we've been in this state for like 20+ years so I don't know if this is changing any time soon. Starting to think it is a characteristic of the platform.
@hansschenker
@hansschenker 2 жыл бұрын
Where has Angular's potential for creativity gone? Is there no RxJs Guy after Rob Wormald has left the team! Is Angular after Misko Hevery Quick left the team now Standalone?
@mfpears
@mfpears 2 жыл бұрын
Angular integration with RxJS will improve when they introduce signals
@hansschenker
@hansschenker 2 жыл бұрын
@@mfpears I am not sure they will introduce signals. It is a too simple strategy which can easily be replaced with RxJs BehaviorSubject!
Designing Signals 2.0
5:10:04
Ryan Carniato
Рет қаралды 15 М.
Front-End's Existential Crisis
5:16:58
Ryan Carniato
Рет қаралды 16 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
Musing on HTML Partials
5:29:32
Ryan Carniato
Рет қаралды 4,7 М.
Don't Go Chasing Waterfalls
4:49:17
Ryan Carniato
Рет қаралды 4,2 М.
Dioxus vs Leptos  | Rust GUI Wars #2
21:18
Creative Coders
Рет қаралды 11 М.
Learning Angular w/ Minko Gechev
4:43:08
Ryan Carniato
Рет қаралды 6 М.
What Comes After GraphQL?
4:13:51
Ryan Carniato
Рет қаралды 6 М.
Server Signals w/ Dev Agrawal
5:04:04
Ryan Carniato
Рет қаралды 3 М.
What the head?
5:22:59
Ryan Carniato
Рет қаралды 4 М.
Wiz: Behind the Curtain w/ Jatin Ramanathan
2:56:49
Ryan Carniato
Рет қаралды 4,9 М.
We Are So Back
4:53:13
Ryan Carniato
Рет қаралды 10 М.
Exploring Reactivity: Fine-Grained Derivation & Incremental Computation
5:02:18