Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PureScript's Thermite & Pux #242

Merged
merged 3 commits into from
Sep 11, 2017
Merged

Add PureScript's Thermite & Pux #242

merged 3 commits into from
Sep 11, 2017

Conversation

thomashoneyman
Copy link
Contributor

Hi Stefan,

I've added benchmarks for the other 2 widely-used frameworks in PureScript to round out the complete list (Thermite, Halogen, and Pux).

Thermite is a high-level wrapper around React. It's written by the creator of PureScript. In the benchmarks, it sees roughly the same slowdown as Halogen does. Pux is an Elm-inspired framework that also relies on React. It's got a very nice monadic DSL for writing HTML, but that convenience has the problem of being essentially a linked list, making huge appending operations very inefficient. It sees a significant slowdown because of this, ultimately clocking in at ~12x slower than vanilla JS.

While I'd love to see all three of these frameworks included for the general knowledge of people considering PureScript, JavaScript (especially functional-first), and Elm, I understand if you have reservations about slowdowns here. I've spoken with the authors of each of these frameworks and there doesn't appear to be an easy way to dramatically speed them up.

The build is passing on Circle CI and I've manually verified I can run and update benchmarks:
https://circleci.com/gh/saylu/js-framework-benchmark/6

Cheers,
Thomas

@krausest
Copy link
Owner

I‘m on holidays this and next week - I‘ll take a look at it in two weeks.

@thomashoneyman
Copy link
Contributor Author

No worries, I understand. Have a good time on holiday!

@krausest krausest merged commit 4ca5396 into krausest:master Sep 11, 2017
@krausest
Copy link
Owner

Thanks. Sadly you have to scroll far to the right to see the results.
Do any of the PureScript libraries support keyed updates? Personally I'm absolutely not fond of frameworks that support only non-keyed mode...

@krausest
Copy link
Owner

@thomashoneyman They have the same bug as halogen: If you click "create 1,000 rows" and then "swap rows" the labels, but not the row ids, are swapped.

Can you please take a look at that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants