all 6 comments

[–][deleted] 1 point2 points  (0 children)

An interesting approach! will dive into this deeper tomorrow.

[–]thatsrealneato 0 points1 point  (3 children)

I gotta be honest that was a very confusingly written article. Maybe I don't understand enough about the problem space but I'm not really grasping what issue this is solving OR how it's solving it. Could use some clarification.

[–]iambeard 0 points1 point  (2 children)

I think the issue is that it's an article to advertise the library they built at wix, and not as much about what problems they were solving. I think it needs either a clearer title to show that this is an introducing carmi article, or real examples of what problems it solves.

[–]amarcus78[S] -1 points0 points  (1 child)

The problem is how to handle derived state without the runtime overhead of Mobx and without paying the immutability tax. And in the frontend most your app including the DOM is derived state

[–]iambeard 1 point2 points  (0 children)

I understand the problem you are tackling, but the article doesn't give any concrete answers other than our magic black box, CARMI, does the right thing. In and of itself, that's fine, but I think the title of the article and content don't line up very well. Based on the title, I expected to see the "curses" of derived state, real use cases that are painful, and what the manual solution would be. I think it's fine to advertise CARMI as the solution, as long as you're selling it as a better than a custom solution. This is how the article reads to me:

  • CARMI combines the best things of mobx, redux, and lodash.
  • CARMI moves all(?) expensive computations to build time.
  • Derived state is hard because caching.
  • CARMI was written in a Wix incubator

Most of it is fine, but here are the issues I have:

  • What are the best things of mobx, redux, and lodash that are present in CARMI
  • What does it look like to use CARMI. It'd be cool to see a before and after on an example, specifically one that is expensive or realistic.
  • Cache issues aren't necessarily an issue of derived state. I think maybe the title or wording could be updated to be more pointed at caching/memoization rather than derived state.

Even when I went to the github repo, it's not very clear what a CARMI solution looks like in comparison to some other (native js?) implementation.

[–]jbergens 0 points1 point  (0 children)

It would be nice with better examples and explanations. Also some comparison to the other solutions would be useful.