• 1 Post
  • 11 Comments
Joined 1 year ago
cake
Cake day: September 1st, 2023

help-circle


  • Again, the Linux kernel needs more funding. For crying out loud, these kinds of people holding back progress should be made obsolete (by bringing in and paying talent that is willing to work towards a brighter future with less memory errors, a sane tech stack with better tooling, and better processes). Holding back progress because of their incessant pearl clutching “but my dearest C!!!” Just hurts everybody and impedes progress.

    Of course blindly adding the latest and greatest is asking for trouble. Assessing risk, weighing options, making a plan and continuously assessing impact is definitely important, but straight up blocking the road on principle is extremely unproductive.

    Anti Commercial-AI license








  • Isn’t github used only as the auth provider?

    Still makes you bound to github. Can’t publish to crates.io without github.

    just leaning on the security guarantees of github

    What security guarantee does github have? I can create a new account right now with a random email, sign up for crates.io and type-squat a package.

    If you want, you can use git links when declaring dependencies in Cargo.toml. So alternative to crates.io is basically any git host already!

    Sure, but how do you discover the package? That’s the other function of a registry. Also, I could easily just add another package as a submodule, but that’s not the point.



  • Rust requires a mindset shift

    That’s easier said than done. I find that there’s no clear vision of what “idiomatic” Rust is. With functional programming, it feels like there’s a strong theoretical basis of how to structure and write code: pure functions everywhere, anything unpure (file access, network access, input conversion, parsing, etc.) goes into a monad. TBF, the only functional code I write is in JS or nix and nix-lang is… not really made for programming, nor is there any clear idea of what “good” nix code looks like.

    Rust however… are Arc, Box, Rc, async, etc. fine? match or if/else? How should errors be handled? Are macros OK? Yes, the clippy linter exists, but it can’t/won’t answer those questions for you. Also the fact that there is no inheritance leads to some awkward solutions when there is stuff that is hierarchical or shares attributes (Person -> Employee -> Boss -> … | Animal -> Mammal-Reptile-Insect --> Dog-Snake-Grasshopper). I haven’t found good examples of solutions or guidance on these things.

    My rust code still feel kludgy, yet safe after a year of using it.