1. 7

  2. 4

    Sweet baby Jesus. We keep adding more and more layers of cruft, with sloppy stringly-typed interfaces between them, just more and more layers and wrappers, it’s a bloody miracle software isn’t worse than it is, and I certainly can’t see this path leading to making it better.

    1. 8

      Electron is never a “solution” for “cross-platform” “GUIs”.

      1. 6

        I can run the same code on different platform to create Graphical User Interfaces.

        So, yeah, technically it’s a solution for cross-platform GUIs.

        1. 2

          Maybe you should offer an alternative that they could use, until then they’re going to keep using electron.

          1. 5

            There is an unexplored path: a good domain model written in a cross-platform language that platform-specific UIs interface with.

            Difficulties here:

            • foresight and discipline to partition application logic between UI and domain model
            • ability to move seamlessly between two languages and understand how to communicate between them
            • lack of documentation / exuberant blog posts about this
            • no warm feelings from phrases like, “the open web” (sorry, couldn’t help myself)
            1. 4

              These are good jokes but I was hoping to guide this to a productive discussion. There’s a saying that I’ll paraphrase but I think it applies very well to most discussions around electron.

              If you don’t understand why someone would want to use it, don’t fix/replace it.

              This is because without understanding what it actually provides you can’t replicate those benefits in whatever solution you propose, and nobody will move to it. They use it for several good reasons, and until people who complain about electron understand those reasons they will never be in a good position to provide a suitable alternative. There are people who don’t write much javascript at all who are interested in using electron, if you can step away from implementation details and look at the broad objectives you might better understand why.

              1. 4

                There’s this insistence that anything that isn’t “web” is somehow super hard/byzantine or whatever because…it isn’t web? So Electron addresses this existential fear from both business and dev types nicely.

                What it provides:

                • perception that JS skills can easily be transferred to desktop/mobile apps
                • ability to ignore platform-specific differences, especially around OS resources
                • speed of prototyping/developing UI
                • a built-in workflow for building & deploying apps
                • a community of developers and support
                • the cozy warm feeling of using the same tools as GitHub/MS

                That said, if excellence in UX is a priority, I find it hard to beat platform-specific UIs backed by shared domain logic libs.

                1. 3

                  I mean, I think any UI platform is at least byzantine, if not super hard, including the web. Getting good at one UI platform takes time, getting skills for multiple UI platforms takes even more time, or more developers.

                  1. 2

                    It’s also that the web platform has some real major benefits over all the platform-specific UI toolkits. For me a major one is zoomability and responsive CSS-based layout, which helps me a lot. I can’t zoom in and out in almost any GTK+ app.

                2. 3

                  It’s not completely unexplored. It’s just that, until recently, that cross platform language that could reasonably interact with the most platform-specific UIs was usually C++, which a lot of people avoid by reflex.

                  In the past, I think there’s been a lot of effort to position C# in the space, with some success (what with Xamarin and co).

                  And that path is still more effort than writing something in Electron or a website, until you start pushing the edges of what browsers can do.

            2. 3

              If a .Net developer needs to do a cross-platform “modern” GUIs, it shouldn’t be much hassle just using Typescript with Electron. There’s no need for something like this at all, only if you heavily depend on existing .Net libraries that aren’t available in Node, either in JS or with a C++ bridge.

              Also there’s GTK# which is probably a better option if you need C#.

              1. 1

                CGI? Am I one of the few people who thought of something completely different?

                1. 1

                  Computer Generated Imagery or Common Gateway Interface? It’s the latter that inspired the name