• 16 Posts
  • 989 Comments
Joined 5 years ago
cake
Cake day: May 31st, 2020

help-circle
  • Yeah, sure. Both are possible.

    Although, again, I don’t necessarily feel like the syntax needs much abstraction. Rust is a comparatively modern language. So, while there’s existing scripting languages that concern themselves less with low-level topics and therefore may be better suited for high-level development, it’s been a while since a new, modern scripting language got popular, so in some ways, it would also be a downgrade to switch to one of those.


  • Yeah, I feel like Bevy needs quite a bit more time in the oven, and I absolutely do not say that due to me thinking that it’s bad. Unity, Unreal and Godot have rather just been in the oven for so long, that it takes a long while to catch up.

    They are implemented in C++, which is similarly low-level as Rust. It’s just the abstractions built on top that make these engines feel more high-level. Unity offering a C# API and Godot offering GDScript, those are also just abstractions. Similarly, Bevy could one day offer “BevyScript” or such, although I don’t necessarily feel like the syntax needs a ton of abstractions.

    Rather I think that it’s the ecosystem that still needs to mature and grow a lot. But yeah, I do believe that in a decade or two, at least one of the major game engines will be implemented in Rust and it might as well be Bevy that takes that spot.


  • In our experience at $DAYJOB, Rust is actually not too bad, when it is one of the first languages that someone learns. It’s definitely a lot more troubling for experienced devs who have certain patterns in mind, which they can’t replicate in Rust. They tend to struggle a lot, whereas our students generally pick up and work with Rust like it’s any other language.

    But Rust + Bevy is probably more confusing. I actually started my journey into Rust with a (much less mature) game engine, too, which also used an ECS. And well, the ECS kind of bypasses Rust’s memory management, which I didn’t understand until much later. I didn’t really learn Rust’s memory management model until 5 months in, even though I was partially using it…


  • Well, no matter how thoroughly you vet, it’s always good to have a tool to back you up.

    For example, we once got a pull request, which was purely AI-generated but I couldn’t tell that right away. So, I skimmed it to make sure no malicious code is part of it, then I gave it to the CI runner. And that failed pretty much immediately during a compile check, which made it obvious that the pull request author had never tried to compile it.

    In that moment, I could stop wasting my time with that pull request, rather than try to debug why it’s not working or having to vet it more thoroughly…



  • Well, as the others already said, it’s a matter of taste and different factors play into it, but your argument with the AI is precisely why I find this decision so jarring: You don’t need nor want unpredictability in a skating game.

    It’s not a competitive genre where the unpredictability makes it interesting. And I remember watching a video of a guy playing Skate where NPCs would constantly walk into his path and it was the most infuriating thing. If there would’ve been no NPCs, no unpredictability, the game would’ve been better.
    Of course, with an MMO, other players will probably have no collision. But if you can still see them where you’re skating, they’ll still get in the way of you seeing what you’re skating on, particularly if you run into trolls.

    I’m not completely negative to the MMO concept. Maybe it is fun to see just the sheer chaos of hundreds of others skating in the same place. Maybe they have some sort of idea to actually make interaction with other players relevant in some way. Maybe it’s kind of cool for folks to log into the Skate MMO and just hang out. Or maybe it’s only an MMO hub-world and you don’t have to see other players on the individual courses. But yeah, I’m just not holding my breath.







  • Ephera@lemmy.mltoProgrammer Humor@lemmy.mlJava Bros
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 days ago

    Well, on the JVM side of things there’s Scala and Kotlin. Scala supports all the object-oriented paradigms + the functional paradigms. Kotlin supports about the same number of features as Scala, although it puts more restrictions on them. On the Microsoft side of things, I’ve never tried it, but I’m guessing F# has to cover a similar object-oriented + functional feature set. Well, and from what I’ve heard about C++, it’s presumably the language with the most features across all languages.


  • Ephera@lemmy.mltoProgrammer Humor@lemmy.mlJava Bros
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 days ago

    Eh, I’d argue that Java and C# are in the niche of having few features. While I don’t like this niche, Java having even less features makes it stand out more in this niche. If you’re looking for a language with more features than that, then there’s so many more feature-rich choices than C# that I just don’t feel like you’d choose C#, unless you want Java with integration into the Microsoft ecosystem.


  • Ephera@lemmy.mltoLinux@lemmy.mlHow I use Kate Editor
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    6 days ago

    renaming symbols, presenting documentation, formatting files,

    Yes, these are supported via the Language Server Protocol (LSP). I’ve mostly been using it with the Rust LSP server (rust-analyzer) and well, it typically works, but sometimes you have to tell it to restart the LSP server and stuff (which isn’t a huge ordeal, but don’t expect everything to always work as well as in a full-fledged IDE).
    I believe, for formatting, there’s also some non-LSP support.

    showing code diagnostics beyond syntax errors (for example code smells or so),

    This is supported in principle via LSP, too, but it depends on the specific LSP server, how much info it provides. The Rust compiler gives out relatively much on its own, which is passed on by the LSP server, but you can apparently also configure it to use the linter on save.

    have AI integration (explain this, rewrite this, replace this with prompt output, …),

    Not out of the box. There’s a way to define “External Tools”, which basically allows you to run commands and pass arguments to them and then use their output. For example, you should be able to define an External Tool, where you can select some text, then press your keyboard shortcut for that tool, so it sends the selected text to that tool and then it takes the command output and inserts it instead of the selected text.
    While this is a powerful concept, I don’t know, if you hit limitations at some point.

    specific framework integrations (reactjs, django, actix, …),

    Nope, except where this might be covered by LSP. But there’s no obvious way to just install additional plugins, for example. You get about thirty built-in plugins and that’s it.

    and stuff like expanding macros in C/C++ and Rust?

    Well, expanding macros is also possible with the Rust LSP server. Don’t know about other languages.