• thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    46
    ·
    2 years ago

    As a Thunderbird user and Rust fan, I approve this integration. However I want to mention that Thunderbird is good as it is and actually don’t think new features are needed. Only compatibility with other software or protocols could be better (which the Rust integration aims to improve). And to be honest, a way to disable some of the feature bloat would be preferable too, as I don’t use lot of the additional stuff (but I make use of the RSS Feed reader).

    • Ohh@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      2 years ago

      Thunderbird still uses mbox. Maildir is incomplete and experimental.

      I really wish we could use maildir.

      • thingsiplay@beehaw.org
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        2 years ago

        Yes it was shocking to learn about the file format. I reverse engineered the stuff that I need to know and its a complex mess of noodle soup (later found a description of it, but its not fully documented by Mozilla either). I am surprised that Thunderbird still uses this ancient and inefficient format.

  • SuperFola@programming.dev
    link
    fedilink
    English
    arrow-up
    45
    arrow-down
    10
    ·
    2 years ago

    I’m getting fed up about all those articles “rust x something: the future?”, “I rewrote <cli tool> in rust it’s now memory safe”. I get the rust safeties and all, but that doesn’t automatically make everything great, right ? You can still write shit code in any language that can RM -rf all your disk, or let security gaps here and there without intending to.

    • asudox@lemmy.world
      link
      fedilink
      arrow-up
      17
      arrow-down
      2
      ·
      edit-2
      2 years ago

      It does make stuff great. Even Microsoft is trying out Rust in their shit operating system because apparently 30% of all CVEs are related to, you guessed it, memory issues. And Rust will most likely solve them all. Even the Linux kernel has Rust code in it now. If Rust was not of importance, why would the Linux kernel get rusty? Especially Linus Torvalds is very strict about these things. Sure, bad code rewritten in Rust does not make it any better than it originally was. Plus you get C-like speed with good syntax and memory safety, what more could you ask for?

    • sweaty@lemmy.world
      link
      fedilink
      arrow-up
      15
      arrow-down
      2
      ·
      2 years ago

      Yes security issues will remain a problem no matter what language was used. You are talking about the possibility of a logic flaw being there, whereas rust ‘just’ prevents memory corruption.

      Which is the more common security issue? Memory corruption by a mile. That’s why many are excited by the rust rewrite

      So you’re right it isn’t literally everything, but I’m not sure what would be. What would make you not fed up about it?

      • SuperFola@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        4
        ·
        2 years ago

        I think I’m more fed up with people making those quotes “rust will change everything” when, in fact, it will rule out many if not most memory corruption as you said. Reading your comment, I see now it’s the mentality “everything need to be in rust” that bothers me the most, which in fact means “rust can bring memory safety” and not “rust will replace everything”. Alas I’m seeing it used times and times again as the latter instead of the former.

  • radiant_bloom@lemm.ee
    link
    fedilink
    arrow-up
    29
    arrow-down
    21
    ·
    2 years ago

    Who cares ? What matters is the features and how fast the app is. Not what language was used to achieve that.

    • mosiacmango@lemm.ee
      link
      fedilink
      arrow-up
      42
      arrow-down
      4
      ·
      2 years ago

      Rust is wildly fast. Learning that it is being used for a program is good to know if you care about speed. If you read the article, it even addresses your exact critiques:

      Moreover, Rust has demonstrated superior performance compared to JavaScript add-ons, resulting in a quicker and more responsive Thunderbird. Furthermore, the integration of Rust into Thunderbird will be facilitated by the fact that it is already utilized in Firefox, enabling Thunderbird to leverage existing infrastructure for testing and continuous integration.

      So not only with thunderbird be faster because Rust is faster than JavaScript, but it eliminates 3rd party addons by being native which also further increases speed. Lastly, development time for new features and improvements is faster because they can now use using the mature tooling that Mozilla has for Rust.

      So yeah, good to know its using Rust now.

      • thingsiplay@beehaw.org
        link
        fedilink
        arrow-up
        7
        arrow-down
        1
        ·
        2 years ago

        I wrote a simple commandline program in Rust to read mailbox file from Thunderbird and to output count of unread mails. The speed is insanity! Measuring the execution time with command time CMD outputs execution time of total 0m0,001s! While also providing all the features and checks from Rust (plus Clippy with pedantic options enabled), so I am confident it is not a buggy mess. I would need at least 10 years of professional experience in C to have this feeling of confidence.

      • eveninghere@beehaw.org
        link
        fedilink
        arrow-up
        7
        arrow-down
        1
        ·
        2 years ago

        Not the person you wrote to, but TB has native code in C++, so I don’t really think the speed will change. The official website also doesn’t advertise speed improvements. It argued that Rust is (almost) as fast as the current native C++ part in TB, and that’s about it.

      • radiant_bloom@lemm.ee
        link
        fedilink
        arrow-up
        8
        arrow-down
        9
        ·
        2 years ago

        The improvement here is switching from interpreted to compiled. It could have been C, Zig, Odin, or even C++ (but thank Satan it isn’t C++)

        I’m not sure I understand why people like Rust over C, although I don’t have that much experience in enterprise coding. I’m generally distrustful of languages without a standardized specification, and I don’t really like that Rust has been added to the Linux Kernel. Torvalds giving in to public opinion isn’t something I thought I’d live to see…

        I get the segmentation fault thing, but to be blunt, that sounds like a skill issue more than an actual computer science problem.

        Maybe if things were less rushed and quality control was regarded more highly, we wouldn’t have such insanities as an email client (or an anything client) written in JavaScript in the first place.

        Rust is likely going to suffer the same problem as JS, where people indirectly include 6,000 crates and end up with 30 critical CVEs in their email client that they can’t even fix because the affected crate was abandoned 5 years ago…

        • LeFantome@programming.dev
          link
          fedilink
          arrow-up
          18
          arrow-down
          1
          ·
          edit-2
          2 years ago

          This “skills issue” thing just sounds so stupid in my ears. I am sick of reading it.

          So, I am choosing a language that I hope will ensure fast, secure, and sophisticated code for my project. It has to do this for code I write, my team writes, and all future maintainers and contributors will write as well. If I choose a language that makes it easy to write unstable, fragile, and insecure code then “the skills issue” applies more to my lack of capability as an architect than it does the coders that come after me.

          Stop saying, “well ya, it is super easy to make these mistakes in this language but that would never happen if you are as awesome as I am” and thinking that sounds like an intelligent argument for your language choice. There are better options. Consider them.

          • radiant_bloom@lemm.ee
            link
            fedilink
            arrow-up
            3
            arrow-down
            1
            ·
            2 years ago

            Why do you want sophisticated code ? That word seems out of place from the other two to me.

            Rust doesn’t introduce the same problems as C, but it sure does introduce a lot of other problems in making code overly complicated. Lifetimes and async are both leaky abstractions (and don’t even work as advertised, as rust-cve recently demonstrated), macros can hide control flow…

            C is unsafe, sure, but also doesn’t pretend to be safe. C is also stupid simple, and that’s a good thing : you can’t just slap ArcMutexes around, because by the time you know how to code them yourself you also know why you shouldn’t do that.

            I hope Rust can reach a point where its safety model can be formally proven, and we have a formal specification and a stable ABI so we don’t have to hard-compile every crate into the binary.

            But I personally expect something with some of Rust’s ideas, but cleaned up, to do that instead. Actually, I wouldn’t be surprised if C itself ends up absorbing some of Rust’s core ideas in an upcoming standard.

        • ReversalHatchery@beehaw.org
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          2 years ago

          It’s not “the segmentation fault thing”. It’s that C allows you to shoot yourself in the foot in many various ways, part of which will immediately show itself in the form of a segfault, part of which may show itself in the form of a segfault minutes, days, or years later depending on how the users use the software, and part of which will not show itself in the form of a segfault ever but make the program unstable in other ways.

          Yeah, sure, you can say that it’s “a skill issue”, but maybe that’s not the attitude of the year if you want more contributors in the project, which is a useful goal if you don’t want it’s developer community to die out or otherwise disintegrate.

          where people indirectly include 6,000 crates and

          That’s why the maintainers shouldn’t allow anyone to just add any new dependencies without a proper consideration. I don’t think this is an unsolvable problem.

          • radiant_bloom@lemm.ee
            link
            fedilink
            arrow-up
            1
            ·
            2 years ago

            I admit to not knowing how running an open source project goes, but wanting more contributors seems like the wrong metric compared to better contributors.

            I understand the pitfalls of C are not limited to segmentation faults, but I suspect it would be more productive to fix C by including some of Rust’s better ideas than to throw it away, as seems to be the current trend.

            I don’t think Rust is wholly bad, to be clear, but it seems over-engineered to me, and the fact its useful new features don’t even completely work (see rust-cve) isn’t very encouraging.

            I would recommend listening to Jonathan Blow’s opinion on Rust, which I tend to agree with. I personally think I’m just going to stick with C until Rust either becomes the standard, or I retire and let the next generation worry about that.

            • ReversalHatchery@beehaw.org
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 years ago

              I don’t have much experience in C, but I’m not sure if bringing Rust’s ideas over to C would help.
              As I understand, a lot of problems come from either that arrays are actually just pointers and if you don’t enforce it’s length for yourself then no one will, and in practice they span the entire area of process memory dorwards and backwards too. Or from that you free memory at the wrong time, or you never do that at all.
              You can’t make mistakes with the first thing in Rust because the compiler takes note of the array’s length, and you just can’t abuse it as it won’t compile then. The second is a nonissue too, as memory management is automatic (kind of).

              Fixing C sounds to me like patching up a sieve. That language was designed with those features in mind that make it error prone, and changing them would result in a different language. You would have to change your program anyway, and that probably wouldn’t be a small renovation. Also, you often can’t afford to not use pointers, because that’s how you pass things by reference in C, and besides passing by reference being important for performance reasons (to avoid copies) that’s the only option if so you have is a pointer to something, and when it’s stored in the heap.

            • pingveno@lemmy.ml
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 years ago

              including some of Rust’s better ideas than to throw it away

              The problem is that you can’t just tack Rust’s ideas onto an existing language. Generics, traits, lifetimes, borrowing, sum types, and match are key Rust features, but took considerable design time before Rust even reached 1.0. They interlock to produce a pleasant development experience. You can’t just attached them to C and call it a day.

              I don’t think Rust is wholly bad, to be clear, but it seems over-engineered to me, and the fact its useful new features don’t even completely work (see rust-cve) isn’t very encouraging.

              Most of the CVE’s listed there are in unsafe code in the standard library. At some point, some code is going to have to have to implement the tricky cases. In C, this code is common place, ready for any coder to run into problems. In Rust, these are bizarre edge cases that most people would never trigger.

              I haven’t heard Jonathan Blow’s take yet, but one thing a person pointed out is that he tends to prefer a style that uses a lot of shared state. Rust explicitly discourages that style, considering it a source of bugs.

              I encourage you to give Rust a try. It never hurts to have another language in your arsenal. Who knows, you might even find it fun.

        • someacnt_@lemmy.world
          link
          fedilink
          arrow-up
          5
          arrow-down
          1
          ·
          2 years ago

          Do you really think Torvalds is the one who would cave in to public opinion only? Really?

          Also how much of C programming did you do

        • iopq@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          4
          ·
          2 years ago

          Any bug is a skill issue. There’s literally 0.001% of programmers who are dealing with computer science problems and they are all compiler writers

    • LeFantome@programming.dev
      link
      fedilink
      arrow-up
      16
      arrow-down
      4
      ·
      edit-2
      2 years ago

      Why does every mention of Rust have to spawn these comments?

      The story right after this one for me is how KeepassXC is porting to Qt6. I bet nobody has knee-jerk responded to that story bitching about the fact that they mentioned Qt. It is just the anti-Rust zealots that do this.

      This article talks about the problems they were trying to solve, the tools they chose, and how those tools solve those problems. What is wrong with that?

      Are you offering up informed commentary countering why you would have made different choices and why?

      You do not need to attack every mention of a technology just because it threatens your historical preferences.

    • sibachian@lemmy.ml
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      2 years ago

      people who like fast apps should care because like 99% of current software developers are building electron apps instead of giving us something that actually lets your high end computer behave like a high end computer.

      the only modern chat application that doesn’t run electron today is Telegram.

      the only cloud note taking app that doesn’t run electron is …uh. doesn’t even exist.

      the only…

      i can’t even think of something i use that was released after 2016 on my computer that doesn’t run at a crawl because of electron. fuck electron.

      • Richard@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 years ago

        I am pretty sure all of the KDE suite software does not use Electron. Or are you using Windows?

        • sibachian@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 years ago

          using cinnamon. and yeah base software is largely fine. but non-base productivity apps are largely built in electron. cinnamon even offers a webapp tool so in some cases i can at least avoid it.

  • daddyjones@lemmy.world
    link
    fedilink
    arrow-up
    13
    arrow-down
    29
    ·
    2 years ago

    How many people still use an email client? Genuine question.

    I use either my phone or a web interface.

    • smileyhead@discuss.tchncs.de
      link
      fedilink
      arrow-up
      41
      ·
      2 years ago
      • offline access and archival
      • use with multiple providers
      • seamless integration with contacts and calendar of any provider
      • better keyboard shortcuts
      • multiple windows
      • end2end encryption via PGP keys, can use same keys as the rest of the system
      • more lightweight on system resources
      • themes, I guess?
      • TCB13@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years ago

        ^ Boils down to not being hostage to a single provider and whatever it offers.

    • HouseWolf@lemm.ee
      link
      fedilink
      English
      arrow-up
      20
      ·
      2 years ago

      I only recently start using it after also being a browser email user all my life.

      Kinda wondering what took me so long Thunderbird is great! don’t have to relearn questionable Ui between different email providers or re-login to check two mailboxes on the same provider.

      Only annoying thing is not supporting ProtonMail out of the box.

      • RBG@discuss.tchncs.de
        link
        fedilink
        arrow-up
        6
        ·
        2 years ago

        That annoying thing is more on Protonmail though and I don’t mean that as a negative, just more difficult to connect when the provider wants to keep things secure.

        • TCB13@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 years ago

          just more difficult to connect when the provider wants to keep things secure.

          Proton could’ve just implemented everything they did with IMAP/SMTP on Thunderbird + OpenPGP with the same level of security, but they decided not to. Yes, their solution is convenient but also close to everything else.

      • TCB13@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 years ago

        Only annoying thing is not supporting ProtonMail out of the box.

        That’s Protons fault, they’re the ones that decided to ignore all the open and standard e-mail, contacts and calendar protocols out there and built their custom-everything stack to keep you vendor-locked into their interfaces.

    • radiant_bloom@lemm.ee
      link
      fedilink
      arrow-up
      14
      ·
      2 years ago

      Web interfaces are so much worse than local apps IMO. And that doesn’t just include email, I always choose a local app over anything that runs in my browser.

    • TheEntity@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      2 years ago

      How many email accounts do you have? It might be a huge factor. I have about 7 accounts I need to check regularly and I cannot imagine doing it manually for each. I can see it working for one or maybe two though.

    • Olap@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      2 years ago

      Me. Outlook on my windows work box is hard to beat imo. Personal? All android’s default and web-ui

    • baseless_discourse@mander.xyz
      link
      fedilink
      arrow-up
      4
      ·
      2 years ago

      I use a client because I don’t want microsoft to remember me when I go on other microsoft site besides their web email client.

      I guess I can use a dedicated browser for email, but that is pretty much just a email client using more resources.

    • onlinepersona@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      7
      ·
      2 years ago

      I want to, but none work properly. KMail is broken on NixOS, Evolution doesn’t work well with KDE, and Thunderbird was just a broken mess last time I used it a few years ago when I was distro-hopping. Email is really not that important to me anymore either. Check it on the shitter or before bed and that’s it.

      Anti Commercial-AI license

        • onlinepersona@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          2 years ago

          There was also a problem with it no syncing calendars or something. Can’t remember which issue I had there. Maybe it’s all fixed now since Qt6, but that’s to be released in the next stable version I think.

          Anti Commercial-AI license

          • dblsaiko@discuss.tchncs.de
            link
            fedilink
            arrow-up
            1
            ·
            2 years ago

            Huh, I haven’t encountered any of these (adding address book works for me too, the last comment on that post seems to have a solution if it doesn’t for you) and I’ve used KMail on NixOS for probably about as long as that first issue existed. Weird.

              • dblsaiko@discuss.tchncs.de
                link
                fedilink
                arrow-up
                1
                ·
                2 years ago

                Not at all, given we’re running probably significantly different configurations. With the same configuration we’d get the same results, and NixOS never claimed to eliminate what is essentially packaging bugs related to runtime dependencies. KDE stuff (and especially anything Akonadi-related) right now needs a lot of plugin path environment variable mess to work with NixOS’s file structure because it loads a bunch of stuff at runtime from other packages, which can break in strange ways like this if you don’t add a specific package to your system packages for example, it’s definitely not ideal the way it is right now but it’s also pretty hard to get right.

                • onlinepersona@programming.dev
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  2 years ago

                  Not at all, given we’re running probably significantly different configurations. With the same configuration we’d get the same result

                  The same argument can be made for any OS. Same packages, same hardware, same configuration, and probably it would be the same.

                  NixOS never claimed to eliminate what is essentially packaging bugs related to runtime dependencies

                  https://nixos.org/

                  it’s also pretty hard to get right

                  I saw the work k900 and other contributors put into KDE and Qt stuff. It’s admirable. I’m not saying it’s their fault things are the way they are.

                  Anti Commercial-AI license