Remix.run Logo
skydhash 2 days ago

Fantastic write up!

And we're seeing rust happily going down the same path, especially with the micro packages.

chrismorgan 2 days ago | parent | next [-]

Rust is not going down the same path, and it’s ludicrous to suggest it is. Almost none of the first and third pillars are even possible in Rust, and to the extent they are, they’re not a problem in practice. As for the second, “atomic architecture”, it’s not taken anywhere near the extreme it frequently is with npm. There are not many micro-packages that get used, and where they are, they mostly make more sense than they did in npm, and they don’t have anywhere near the cost they do in npm, and can have some concrete advantages.

CoderLuii 2 days ago | parent | prev | next [-]

the docker side of this is painful too. every extra dependency in any language means a bigger image, more layers to cache, more things that can break during a multi-arch build. ive been building images that are 4GB because of all the node and python tooling bundled in. micro packages make it worse because each one adds metadata overhead on top of the actual code.

vsgherzi 2 days ago | parent | prev | next [-]

Yeah I’m in the same boat here I really don’t like the dependency sprawl of rust. I understand there’s tradeoffs but I really wanna make sure we don’t end up like npm

cute_boi 2 days ago | parent | prev [-]

Rust is different as there is no runtime.

wiseowise 2 days ago | parent | next [-]

Yes, instead we pay with requiring supercomputers and 10 hour compile times to process billion of those “atomic architecture”.

b00ty4breakfast 2 days ago | parent | prev | next [-]

I'm not very familiar with rust but I'm pretty sure it has a runtime. Even C has a runtime.

Unless you're talking about an "environment" eg Node or the like

embedding-shape 2 days ago | parent [-]

Indeed Rust has a runtime, I'm not sure why the whole "Rust has no runtime" comes from, I keep seeing it repeated from time to time, but can't find the origin of this, I don't think it's ever been true?

b00ty4breakfast a day ago | parent [-]

The only thing I can think is that folks are getting confused by stuff like the JRE and Node being called "runtime environments".

onlyspaceghost 2 days ago | parent | prev | next [-]

but it still increases compile time, attack surface area, bandwidth use, etc.

vsgherzi 2 days ago | parent | prev [-]

I’m assuming you’re referring to an async runtime like tokio. In my option the dependency problem exists with or without tokio. Tokio is probably one of the best dependencies