• 0 Posts
  • 135 Comments
Joined 2 years ago
cake
Cake day: July 9th, 2023

help-circle







  • I think it’s debatable whether RAII should be called “memory management”. Whether dealing with Rust or modern C++, you don’t need to “manage” the memory beyond specifying a container that will determine its lifecycle behavior, and then you just let it drop.

    You could certainly choose to manage it more granularly than that in Rust or C++, but in the vast majority of cases that would be considered bad practice.

    That’s a qualitatively different user experience than C or pre-2011 boostless C++ where you actually need to explicitly delete all your heap allocations and manually keep track of which pointers are still valid. Lumping both under “memory management” makes the term so broad that it almost loses its significance.


  • There are several ways to achieve an effect equivalent to operator overloading in Rust, depending on exactly how you want the overloading to work.

    The most common is

    fn do_something(arg: impl Into<Args>) {
        ...
    }
    

    This lets you pass in anything into the function that can be converted into the Args type. If you define the Args type yourself then you can also define any conversion that you want, and you can make any construction method you want for it. It’s a small touch more explicit than C++'s operator overloading, but I think it pays off overall because you know exactly what function implementation all different choices of arguments will be funneling into.

    I’ll admit there’s one thing from C++ that I frequently wish were available in Rust: specialization. Generics in Rust aren’t exactly the same as templates in C++ but they’re close enough that the concept of specialization could apply to traits and generics. There is ongoing work to bring specialization into the language, but it’s taking a long time, and one of my projects in particular would seriously benefit from them being available.

    Still, Rust will have specialization support long before C++ has caught up to even a quarter of the benefits that Rust has over it.


  • Even with modern C++ it’s loaded with seg fault and undefined behavior footguns.

    The times when C++ feels more ergonomic than Rust are the times when you’re writing unsafe code and there’s undefined behavior lurking in there, waiting to ambush you once you’ve sent it to production. Code that is 100% guaranteed safe is always, and I really want to emphasize this: always more ergonomic to write in Rust than it is to write in C++.

    Show me any case where C++ code seems more ergonomic than its Rust equivalent, and I will always be able to show you how either the C++ code has a bug hiding in it or how the Rust code can be revised with syntactic sugar to be more ergonomic than the C++.


  • C++ was far and away my favorite language (I used it professionally for 10 years and was always excitedly keeping up with new ISO developments), until I learned the basics of Rust…

    Now it’s my firm belief that the world will become a better place when C++ stops existing. C++ just has no positive role to play in a world where Rust exists at the level of maturity that it already has.

    Whatever they might try to do to C++ to make it less intolerable will be in vain until they’re ready to break backwards compatibility. And once they’re willing to break backwards compatibility to legitimately improve the language, they’re just going to end up with a messy knock off of Rust.




  • How exactly is an individual supposed to determine which cops will be good and which will abuse their power?

    Just as we can’t make a general statement that all cops are definitely bad, you can’t make a general statement that all cops in any particular country or town will be good.

    From a basic risk management viewpoint, it doesn’t make sense for anyone to accept the risk that any given cop won’t abuse their position, even if we were willing to accept that very few would actually do so.

    Cops have an extremely privileged status in society and the amount of damage that a bad one can do to an individual - on purpose or even by accident - is incalculable, including setting up an innocent person for capital punishment as we’re seeing unfold in Missouri right now.



  • Yeah… I’m all for compassion and understanding, but if someone is missing the voice in their head that says “Hey, we shouldn’t be killing people” then their circuitry is broken, no matter what age they are or what their circumstances are. And that broken circuitry poses a real and present danger to everyone in that person’s orbit.

    I don’t support punitive incarceration, but the general public has the right to exist with a reasonable degree of certainty that they’re not likely to encounter a cold blooded murderer on any given day, and part of ensuring that is to incarcerate people who are known to kill others, at least until such a time that we can have a high degree of confidence that they won’t be doing that again.

    The person being a child doesn’t really change that part of the social contract. I promise you won’t be any less upset if someone you love is murdered by a child than by an adult.


  • One thing I’ve noticed among friends and family, who lean quite left compared to the general public and would be generally supportive of progressive policies, is that there’s a belief that progressive policies are unpopular outside of our circle and therefore in the primary they must vote for a candidate who triangulates in order appeal to the majority in the general election. Because a centrist from the Democratic Party is better than anything we can hope for from the Republican Party.

    I try to show them statistics that progressive policies are broadly popular across both parties as long as they are not presented with labels of “socialism” or “progressivism” but the reality that we all need to contend with is that we cannot easily escape the unfair baggage that these labels carry in our society where the big media cartel controls the narrative.

    I think if we got rid of FPTP and got rid of primaries we’d see an enormous swing in favor progressive candidates. In my mind that electoral reform is the key thing to pursue. Well that and literally anything related to mitigating the climate crisis because that one really can’t wait.



  • People just don’t want to believe that China can win at capitalism because it undermines all their internal narratives around the innovation power of liberalism. I say this as someone who does not personally like China and its authoritarianism.

    The fact of the matter is with a population of nearly 1.5 billion people, you’re statistically guaranteed to have enormous pools of talent to draw on. Even a relatively modest per capita investment in education, focused on key objectives and funneled into the portion of the talent pool that they’ve managed to identify, will be able to yield massive innovation.

    A lot of people will suffer under this authoritarianism. The people from these talent pools will be exploited and burnt out at a young age. This is already happening in China. But as a nation, it will be able to position itself extremely well technologically and economically, and this is a reality the rest of the world needs to be prepared to deal with.