helix

https://github.com/Lokeh/helix
y.khmelevskii 2020-01-26T10:41:29.026100Z

Hi @lilactown! Thank you for your work on hx and helix! I’m going to start new react project and I need to choose react wrapper. It’s really important to me to use all power of react features, that’s why next 6 months I will use react experimental build with hooks, context, suspense (+ data fetching), concurrency mode etc. I’m not going to use reagent and re-frame (I like re-frame but I think I’m able to build great architecture based on React Context and Suspense). So, can you please help me to do right choose between hx and helix in a long run? Can you please describe helix benefits over hx? As I can see primary advantages are using macros instead of hiccup and syntax sugar. Are you going to maintain and develop helix in a long run?

orestis 2020-01-26T13:31:42.028500Z

Hi @y.khmelevskii - I’m in no way associated with hx and helix, but I’ve been using hx in production for some time now, and have had numerous (online) discussions with Will. I’ll give you my (unsolicited) 2 cents in a thread :)

orestis 2020-01-26T13:32:59.030100Z

First of all, both hx, helix, also uix both compile down to plain react components. So you can use them all in the same project if you want to play around and experiment.

orestis 2020-01-26T13:34:18.032Z

The main difference between hx and helix is going to be performance and the way you write components. Hx uses only hiccup and will be always a little slower, helix uses function calls, but could also parse hiccup if so you wish.

orestis 2020-01-26T13:35:02.033300Z

Note that reagent just got funding with the main focus being supporting functional components and hooks. I’ve no idea when the results of that will come out though.

orestis 2020-01-26T13:36:51.036500Z

Finally, just a note that both hx and helix are labors of love and free time by a single person - even if Will might say now that helix is going to be maintained, he has the right to change his mind and pursue other things. I suggest you keep this in mind and accept that you are taking a small risk - you should read the libraries source code and see if you are comfortable diving in and fixing issues you might have.

1👏
orestis 2020-01-26T13:39:00.037900Z

All in all, I’m excited to see your results with concurrent mode. I have also wanted to try it out since the announcements, but haven’t had the time yet :) best of luck!

lilactown 2020-01-26T17:34:01.039800Z

To add onto @orestis excellent summary, I have pretty much moved development from hx to helix

lilactown 2020-01-26T17:36:06.042Z

That doesn’t mean hx is abandoned, but helix already has a number of features on top of what hx offered such as experimental linting of React Hooks usage inside of components, auto-filling dependency arrays for use-effect / use-memo / etc., with more to come

lilactown 2020-01-26T17:37:10.043400Z

The goal of helix is to focus on compile-time optimization and ergonomics on top of React.

lilactown 2020-01-26T17:41:41.045300Z

hx originally started as a hiccup compiler that grew into having a way to define components... helix is a rewrite and refocus on defining components, and let other people figure out hiccup compilation... you can even use hx :D or hicada, or anything else

y.khmelevskii 2020-01-26T21:49:59.048200Z

Thank you sir @orestis! You answered a lot of my questions. Of course I understand that these 2 libs are open source and in general only Will develops and maintains them. I didn’t know that reagent got funding, happy for them! Anyway I think that reagent was awesome lib but in 2020 I’m not sure that reaget is a right way to build new modern react app. Btw, about your hx in production 🙂 Is it long run production? Are you excited to use it and did you have any real blockers during development?

y.khmelevskii 2020-01-26T21:50:01.048400Z

Great! Thank you for sharing plans! I think that I made up my mind and I’m going to use helix . Will start investigating source code more detailed soon. And once again many thanks for the great libs!