7 ms·
In many ways, this is very cool. But, I have to admit, I don't love it. I would love to have an integrated environment where client/server doesn't matter, but
by Robin_Message 6y ago
In many ways, this is very cool.
But, I have to admit, I don't love it. I would love to have an integrated environment where client/server doesn't matter, but I don't think this gets far enough. Working in a spread of html.erb with special tags plus some Javascript doesn't feel great to me compared to React.
I like their TodoMVC app, since that gives a simple, minimal starting point. Getting persistence in that few lines of code is nice.
However, it has also at least one bug compared to canonical TodoMVC. I think the problem of this kind of too-clever binding is that it makes this kind of bug easy to introduce; whereas something with clear one-way data-binding like React, for all it can be verbose and annoying, tends to make it easier to get this sort of thing right.
(The bug? Click an existing todo to edit it, start typing, then press escape. The edit is meant to be discarded, but instead you'll see a flash of the old value and then the new value is persisted. It's not the worst bug ever, but shows that even in a simple app, experts can subtly screw up important behaviour.)
- deleted 6y ago[deleted]
- hpvic03 6y agoHere comes the classic HN middle-brow dismissal :) TodoMVC is meant to be a minimalist demo, not a battle-hardened app. We switched from React to Reflex 7 months ago. We have fewer bugs than we did with React, and we ship things about 3 times faster. 5/5 of us strongly prefer Reflex over React. Including one of us who was a big React aficionado beforehand. Just wanted to put that out there for anyone considering Reflex, a bug in TodoMVC is not a harbinger of a bad framework.
- Robin_Message 6y agoThat may be fair :) Personally, I enjoy React on the front-end but don't currently like any back-end framework, so Reflux may well be better in aggregate. (FWIW, I have a PhD in computer science and big part of that was on web applications and frameworks for them, combined with ~15 years commercial experience mastering web development, so this wasn't meant to be a middle-brow dismissal. As I said, it is exciting, I'm just not convinced. I think there is some merit in the argument that too much cleverness can be dangerous. Battle-hardened is tricky; I agree TodoMVC is meant to be a minimalist demo, but if a minimal demo can have subtle bugs caused by the cleverness of the data binding, how much more so a real app with a much more complex data model? But I guess it does eliminate whole other classes of bug, so I can believe it works less buggy and more productive better than React+some back end. I certainly find the current front/back split endlessly painful. I am also excited by the new React Server Components which might be another good solution to that.) EDIT TO ADD: I guess what I was trying to say is: I found this interesting, and I looked at it, and then I found this bug in the example, and I wonder if this framework might make a bug like that more likely because the power of making some things easier is obscuring what is happening in some cases, and I don't know if that trade-off is worth it.
- treis 6y agoMy experience bears this out as well. Things that "just work" usually don't do that and/or come with a list of significant caveats.
- k__ 6y agoIsn't Reflex a Haskell framework? Switching from React to Reflex isn't just switching a framework, but a whole stack.
- sodapopcan 6y agoI love hearing this story! I'm not in the job market since I love where I work at the moment (though don't love our tech stack) but I'm really hoping to find something, preferably using LiveView, for my next move. It's really nice to hear about companies having success with this kind of tech! It's the first tech I've been really excited about since learning Rails eight years ago (which was far too late!)