Hacker News new | ask | show | jobs
by aabhay 8 days ago
If you want to get inspired by good component DX, try looking at Bevy, the game engine.

But essentially it comes down to traits, newtypes/enum variants, and macros.

1 comments

I did have a look at bevy ECS approach and find it very verbose and really foreign, it’s in « not rust anymore» territory. Macros are a dangerous tool in terms of long term maintainability and are hurting compilation times.

But it’s still really fresh, they are conscious of the issues and I hope bevy maintainers came up with an elegant design

Right. Bevy has its own run time allocation and dependency system, and it's <<not rust anymore>>. It bypasses Rust's compile time ownership system using unsafe code. The encapsulation may be safe due to run time checking. It's bothersome that such things seem to be needed.
> It's bothersome that such things seem to be needed.

Yes. Rust is not a general purpose language. It's a systems language. Don't use it for GUIs and games and such until somebody has figured out how to do it properly.

All systems languages before Rust (granted, it's not a very long list) were successfully used for GUIs, games, embedded stuff and much more
You can't figure something out this complex without FAFO. Bevy is one flavor of FAFO. It seems to be working out alright so far.