<story><title>Svelte 5: Runes</title><url>https://svelte.dev/blog/runes</url></story><parent_chain><item><author>rich_harris</author><text>Yes, Vue and Solid — like Knockout — use a dependency tracking mechanism. Back in the day it was called `ko.observable`, nowadays we call them signals.&lt;p&gt;That&amp;#x27;s the part Knockout was right about. It&amp;#x27;s absolutely true that you can mishandle them and create a spaghetti mess, _if your design allows it_. Svelte 5 doesn&amp;#x27;t — it uses signals as an implementation detail, but in a way that prevents the sorts of headaches you&amp;#x27;re describing.&lt;p&gt;Signals and observables (e.g. RxJS) are related but separate concepts. The framework world is converging on signals as the appropriate mechanism for conveying reactivity — even Angular (which has historically been most closely tied to RxJS) is moving in this direction. I promise you it&amp;#x27;s not just a mass delusion.</text></item><item><author>satvikpendem</author><text>This is basically what Vue and Solid do, no? Same sort of state and derive&amp;#x2F;computed variables, it seems like.&lt;p&gt;Also, I will never understand why people like reactive signals. The article even quotes &amp;quot;Knockout being right all along&amp;quot; which, no, reactivity and two way data binding creating a spaghetti mess of changes affecting other changes all over the place unless you&amp;#x27;re really careful is why React was made in the first place, to have only one way data binding and to re-render the entire page in a smart way. React will soon get its own compiler as well which will made regenerating the DOM even more efficient.&lt;p&gt;It&amp;#x27;s like every other framework is slowly rediscovering why React made the decisions it made. I am assuming it&amp;#x27;s because the users who are making these frameworks now have not used or do not remember the times where &amp;quot;signals&amp;quot; were called observables, or the usage of Rx libraries, and how having too many of these would cause you to lose your mind debugging the intricate webs you inadvertently spun.</text></item></parent_chain><comment><author>hajile</author><text>Not everyone has teams of perfect developers given all the time they want to make their perfect frontend app. Most of us deal with average teams where half the devs are at or below par while managing very tight deadlines. The spaghetti from everything in the whole system mutating always comes back to bite.&lt;p&gt;You call signals an &amp;quot;implementation detail&amp;quot;, but if someone doesn&amp;#x27;t know that&amp;#x27;s what they are, then they&amp;#x27;ll wind up doing very bad things. This means they either aren&amp;#x27;t just an implementation detail or they are a hyper-leaky abstraction.</text></comment>
<story><title>Svelte 5: Runes</title><url>https://svelte.dev/blog/runes</url></story><parent_chain><item><author>rich_harris</author><text>Yes, Vue and Solid — like Knockout — use a dependency tracking mechanism. Back in the day it was called `ko.observable`, nowadays we call them signals.&lt;p&gt;That&amp;#x27;s the part Knockout was right about. It&amp;#x27;s absolutely true that you can mishandle them and create a spaghetti mess, _if your design allows it_. Svelte 5 doesn&amp;#x27;t — it uses signals as an implementation detail, but in a way that prevents the sorts of headaches you&amp;#x27;re describing.&lt;p&gt;Signals and observables (e.g. RxJS) are related but separate concepts. The framework world is converging on signals as the appropriate mechanism for conveying reactivity — even Angular (which has historically been most closely tied to RxJS) is moving in this direction. I promise you it&amp;#x27;s not just a mass delusion.</text></item><item><author>satvikpendem</author><text>This is basically what Vue and Solid do, no? Same sort of state and derive&amp;#x2F;computed variables, it seems like.&lt;p&gt;Also, I will never understand why people like reactive signals. The article even quotes &amp;quot;Knockout being right all along&amp;quot; which, no, reactivity and two way data binding creating a spaghetti mess of changes affecting other changes all over the place unless you&amp;#x27;re really careful is why React was made in the first place, to have only one way data binding and to re-render the entire page in a smart way. React will soon get its own compiler as well which will made regenerating the DOM even more efficient.&lt;p&gt;It&amp;#x27;s like every other framework is slowly rediscovering why React made the decisions it made. I am assuming it&amp;#x27;s because the users who are making these frameworks now have not used or do not remember the times where &amp;quot;signals&amp;quot; were called observables, or the usage of Rx libraries, and how having too many of these would cause you to lose your mind debugging the intricate webs you inadvertently spun.</text></item></parent_chain><comment><author>chrisco255</author><text>&amp;gt; create a spaghetti mess, _if your design allows it_. Svelte 5 doesn&amp;#x27;t — it uses signals as an implementation detail, but in a way that prevents the sorts of headaches you&amp;#x27;re describing.&lt;p&gt;Care to elaborate or do you have a link to a blog post explaining further?</text></comment>