Person interested in programming, languages, culture, and human flourishing.

  • 5 Posts
  • 38 Comments
Joined 1 year ago
cake
Cake day: June 17th, 2023

help-circle


  • I mean, the simple proof is that Rust has been growing by leaps and bounds in the embedded world, which is the closest to bare metal you get. It’s also being used in the Linux kernel and Windows, and there are several projects building new kernels in pure Rust. So yeah, it’s safe to say that it’s as close to the metal as C.

    Also, the comparison to Java is understandable if you’ve only been exposed to Rust by the memes, but it doesn’t hold up in practice. Rust has a lot more syntax than C (although that’s not saying much), but it’s one of the most expressive languages on the market today.


  • My preferred variation of this is to make it an open question that leaves them in the position of authority, and assumes that they made a deliberate decision.

    For example, instead of “Why aren’t you using StandardLib that does 90% of this?”, I would try “Could this be achieved with StandardLib? Seems like it would cover 90% of this”.




  • I switched from Zsh to Nushell almost two years ago and I have never looked back. If you need POSIX compliance, Nushell is a no go. But it sounds like your real problem was just that Zsh was familiar whereas fish was not. Nushell strikes the perfect balance of offering the commands you’re used to but letting everything just make intuitive sense. Plus, its help command is so far above and beyond other shells. I rarely need to open the Nushell docs (even though they’re really good), and I never have to go the community (even though it’s awesome), because I can figure pretty much everything out just from interacting help within the terminal.







  • I think the point is that they don’t want to have to use a full JS framework (which is what HTMX is) for this behavior.

    And this is where HTMX fits in. It’s an elegant and powerful solution to the front-end/back-end split, allowing more of the control logic to operate on the back-end while dynamically loading HTML into their respective places on the front-end.

    But for a tech-luddite like me, this was still a bit too much. All I really want to do is swap page fragments using something like AJAX while sticking to semantically correct HTML.

    EDIT: Put another way, if you look at HTMX’s "motivation"s:

    motivation

    • Why should only <a> & <form> be able to make HTTP requests?
    • Why should only click & submit events trigger them?
    • Why should only GET & POST methods be available?
    • Why should you only be able to replace the entire screen?

    By removing these constraints, htmx completes HTML as a hypertext

    It seems the author only cares about the final bullet, and thinks the first three are reasonable/acceptable limitations.




  • There are several things I disagree with in this article, although I see where the author is coming from. I will never be onboard with “I’ll take my segfaults and buffer overflows.”, and I fundamentally disagree about concurrency. I also think that cargo is fantastic, and a lack of standard build tools is one thing that holds rust’s predecessors back.

    However, a majority of the authors points can be boiled down to “C is more mature”, which doesn’t tell us much about the long-term viability and value of these languages. For example, in the author’s metric of stability and complexity, they use C99 as the baseline, but C99 is the state of a language that had already had almost 3 decades of development, whereas Rust has been stable for less than a decade. Talking about superior portability, stability, and even spec, implementations, and ABI is in some real sense just saying “C is older”.

    That’s not to say those things aren’t valuable, but rather they aren’t immutable characteristics of either language. And given that safety is playing an ever more important role in software, especially systems software, I think Rust will catch up in all the ways that are meaningful for real projects more quickly than most of us realize. I certainly don’t think it’s going anywhere anytime soon.







  • One alternative that seems promising is Nebula. It only fills a small part of the role YouTube currently occupies, since it focuses on being a platform for high quality professional content creators to make unfiltered content for their audience, but it’s funding model seems to be much more honest, stable, and so far viable than an ad-supported platform or the other alternatives. I don’t think anything could realistically replace all facets of YouTube (and I think the internet might be healthier if it were a little bit less centrally-located). A self-sustaining, straight-forwardly funded platform like Nebule seems like the best path forward to me.


  • Ah ok I think I get you now. To be clear, fall through is implicit - when the case being fallen through is empty. I forgot that, if you want to execute some statements in one case, and then go to another case, you need gotos. To be fair, I’ve never needed that behavior before.

    I absolutely see your point on break not being the default. It is sad, although I will say I don’t mind a little extra explicitness in code I’m sharing with a large team.


  • I’m not sure I understand your point about fall through having to be explicit, but I agree that switch statements are lacking ergonomics - which makes some sense considering they were added a looooong time ago. Luckily, they added recently the switch expression, which uses pattern matching and behaves more like Rust’s Match expression. It’s still lacking proper exhuastiveness checks for now, but that’s a problem with the core design of composition in C#’s type model and one they are looking to solve (alongside Discriminate Unions in all likelihood).