Hi! I'm a hobby developer who works on the Bevy game engine, written in Rust. I'm currently building the Bevy Linter and CLI. Feel free to reach out! (he / him)
Posts
There are some things about Swift that I still haven't gotten over, however.
I dislike the distinction between function argument labels and parameter names. In essence it lets you have two different names for a function argument: a user-facing name and an internal function body name. This feature infiltrates the syntax of Swift, and makes function definitions more difficult to read in my eyes.
Additionally, the concept of a "mutating method" seems very tacked-on to me. By marking a structure's method as mutating, you enable it to modify the properties of the structure instance. This feels like something that was almost added as an afterthought; it feels like there was a bit of influence from Rust here, although I don't know if that's actually the case. Either way, it feels like a weird spot of the language that doesn't quite fit with the rest.
And finally, trying Swift has given me a new appreciation for Rust's fantastic error messages. Writing Swift in Xcode as a beginner, I found it a lot harder to debug compiler errors because:
- Error have a line number, but not column range, so it is harder to diagnose what section of a line is causing the issue.
- Errors do not link to documentation nor have a stable error code that I can Google. Having an example of what causes the error and how to fix it is super valuable!
Don't get me wrong, Swift is still a nice language to work with! I certainly prefer it over Objective-C and C++, and SwiftUI's composability has worked wonders in code organization, but it certainly has made me appreciate things I take for granted in the Rust ecosystem.
I've been learning Swift recently, and I'm honestly surprised by how similar it is to Kotlin! Both have the feature where, when passing a closure as a final argument to a function, you can place the closure after the function call to get a DSL-like effect.
Beyond that, they also have getters and setters that masquerade as plain variables, really good support for nullable types, and what seems to be a similar approach to concurrency through tasks.
Hi friends! Quick update: v0.5.0 of the #bevy linter is out now, coming with support for Bevy 0.17. Check it out!
https://github.com/TheBevyFlock/bevy_cli/releases/tag/lint-v0.5.0
Hashing is pretty useful! Here's a short cheat-sheet I made on how to do it in Rust: https://bd103.github.io/blog/2025-11-10-rust-hashing-cheat-sheet/
Hello everyone! I'm thrilled to announce the second release of the alpha Bevy CLI, a command-line tool hacked on by the Bevy CLI working group that streamlines work on projects using the Bevy game engine (https://bevy.org). This release includes key improvements such as:
- Automatically configuring the correct getrandom backend when building a project for the web
- Easily listing and installing specific versions of the Bevy Linter
- Unstable support for enabling web multi-threading, useful when depending on crates like bevy_seedling
- Faster compile times and improved template support by relying on cargo-generate in its executable form, rather than bundling it as a library
- Many bug fixes, small quality-of-life changes, and documentation improvements
Check out the official release at https://github.com/TheBevyFlock/bevy_cli/releases/tag/cli-v0.1.0-alpha.2, and view the live documentation at https://thebevyflock.github.io/bevy_cli/.
This release is from 5 months of work, so please reach out if you get stuck or hit any issues. Have a good one!