Your friendly local programmer, uni student and *nix addict.

  • 0 Posts
  • 22 Comments
Joined 1 year ago
cake
Cake day: June 26th, 2023

help-circle








  • It may nominally have more secure defaults than Firefox (although I doubt it’s better in the areas that matter.)

    The problem is that the creators have demonstrated (by secretly injecting referral/affiliate links into URLs, and also by being crypto shills) that they are entirely untrustworthy. In a piece of software as security and privacy critical as a browser, such behavior is unacceptable.







  • Yes. We have plenty of studies indicating that IQ deviation (for lack of a better measurement) is heritable.

    This is even observable casually - plenty of people gossip about $LOCAL_FAMILY having a history of Darwin award attempts, or how $OTHER_FAMILY is stuffed with straight-A engineering students.

    However, it’s only a component, not the whole story. Intelligence can be built up like muscle - Joe Average who trains will beat out Sally Smartypants who doesn’t.



  • Too many people conflate the evils of corporatism and corruption with the general concept of “capitalism”/a market economy.

    Now, I’m hardly an advocate of laissez-faire economics. But I’m not a full-on socialist either. I think the majority of problems people attribute to modern market economies can be corrected with aggressive anti-trust and pro-consumer regulation.

    (The keyword here is majority. I’m sure it makes sense to socialize some things, but those details are best left to people smarter than me.)



  • I’m a big fan of Rust.

    • Excellent tooling. The package/build manager (cargo) just works, the compiler’s error messaging is simply unmatched and the IDE story is excellent thanks to rust-analyzer.
    • Rich ecosystem. There’s a crate for almost anything you could need, and endless piles of learning resources.
    • You get the speed and low-level control (if necessary) of C/C++ without all the pain and legacy baggage.
    • The community tends to care a lot about correctness and API design, which is reflected in both the core language and the ecosystem. Rust doesn’t try to hide complexity and pretend things are simple (like Go) - instead, it gives you the tools to manage it head-on.
      • Example: if a function can fail, then it returns a Result and you have to explicitly handle the possibility that something went wrong. There’s no forgetting a null check and slamming face-first into a NullReferenceException or segfault in some other part of your code.
    • It’s expressive. Iterators, generics/traits and other language features make it easy to communicate what’s going on to both the machine and other humans. Even the syntax is designed to support this - you can tell a lot just by looking at a function signature.

    Obviously it’s not all perfect, however.

    • Compile times can drag you down. (rustc is always getting faster, of course, but it’ll probably never be as fast as Go or JVM/NET.)
    • It can be difficult to read at times, especially when code starts leaning heavily into generics and lifetime annotations.
    • Speed and control comes at a cost. No garbage collector means that anyone coming from a managed language (which, hello, that was me) is going to have to rewire their brain to deal with lifetimes, ownership and mutability XOR aliasing. You eventually develop an intuition for how to structure your code to play nice with the compiler, but that takes time.
    • New language features can take a long time to be stabilized and released. The advantage is they tend to be baked all the way through from day one, but the slow pace can be infuriating, especially when big ecosystem advancements are hung up on key additions.