Hello there!

I’m also @savvywolf@furry.engineer , and I have a website at https://www.savagewolf.org .

He/They

  • 1 Post
  • 102 Comments
Joined 1 year ago
cake
Cake day: June 27th, 2023

help-circle





  • (Wow, 14 posts in 2 hours on Lemmy… The old wisdom that the best way to start a discussion is to loudly complain about something rings true :P)

    Cargo is doing too many things at once. It’s a build system but also a package manager but also manages dependencies? Idk what to even call it.

    It’s still a build system; most (good) build systems also manage downloading and resolving dependencies. Having them all as part of the same tool makes everything slot together nicely.

    Syntax is very confusing for no reason.

    It’s not no reason; dealing with ownership is a complicated problem. It’s just that most languages tend to hide it and let the programmer tangle themselves in knots.

    You keep talking about it being obvious what the code does but… Using :: over . helps clarify, at the call site, that you are using a “static” function rather than having to make the programmer look up the definition of the lhs.

    Js is way more readable.

    Pop quiz: Is this a copy or a reference?

    let a = b;
    

    You can just look at it and immediately know what the code is doing even if you’ve never coded before.

    You can’t really… The JSON map object syntax isn’t actually intuitive to non-programmers. I’d argue that the rust version is more intuitive, since they can probably make a good guess based on the word “insert”.

    Multiple string types like &str, String, str, instead of just one “str” function

    These are distinct types with distinct meanings. JS and TS sacrifice some performance to make them seem like the same type, which may or may not be justified in your project.

    i32 i64 i8 f8 f16 f32 instead of a single unified “number” type like in typescript.

    JavaScript has three number types, ints, floats and BigInts. The former two are both called “number”.

    Even in C you can just write “int” and be done with it so it’s not really a “low level” issue.

    No you can’t. int is different sizes on different platforms. (EDIT: I was thinking about long. If you need more than 32 bits (which you do to store a pointer), that’s where the problem lies)

    yet you literally can’t write code without [tokio].

    I’ve never actually used Tokio. :D

    Why is it so bloated?

    Are you compiling at the same optimisation level, stripping debug info and statically linking libcurl in both cases?

    Another major issue I’ve encountered is libraries in Rust, or lack thereof.

    This is a big problem, I agree. Though to be fair, I’ve also encountered it with both NPM and PIP. Perhaps worse so there, because the compiler isn’t backwards compatible.

    They’re invulnerable to memory issues unless you write infinite while loop and suitable for 99% of applications.

    No they aren’t~ It’s easy to write code that hitches every few seconds (which kills games). And you also overlook the fact that a garbage collector is, quite frankly, a miracle of optimising compilers. I remember back in university being warned to remove the “next” pointer of graph nodes because otherwise memory would leak.

    Then use C or C++ if you really need performance. Both of them are way better designed than Rust.

    I develop professionally in C and C++. No they aren’t. At all. C and C++ are so loaded with footguns it’s a surprise people can get anything done in them without triggering UB.

    Also, any program you write should be extensively tested before release

    True. But nobody does that. And even if they did… Why not use a language that makes testing easier and faster?

    you’d catch those memory errors if you aren’t being lazy

    Not in any sufficiently large codebase.

    that’s enough for the entire programming space to rank it year after year the greatest language

    If you find that everyone in the world except you seems to be involved in some elaborate conspiracy, please check your reasoning.

    And the thing is, that’s fine, the issue I have is people lying and saying Rust is a drop in replacement for js

    Ehh… I don’t think it is. I think people interested in stepping up their programming game should give it a go, but branding it as a “noob friendly” programming language is going to put people off programming.

    Typescript is therefore better at making things quick

    Thing is, these “quick” programs tend to spiral out into huge megaliths of software that span several servers and support millions of users. And then the only person who knows what everything does gets hit by a bus, and so you have to figure out what thousands of lines of Typescript, PHP and Python code does.

    Python, JS and php are good for firing out quick solutions, but once you get to the point where maintenance starts becoming more important than new features, it falls off hard. There just isn’t enough structure in the language to make it easy to figure out what code is doing.

    I’m about to just give up and move on

    Honestly, I bounced off of Rust the first time I tried it as well. I got frustrated about code not working, and just… Stopped using it. I then tried it again a few years later and everything finally “clicked”. Perhaps it’s the same with you? Give it a break for a bit, but don’t write it off yet. Come back to it later to give it another go.

    Rust isn’t an easy language to wrap your head around if you aren’t familiar with the problems it’s trying to solve, but it’s not trying to be. Think of it as the drill sergeant that makes you stand up straight and become a better programmer.



  • I was taking to my sister, who is an artist, about setting up Linux and warned them about poor Adobe support. Their response was “⭐ 𝒻𝓊𝒸𝓀 𝒶𝒹𝑜𝒷𝑒 ⭐” due to their AI shenanigans and high costs.

    So thanks modern Adobe for making it easier for people to switch to Linux.