Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> That's an ecs data structure [...]

ECS isn't a data structure tho, it's a pattern. You must be referring to the component storage. That's, at best, half the equation. You do realize the discussion is about the 50MB program, which uses both the component storage, the system scheduler and other features, right?

> That's just adding a function pointer to field

Just as much as creating a new process, through the IP/PC field in the TCB. Don't know why you focused on that particular point, but sure.



ECS isn't a data structure tho, it's a pattern.

Every implementation out there is a data structure. You keep talking about things that use it and then lump them together. That's just you.

You do realize the discussion is about the 50MB program, which uses both the component storage, the system scheduler and other features, right?

No, the first person I replied to said that justified a 50MB program. A few other software components don't make any sense either. 50MB is not something you get to with 4 or 5 parts of a game engine. That's the stripped binary too, it was originally 700MB.

Don't know why you focused on that particular point, but sure.

You brought it up, I'm not even sure what point you are trying to make.


> Every implementation out there is a data structure.

Examples?

> 50MB is not something you get to with 4 or 5 parts of a game engine.

Depends on the engine's architecture, runtime, etc. Again, don't know if you are blaming the bloat on those components alone (it seems like you are), but you haven't established a direct link between said components and the bloat, thus, it's hard to properly reason about the tradeoffs given that we don't know how said bloat scales.

> That's the stripped binary too, it was originally 700MB.

Actually, no. Rust doesn't strip binaries on release by default. There's a reason there's a guide about minimizing Rust program sizes.

> You brought it up, I'm not even sure what point you were trying to make.

You are the one who nitpicked over "You register functions", ignoring the rest of the sentence.


Depends on the engine's architecture,

No, it depends on excessive dependencies that themselves have dependencies.

There's a reason there's a guide about minimizing Rust program sizes.

And 50 MB was the stripped version, what is not sinking in?


> No, it depends on excessive dependencies that themselves have dependencies.

Not necessarily. Not every dependency will generate code. Furthermore, those dependencies of dependencies are rather small. If you're so certain that's the case, then provide an actual analysis over a case. Would be an interesting read.

> And that 50MB was the stripped version. What is not sinking in?

From the reddit post you linked:

> paholg: Rust debug binaries tend to be large. What's the size of you compile in release mode? > talentedBlue: 49M. looks more reasonable > CleanCut9: You can strip the release binary to get it even smaller if you want

What didn't sink in is the fact that you don't seem to have read the linked thread appropriately.


Not every dependency will generate code.

Who said that?

Furthermore, those dependencies of dependencies are rather small.

No, they add up to 50 MB.


> Who said that?

Your assertion that dependencies are the cause of the bloat is only trivially acceptable if, at least, every dependency actually contributed into the binary size, nevertheless in a significant manner. Thus it is a counterpoint.

Which brings to...

> No, they add up to 50MB.

You are just asserting this. The thread you linked doesn't really support this. So I'm asking for actual proof, like a disassembly, or analysis through other tooling.


Your assertion that dependencies are the cause of the bloat is only trivially acceptable if, at least, every dependency actually contributed into the binary size, nevertheless in a significant manner. Thus it is a counterpoint.

That makes zero sense. That's like saying your luggage can't be too heavy because it contains a feather. Think about this super hard.

So I'm asking for actual proof, like a disassembly, or analysis through other tooling.

You think you need disassembly to see file sizes?


> That's like saying your luggage can't be too heavy because it contains a feather. Think about it super hard.

There's nothing to think here. This analogy is stupid at best, profoundly ignorant at worst. We both agree that the binary is 50MB (the weight), so the "luggage can't be too heavy" is already nonsense.

> You think you need disassembly to see file sizes?

I mean the cause for the 50MB, if that wasn't clear (somehow).


This analogy is stupid at best, profoundly ignorant at worst.

No it isn't. If you could explain why you would have already. Saying that some dependencies aren't heavy so the problem isn't dependencies doesn't make any sense. Huge bloated binaries are from lots of bloated dependencies because people aren't actually writing 50 MB of stuff to do what they need.


> If you could explain why you have already.

I have my suspicions. But I rather speak with certainty rather than spout unfounded hypotheses as facts.

> Saying that some dependencies aren't heavy so the problem isn't dependencies doesn't make sense.

If I did say that. I said that isn't necessarily dependencies, because you have yet to prove it. If you do prove it, then that is that. As of now, all you've shown is that thread.

> Huge bloated binaries are from lots of bloated dependencies because people aren't actually writing 50MB of stuff to do what they need.

Restating what I've said prior, you are just asserting this, but have yet to prove it. For starters, what are the specific bloated dependencies? How much space does each dependency actually occupy in the final binary? A disassembly would answer those really quickly.


what are the specific bloated dependencies?

Not a single data structure, that's for sure. Have you ever programmed before?


> Not a single data structure, that's for sure.

Even though you have to actually substantantiate this, for the sake of brevity, let's go with it. All you have crossed is a single potential cause, not proven a particular one.

> Have you ever programmed before?

Let's say I haven't. How would it impact your argument? Whether I'm a programmer or not won't magically substantiate your position.


Let's say I haven't.

That explains why what you're saying and focusing on doesn't seem to really make sense.

Even though you have to actually substantantiate this,

Data structures are parts of programs that hold data. Have you made a data structure before?


> That explains why what you're saying and focusing on doesn't seem to make sense.

Or it could be just you. Even presuming you're a good programmer, that wouldn't make your arguments good by default.

> Data structures are parts of the program that hold data.

Not according to Wikipedia:

> In computer science, a data structure is a data organization and storage format that is usually chosen for efficient access to data.

ECS doesn't stipulate any storage format, as shown by the previous definitions, only that your application will be architected around Entities, Components and Systems. How they are stored/managed is up to the programs/frameworks/engines to decide, and this storage is just one concern an implementation may have, just like how storing ViewModels is just one concern of a MVVM framework, but not all.

I'm no stranger to using unorthodox definitions, but I would prefer if you were upfront that your definitions are unconventional, rather than pretend that they are common sense without citing any third party authority.


So programming doesn't matter and data structures don't hold data?

Please cite exactly where I said any of that.

You don't realize wikipedia is saying the same thing and you don't realize what 'format' or 'structure' means or that some terms aren't specific. Please learn how to program before talking about programming.

So, rather than actually explain what Wikipedia means with terms such as "data organization" and "storage format", you just dismiss the whole thing with an ad hominem.

From HN guidelines:

> Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: