• Otter@lemmy.ca
    link
    fedilink
    English
    arrow-up
    25
    arrow-down
    2
    ·
    1 year ago

    Isn’t this about performance and not storage?

    Making and managing an electron app is easier, but it is possible (with more work) to have clean install/uninstall, a nice UI, and consistent regular updates while still being fast and efficient.

    Better programs will always need more work to create.

    I am curious about what other options there are, and why Electron is what a lot of people go with.

    • masterspace@lemmy.ca
      link
      fedilink
      English
      arrow-up
      22
      arrow-down
      1
      ·
      edit-2
      1 year ago

      Options:

      Native app for each platform:

      • Pros: native code is going to be the fastest possible to run and have the smallest dependencies
      • Cons: have to write all your code 3+ times in different languages, have less time to develop new features and optimize existing code.

      Progressive Web App:

      • Pros: single app, write once runs anywhere, no signing keys, no lock in, can be hosted anywhere, runs on everything
      • Cons: artificially limited by Apple on iOS, doesn’t have access to deep operating system resources, only what’s exposed through the browser, limited multithreading capabilities

      React Native:

      • Pros: single app, write once, runs anywhere, similar enough to React Web that a lot of developers will have an easy time learning it
      • Cons: still kinda finnicky, not super easy to make it work and perform well across all platforms, you’ll probably still end up having to write some native code, not actually CSS / React Web so still a bit of a learning curve coming from there

      Qt:

      • Pros: single app, write once, runs anywhere, low level / compiled means that it will be small and performant
      • Cons: written in C++, harder to find developers for, harder to implement modern out of the box niceties that CSS gives you for free, poor devX compared to react

      .NET MAUI (formerly Xamarin):

      • Pros: single app, write once, runs anywhere, low level / compiled enough to be more performant than most web apps out of the box, well documented
      • Cons: written in C#, easier to find devs for but not many experts in it specifically, MVVM model is not as pleasant of a devX as React, again no css

      Electron:

      • Pros: single app, write once, runs anywhere, has full access to operating system resources and deep multithreading if needed, can be as simple as web app in a container or as complex as something like VSCode.
      • Cons: takes up more storage and ram since you’re bundling chromium with your app
      • aksdb@feddit.de
        link
        fedilink
        arrow-up
        6
        ·
        1 year ago

        Flutter is quite nice too. Closer to web dev, but still pretty close to native.

    • AnonymousDeity
      link
      fedilink
      arrow-up
      17
      ·
      1 year ago

      People choose Electron because they already know how to write Chromium apps (web dev). It’s really just ease of development, using another framework takes more specialized skills than using Electron.

      That’s why everything is Chromium these days.

      • Carighan Maconar@lemmy.world
        link
        fedilink
        arrow-up
        4
        arrow-down
        1
        ·
        1 year ago

        That’s why everything is Chromium these days.

        The root cause is one step deeper, tbh: Web apps are cheaper. You take BSc’s and make them create web pages, and hey, with Chromium they can also be your desktop app devs. No need to have costly MSc’s for backend or full-stack work.

        I mean this might vary depending on where in the world you are, but web devs earn a fair bit less over here.

        • whofearsthenight@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          It’s not really because the developers are cheaper, it’s because the vast reduction in complexity is cheaper. Let’s say you’ve got a great general app idea and you’re going to build a startup. Your app is going to have to be mobile and desktop. To do that well, natively, this means:

          • you’re going to need a backend dev who are probably going to be building APIs that are touching on web tech.
          • You’re going to need a developer team who can target Apple platforms, Android, and Windows. I lump Apple together here because although it’s not entirely fair to say that it’s as simple as they promise where you just click a box and your iOS app works on macOS, you’re at least able to work in the same general toolset (Swift, SwiftUI, Xcode, etc.)
          • You’re going to need designers who can design to the specific needs of the platforms, which is also going to mean more domain expertise.
          • testing for each of those platforms.
          • This is true regardless, but you’re going to have to deal with more platform-specific support. More platform specific documentation, etc. How do you do think x on platform y? Where is the button on this platform vs that one?
          • maintaining feature parity as you continue to build is going to be much more difficult, and you’re going to have to decide if you want to maintain feature parity and slow the whole process, or give up and launch on some platforms first (hopefully there is no one that uses a Mac and an Android phone or Windows and an iPhone or an iPhone and a Samsung Tablet or that gets annoying real fast.)

          In short, moving from one platform to two natively doesn’t double complexity and cost, it’s far, far worse than that. It’s not that a good web dev costs $70k vs an iOS dev that makes $90k, it’s that a good iOS dev costs $90k, and a good Android dev costs $85k, and a good Windows dev costs $80k and one of those people hopefully is familiar enough with each platform to be the team lead so you can tack on another $20k for them…

          And all the while you’re building that team and building your 3 different platform native apps, a competitor or several will launch on Electron and web tech and take the market because no one except us nerds give a shit about whether something is using the right platform idiom or even knows what they are, and far fewer still have any idea how to check RAM usage and the like.

        • masterspace@lemmy.ca
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          2
          ·
          edit-2
          1 year ago

          No need to have costly MSc’s for backend or full-stack work.

          Lmao where are you seeing backend shops just full of MSc’s writing new sorting algorithm and arguing about the BigO notation of their problem?

          I’ve worked at Fortune 500 and MAANG companies, and the overwhelming vast majority of backend engineers that I’ve seen have BScs at best.

          It doesn’t even make logical sense in the context of your argument given that Electron is purely a frontend technology. It has no bearing on your backend costs or how many backend engineers you need if you’re building your frontend natively or with Electron.

          • Carighan Maconar@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            It doesn’t even make logical sense in the context of your argument given that Electron is purely a frontend technology. It has no bearing on your backend costs or how many backend engineers you need if you’re building your frontend natively or with Electron.

            Yeah, that’s what I said.

            • masterspace@lemmy.ca
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              1 year ago

              You take BSc’s and make them create web pages, and hey, with Chromium they can also be your desktop app devs. No need to have costly MSc’s for backend or full-stack work.

              ?

              In this situation you never needed MSc’s…