My frustrations with Rust. Why is this the most loved language?
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearTA
    taldennz
    2w ago 100%

    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.

    Coming from Java where you have no standard tool and two current defacto standards (Maven and Gradle) which do similar things in a less clean or standardised way, I think Cargo is one of the least contentious parts of the Rust experience.

    Supposively bad typescript

    Correct. Bad Typescript. You haven't provided any of the type information to make this a TypeScript construct (this is just JavaScript)

    It should be something like...

    interface Person {
        name: string,
        age: number,
    }
    
    const person: Person = {
      name: "joe",
      age: 23,
    }
    

    And the Rust equivalent being something like

    struct Person {
        name: String,
        age: u8,
    }
    
    let person = Person {
        name: "joe".to_string(),
        age: 23,
    };
    

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

    Those all have different sizes and capabilities. The lack of these requires the JS JIT compiler to try and guess (and deoptimise when it's wrong).

    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 - https://en.wikipedia.org/wiki/C_data_types

    • Similarly, Async code starts to look really ugly and overengineered in rust.
    • Having to use #[tokio:main] to make the main function async (which should just be inbuilt functionality, btw tokio adds insane bloat to your program) yet you literally can’t write code without it. Also what’s the point of making the main function async other than 3rd party libraries requiring it?

    I agree the Rust Async experience feels a little messy, and the lack of an opinionated default makes even the foothills a steeper climb than we might hope. However given all that it's trying to achieve (in terms of Rust drives for efficiency and safety) I don't have any better ideas right now.

    Speaking of bloat, a basic get request in a low level language shouldn’t be 32mb, it’s around 16kb with C and libcurl, despite the C program being more lines of code. Why is it so bloated? This makes using rust for serious embedded systems unfeasible and C a much better option.

    I don't know how you're getting to 32MB. A release build of the most basic form of a get request is not that bad.

    A simple chatgpt generated one app to get the content of an HTTPS URL, using reqwest and tokio is 4MB. I expect this can be reduced with options.

    However yes, the default Rust build (with all of the panic machinery and more) is bigger than C. But Rust doesn't have to be the best choice for every niche, to be an excellent choice for several. With that reasoning your return to TypeScript is equally flawed.

    Another major issue I’ve encountered is libraries in Rust, or lack thereof. Every single library in rust is half-baked.

    Coming from Java, Rust's young ecosystem is definitely noticeable. It's taking a while for it to grow, to mature, and for clearly dominant frameworks to emerge for various problem-spaces.

    Java, like Rust, is not opinionated about the frameworks, but the size and age of the community means that clearly dominating frameworks emerge with huge contributor bases - Rust just isn't quite there yet.

    As for “memory safety”, it’s a buzzword. Just use a garbage collector. They’re invulnerable to memory issues unless you write infinite while loop and suitable for 99% of applications.

    Again, coming from Java (which has a number of excellent GC implementations), Rust takes this a lot further (an alternative to null, protection against aliasing bugs). While I'm still fundamentally a Java developer, what Rust achieves here is significant.

    Then use C or C++ if you really need performance. Both of them are way better designed than Rust. In most cases though it’s just bikeshedding. We’re not in 1997 where we have 10mb of ram to work with, 9/10 times you don’t need to put yourself through hell to save a few megabyes of a bundle size of a web app. There are apps with billions of users that run fine on php. Also, any program you write should be extensively tested before release, so you’d catch those memory errors if you aren’t being lazy and shipping broken software to the public. So literally, what is the point of Rust?

    Tell me you don't pay to run anything large on cloud infrastructure without telling you don't pay to run anything large on cloud infrastructure. There's a cost to CPU and RAM. Java does okay on the first, but has a long history of doing poorly on the second (c'mon Valhalla - a Java enhancement project that will help here).

    Who cares? Coding is a tool to get shit done and I think devs forget this way too often, like if one works easier than the other why does learning lower level stuff matter? It’s useless knowledge unless you specifically go into a field where you need lower level coding. Typescript is easy, rust is not. Typescript is therefore better at making things quick, the resourse usage doesn’t matter to 99% of people and the apps look good and function good.

    Of your post, this is very nearly the only part I can somewhat agree with. Our industry primarily has more of a need for 'solution now please' than 'optimal solution later'. Engineering time matters. The learning curve and cycle time of Rust are barriers.

    Also, while Rust is a very safe language to refactor in, it's not quick to refactor in. The less ceremony and strictness there is, the easier it is to experiment and then refactor. This is, in part, why I think Python does so well in the ML/Data-science space - that niche is more R than D in the R&D balance of software development.

    So again, Rust suits some development needs better than others, now. However as it matures I think we will see it grab little pieces of the niches previously occupied by other languages. As it's tools and libraries get better, and as the pool of familiar developers increases, Rust's strength are going to translate more easily into dollars without costing time.

     

    I'm not ready to switch to Rust fully. But neither am I putting it aside - and I look forward to its continued improvements in libraries, language, tooling and adoption in more and more places.

    (I can say that I'm not planning on using TypeScript for any more than our front-end development though)

    16
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearUS
    Jump
    Trump Made Crass Dinner Jokes About Death of Rally Attendee
    Battery chemistry advance promises to deliver 'smaller, lighter, and cheaper' Li-ion cells
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearTA
    taldennz
    1mo ago 100%

    The article seems to only talk about an advance in knowledge about the degradation process. I see no mention that they have a proposed solution.

    Other than the fact the article contains an out-of-context quote, where does the "smaller, lighter, and cheaper" come from.

    Great there's new knowledge but seems a little more jumped-the-gunny than usual for battery-tech improvement claims.

    5
  • Why do used electrics drop so quickly in price?
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearTA
    taldennz
    4mo ago 100%

    Fast moving new technology means a larger gap between the used and new market. Combine this with effects of smaller volumes per model and they start high and fall fast.

    It will change, but 'early adopters' are carrying some of the costs of transition - though only realise losses at time of sale (so keeping the vehicle longer will cost you less than frequent refreshes).

    Edit: and no, buying one is not foolish. For many consumers, a midrange EV is already a saving over a reasonable lifetime.

    14
  • When watching a film, do you generally try to empathize with the lead and immerse yourself, or do you try to watch it more objectively?
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearTA
    taldennz
    4mo ago 88%

    I don't 'try' to do either.

    Either the film's production and marketing draw me in the intended direction or they don't. When their vision and my experience fail to align, I expect I'm less likely to enjoy the film.

     

    ...That or film was garbage. YMMV

    13
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearPE
    Jump
    We shouldn't have to work 40 hours a week to afford a basic life. We do because our currency is constantly losing value. This is by design.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearTA
    taldennz
    5mo ago 100%

    Well yeah. How can I appreciate being rich if there aren't poor people to compare myself with / lord over

     

    ...is something I'm not rich enough to say. Sigh.

    2
  • www.rnz.co.nz

    > The Green Party has announced that it wants to increase annual leave to five weeks. > > Co-leader Marama Davidson told a crowd at a E Tū election launch in Māngere today that it would provide organisations with plenty of notice and ensure the full five weeks is available for everyone by the end of 2025. This wouldn't make NZ an unusual outlier globally, though perhaps it would be in this hemisphere - and that could be an attractive aspect as we continue to lose talent to Australia. I'd like to see them carve out an exception for businesses that opt for a 32-hour 4-day week - either one works towards a better work-life balance and a 4-day week is a lot more personal days than just one week extra. Providing an exception for 4-day week businesses would avoid slowing uptake of the 4-day model for businesses that can make it work. The question is, how to balance the exception and leave changes for non-full-time employees? Can NZ afford it? How many businesses are too fragile from the recent years of challenging operation. I suspect many _can_ afford this, and that some have been pocketing the rewards of improved revenues in this inflationary environment without readily passing on those rewards. There could be more businesses struggling than we'd hope, that are too fragile from the challenges of recent years to wear the new costs. Then again, maybe some negative impact is worthwhile for the improvement to the portion of the workforce that lacks the negotiating position to get such a deal - some executives and upper management certainly do enjoy such arrangements, including reduced days on massive salaries. As an employee I like it.

    88
    39
    www.rnz.co.nz

    > A biennial workplace wellness survey by Southern Cross Health Society and BusinessNZ showed the average rate of absence was 5.5 days per employee over the course of 2022. > > It compared to a range of 4.2 and 4.7 days between 2012 and 2020, and was the highest on record since the survey began in 2012. > > ... > > Southern Cross chief executive Nick Astwick said Covid and the then mandatory seven-day isolation was a factor in the higher absences. > > "But we also believe as we've moved the minimum leave entitlement from five days to 10 days, that's also contributed to an increase of leave," Astwick said. > > "Some of the workforce - we don't know how much - but some of the workforce see the 10 days as an entitlement and so we were expecting to see an increase, and we have," Astwick said. Though another thing to consider is that, at least in my jobs, when the 5 days were exhausted, you just ate annual leave days when you were sick - or you just brought the bug into the office. So the change could be reflecting that 5 days was actually not enough (especially with young children who bring home minor illnesses frequently). The increase in average rates seems quite small given the doubling of the allowance. There _will_ be abuse, I'm not denying it, but allowing us to use sick-leave instead of annual leave so that we can actually get recreational time off seems a fair enough change.

    18
    9
    "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearLE
    Lemmy Support taldennz 1y ago 100%
    Advice? Disappearing Subscribe/Block buttons and permanent Pending subscriptions

    I've run into the following two issues that interact in a frustrating way. * Many of my community subscriptions seem to get permanently stuck in a subscription 'Pending' state (though I don't know how this differs from actually being Joined). * Often the 'Subscribe' and 'Block' buttons on the community page are just text (not clickable). Reloading the page (often _many_ times), can sometimes render the Block button, but I've never seen the Subscribe reappear. The advice being given for 'stuck in pending' is to unsubscribe, pause, and then resubscribe. However more often than not, I cannot resubscribe because the 'Subscribe' button is no longer accessible. Currently I'm regaining access to communities by subscribing via a mobile-app (Jerboa). This doesn't help the Pending issue though. Are there [Lemmy issues](https://github.com/LemmyNet/lemmy/issues?q=is%3Aissue+is%3Aopen) I can monitor to track when a fix reaches release? Should I file _this_ as a report? Environment: * Lemmy web-app - my instance is running 0.18 as of this post * Firefox (114.0.2) - with uBlock Origin disabled

    2
    2

    What's the best way to help Lemmy users organise into productive communities? On Reddit we have: * `r/java` - Java news and discussion. Not about learning the language or getting help with Java problems * `r/learnjava` - learning to use the Java language, platform, its tools, or parts of its ecosystem (libraries) * `r/javahelp` - Getting help with Java (in practice, much the same content as `r/learnjava`) So far, on Lemmy I've found the following (with only the very start of an active membership building up in each) * [Java™ Community@lemmy.ml](https://lemmy.ml/c/java) - One option for replacing `r/java` * [java@programming.dev](https://programming.dev/c/java) - Another candidate for replacing `r/java` * [Learn Java@lemmy.world](https://lemmy.world/c/learnjava) - a possible replacement for `r/learnjava` and `r/javahelp` Are there other communities out there already? How do we avoid fragmentation? Where there's overlap, are there reasoned opinions on how to converge (eg matching instance policies to the audience)?   Do we just encourage communities to peer-link until critical mass develops and community activity-levels speak for themselves? Or is that just likely to split the community until community owners promote migration towards a 'common space' for each type of content?

    3
    1