• habanhero
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    For Slack it does. Building an app via Electron means it’s cross-platform by default, so Slack doesn’t need to invest in separate platform teams to solve the same problem (Windows, macOS, Linux).

    Electron also has better support for things like native notifications, video and voice calls, offline capabilities, and to other native APIs etc that are either unsupported or spottily supported via the browser.

        • anti-idpol action@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          It’s a much more lightweight option for building cross platfrom apps than Electron. Heck, even Tauri is better than Electron even though it also uses web technologies for UI.

          • habanhero
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Flutter came to market much later. It wasn’t even a thing when Slack started building using Electron. I’m sure the same applies to Tauri as well.

      • habanhero
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        It has all this support for native platforms yet it’s always a clunky memory hog

        Maybe so but it has improved a lot over time. The app devs share some responsibility too so it’s not all on Electron.

        zero effort to respect the design language of the OS it’s running on.

        That’s the Dev’s design choice, not a limitation of Electron.

        I’m on macOS, I want the app to be a native macOS app. If I wanted it to look like a webpage, or Windows, or Linux GTK then I’d switch to one of those and expect it to match those paradigms.

        I don’t disagree but at the end of the day it doesn’t matter to enough people for it to become an issue. People are used to Slack and the way it works.

        Moreover the cost of building the same app 2x or 3x simply doesn’t make business sense.

          • habanhero
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            What happened to writing the “core” of an app that doesn’t rely on UI then simply writing the front ends for each platform you want to support?

            What do you mean? I can’t speak for Slack but I’m sure some degree of business logic / client side logic separation exists.

            By the way, what you just described is the essence of cross-platform development, rather than an argument for building apps natively.

            simply writing the front ends for each platform you want to support?

            But why would you rewrite the “front-end” for each platform if you have one you could just port over? Who is going to pay for those 2x developers and what would be the ROI on this effort?

            That’s just three (if you don’t write for a million desktops on Linux).

            Is it really so hard to support just three environments with only the UI being tailored for the OS it’s running on?

            In Slack’s case I’d wager the answer to be a resounding YES. I don’t think you fully grasp the full scope Slack’s capabilities, and the amount of work involved to build native clients for not just one or two, but three different platforms - it’s definitely not just the “UI”.

            Honestly, it just feels like poor tooling and a poor excuse.

            Quite the opposite - frameworks like Electron let’s devs with your skillset build with the stack you already know, and abstracts away quite a bit of the cross-platform complexities, which strangely enough is what you are suggesting but also what you are arguing against