Earlier quoted context omitted.
You are bringing up an important topic. The way I see it is that Gea's Store is a plain old JS class. It's just a native class. There really is no special syntax you need to pay attention to. Whereas Solid signals require you to follow a specific syntax and approach, and has its own gotchas. Like, the language doesn't have a createSignal method by default, and you don't "execute" what look like values in JS as you ne…
It's just a native class. There really is no special syntax you need to pay attention to. Don't confuse syntax with code. Solid has no special syntax (other than JSX of course). This isn't comparing apples to apples. Solid has a Store primitive too, and it's a "plain old" proxied object. How is `createStore` less native than `new Store()`? The `new` keyword didn't even exist in JS until 2015, and the underlying seman…
And yes, Solid has signals that require you to know how to write and work with them. I answered another comment on the thread about Solid stores—they also introduce a couple of gotchas and weird syntax. You just can't do `this.users.push(...)` or `this.users[2].loggedIn = true` in Solid stores.
Therefore `createStore` is less native than `new Store()`, because `new Store()` just gives you a plain (proxied) object you can manipulate in various ways and reactivity will persist thanks to the compiler.
And Gea's design goal is also fine-grained reactivity, which it delivers without getter functions in the code that the developer writes, but rather, the handlers are generated via the compiler.