Hacker News new | past | comments | ask | show | jobs | submit login
Create React App (294Mb) Compared with Re-Frame (72Mb)
11 points by cutler 12 days ago | hide | past | web | favorite | 10 comments
A new create-react-app project currently weighs-in at 294Mb with a 293Mb node_modules folder containing 1017 modules. A new Clojurescript Re-frame project, by contrast, totals 72Mb of which node_modules makes up 12Mb containing 23 modules. A bit of a raw deal with CRA, don't you think, considering Re-frame gives you immutability for free and a full complement of built-in Clojurescript functions?

The size of developer dependencies on their machine is not an interesting metric, as most developers will have a decent internet connection. 1Mbps would be OK you could download this overnight then you are all good.

More interesting is:

* Build time

* Minified Production Bundle Size

* Developer Productivity

* Cross Browser / Old Browser Support

* + what romanovcode said :-)

Well, the use case for create-react-app is for JavaScript/React developers to create a new JSX-based React application and most of those JavaScript/React developers…

- have no idea what you are talking about,

- have no desire to use/learn anything else than JavaScript or something really close like TypeScript and will barf at the sight of ClosureScript's syntax,

- like their JSX and will barf at the sight of reagent's syntax,

- are used to infinitely large node_modules directories anyway.

The promise of re-frame is definitely interesting, but comparing directory size won't get you far when the real obstacles to adoption are elsewhere.

This is very weak argument. Nobody cares.

What matters:

- Size of .js files that are served to the user

- Speed and productivity of development

- Libraries, tutorials and documentations

- Maintainability of the project

For me personally the productivity would just plummet.

Everyone uses Javascript, no-one uses Clojurescript. That statement in itself is one of the most powerful reasons to pick one framework over the other.

I have absolutely no idea what this readme is even talking about


Is a minified reframe app smaller than a react/redux app or a elm app?

Given that any ClojureScript app includes the Clojure core APIs, you have a constant size tacked on to any app as compared to raw JS. Of course, this is amortized as the app grows more complex.

Here's one comparison. Smaller than React/Redux, but larger than Elm: https://cdn-media-1.freecodecamp.org/images/DRmH8Fz15DLxXguz...

The constant size of the API is emphasized when you look at the number of lines of code for the same app: https://cdn-media-1.freecodecamp.org/images/Y7vQUAUrMzGi8l3K...

> any ClojureScript app includes the Clojure core APIs

Shouldn't be also the case of Elm apps? But they are tiny. Probably Re-frame wrapping React (and Redux?) doesn´t help at all. Why not being native (like Elm) or kind of a Svelte wrapper[1] to keep apps small? I really like Clojure expressiveness but I hate waste.

[1] https://clojureverse.org/t/create-web-app-with-shadow-cljs-a...

I'm not expert on Elm, but to take a guess, I'd say that it's about different tradeoffs. And "waste" is conditional, if (like you wrote) you're actually making use of the dynamism, immutable data structures, meta programming facilities and whatnot, it's not waste.

222mb of space on my development machine machine is so little I wouldn't even think about it.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact