Announcement

Collapse
No announcement yet.

Shuttlesworth going to use Electron for Installer?

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Shuttlesworth going to use Electron for Installer?

    https://www.phoronix.com/scan.php?pa...th-Ubiquity-NG

    What he is basically getting at is for a new desktop Ubuntu installer with an Electron-powered HTML5 installer re-using existing Curtin/MAAS components and also leveraging Snaps as their preferred app delivery technology. It will be interesting to see where this leads.
    Sixteen years ago I had been using Visual FoxPro 5&6 to develop client-server apps for a local gov office. Then Microsoft cut VFP off at the knees, stranding over 1/4 million VFP developers on a deserted island, claiming .NET was their only hope. I decided to look for tool vendors other than M$, because if they could do it once they would do it again. Before settling on the Qt API, I developed the front end using HTML, Javascript and CSS. At the time there were limitations to the WYSIWYG web tools so I hand coded the GUI. I wrote the code in Kate, which was part of KDE 2.2. I first adopted KDE in Sept of 1998 on SuSE. I had the HTML code in Kate on half the screen and Netscape on the other half, displaying the HTML code. It was a slow, painful process. Correctly sizing, shaping and placing the controls were so aggravating I ended up coding for a full screen browser display. Making changes would destroy carefully positioned controls and I'd have to reposition them repeatedly as effects cascaded across the pages. Learning where and how to use GET and POST was critical. I got the webpage running but after a couple months the problems of speed, maintenance and security caused me to abandon the whole thing and adopted the Qt API. It was wonderful.

    In looking up Electron a hour or so ago I found that it has several components: node.js, JavaScript, CSS, DOM, nmp, HTML and Chromium's V8 engine. The node.js API has thousands of functions. A "main.js" app looks like a cross between HTML and C++ code, with CSS replacing *.h files, etc... Garbage collection seems automatic and so is pointer deletion. Threads are called "Renderer" objects and can become tabs on a web page, or remain invisible. Renderer objects can communicate with Main but not with each other.

    My suspicions about speed were born out during StartPage searches. Small, simple apps run fast enough but larger developments become bloated and slow, partly because the Chrome engine has to start up and in larger apps there are lots of "require()" statements as library objects are called to create what C++ programmers call pointers. Users are reporting that a single page app can be 50Mb+. (Chromium is IN Electron). DOM is a big culprit here as well.

    In my HTML application I found that sixty controls was the limit for an app, and I needed over 120. Break and HTML program into two HTML programs and communicate through temporary text files is painful and unreliable and slow. Many detractors are saying Electron is "Flash on the desktop". Ouch!

    "Node is single threaded. While Electron runs multiple processes, each one is still single threaded. So, if you run a long running synchronous task in your window, the user isn’t going to be able to interact with your application for the duration of its task. Unless you’re out to spite the end user, this is generally regarded as "bad.""
    IOW, an Electron synchronous task is modal. Developers have to use Electron's ipc and invisible windows to get around that block.

    All in all, Electron reminds me a lot of Oracle's APEX web development tool. A total piece of junk. I hope Shuttlesworth isn't serious about using Electron as the Installer app. If he does, I'd recommend that Kubuntu and Neon developers rip it out of Ubuntu and replace it with Callamares.
    Last edited by GreyGeek; May 08, 2018, 07:16 PM.
    "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
    – John F. Kennedy, February 26, 1962.

    #2
    Hmmm... They lost my business at Chromium/Chrome. Not going to happen in anything I use and never for a product to deliver to a client.

    Wonder who is paying the Vig on this?
    Kubuntu 23.11 64bit under Kernel 6.9.1, Hp Pavilion, 6MB ram. All Bow To The Great Google... cough, hack, gasp.

    Comment


      #3
      Electron is kind of the new, hip thing. VS Code is also an Electron app. Electron is basically just a way to deploy a web app with a node.js backend as a native, cross platform app.

      In looking up Electron a hour or so ago I found that it has several components: node.js, JavaScript, CSS, DOM, nmp, HTML and Chromium's V8 engine. The node.js API has thousands of functions. A "main.js" app looks like a cross between HTML and C++ code, with CSS replacing *.h files, etc... Garbage collection seems automatic and so is pointer deletion. Threads are called "Renderer" objects and can become tabs on a web page, or remain invisible. Renderer objects can communicate with Main but not with each other.
      nodejs simply allows you to use Javascript serverside. Traditional web apps use PHP, Ruby, Java or whatever plus server software like Apache on the server to accept and handle incoming http requests. These apps use Javascript only on the client side. nodejs is basically just a Javascript server so you can use an awkward, rapidly changing language for everything instead of only when you really have to.

      npm is actually a part of nodejs. Its just a package repository and (terrible) dependency manager. Its used pretty much everywhere these days.

      Chrome's V8 engine is simply Google's open source Javascript engine.

      Yes, like most scripting languages, Javascript automatically takes care of garbage collection. I might be wrong here, but I think Javascript only uses pointers when assigning objects to variables. Not sure though, I'd have to play around with that.

      I personally don't really see the point in using Javascript on the server when something like PHP is specifically designed for this purpose, but to each their own. Electron apps are usually pretty good, but they do hog resources a bit. Running multiple Electron apps can cripple a machine.

      Whats the benefit to end users of making an electron app for this? Doesn't seem necessary. Also, he should keep in mind that web dev tools change really, really fast. Keeping up with versions is a nightmare and I bet in a few years there will be some other new thing that fool-hearty developers will be flocking too. Tools I used just a couple years ago that were hugely popular are now abandoned and forgotten.

      Comment


        #4
        Originally posted by GreyGeek View Post
        I'd recommend that Kubuntu and Neon developers rip it out of Ubuntu and replace it with Callamares.
        Looks like that's being considered:
        Working with Kubuntu and KDE Neon, we are going to move to Calamares as the default installer for Lubuntu Next. We believe that this is the right decision going forward for users to provide a robust, flexible, and modular installer. As Lubuntu Next is the first flavor (in at least a decade, from our estimates) that has switched their graphical installer (and is not a Canonical-led project), we expect some bumps in the road going forward. The goal is, alongside Kubuntu, to ship 18.10 with Calamares being the only graphical installer.
        Source: https://lubuntu.me/this-week-in-lubuntu-development-1/
        Kubuntu 20.04

        Comment


          #5
          Yeah, it seems like only a couple of years ago I was coding using a copper chisel on stone tablets. These new reciprocating power chisels just don't seem to yield the same "look and feel" as the proper tools of a code artist. Ludd was right!

          My worry with Chrome/Chromium is the risk of hidden code which reports back to "Big Brother"...
          Ggle
          Kubuntu 23.11 64bit under Kernel 6.9.1, Hp Pavilion, 6MB ram. All Bow To The Great Google... cough, hack, gasp.

          Comment


            #6
            Originally posted by TWPonKubuntu View Post
            My worry with Chrome/Chromium is the risk of hidden code which reports back to "Big Brother"...
            Ggle
            Its only the Javascript engine, not the entire browser. What browser do you use?

            Comment


              #7
              Shuttlesworth going to use Electron for Installer?

              There are at least eight components to the Electron tool kit and not all are created and supplied by Electron.

              I may be wrong but I think there is a difference between the binary nodejs in the repository and the node.js required by Electron. Node.js is 60X larger than nodejs. One would have to install all of the node-* files in the repository to match node.js’ size.

              Even the smallest Electron app would be bigger than the V8 engine of Chromium, I.e. 30+ Mb. Slow would be an understatement. As WTF implied, I suspect that version matching so many components would lead to severe update problems. That’s what led me to reject several tools 16 years ago: Boa-Constructor, Python GUI tools, and Java GUI tools as well. The upgrade of one component of a particular tool required the upgrade to a version of Ant that the developer had not yet released. There were six independently developed components in that SDK. I saw nothing but troubles ahead. Electron reminds me of that, and that’s one reason I chose Qt -all the components necessary were in that one SDK.
              Last edited by GreyGeek; May 09, 2018, 07:58 AM.
              "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
              – John F. Kennedy, February 26, 1962.

              Comment


                #8
                Originally posted by whatthefunk View Post
                Its only the Javascript engine, not the entire browser. What browser do you use?
                Palemoon, the Firefox fork.

                [EDIT] let me add that I do have Chrome/Chromium installed, but NEVER use it with an active 'net connection. It is strictly for testing development websites. Even then, I worry...
                Last edited by TWPonKubuntu; May 09, 2018, 10:52 AM.
                Kubuntu 23.11 64bit under Kernel 6.9.1, Hp Pavilion, 6MB ram. All Bow To The Great Google... cough, hack, gasp.

                Comment


                  #9
                  The main critisim for electron (security issues aside) . Is that is Slow and Eats Memory.. The arguement is durring install neither of those matter.. So that 256MB requirment to boot live / install may become 1GB.. (or more) . Seams like a bad idea just because of the extra memory use.
                  Mark Your Solved Issues [SOLVED]
                  (top of thread: thread tools)

                  Comment


                    #10
                    Originally posted by TWPonKubuntu View Post
                    ....

                    My worry with Chrome/Chromium is the risk of hidden code which reports back to "Big Brother"...
                    Ggle
                    And well it should be!
                    https://arstechnica.com/information-...0-users-again/
                    "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
                    – John F. Kennedy, February 26, 1962.

                    Comment


                      #11
                      Originally posted by TWPonKubuntu View Post
                      My worry with Chrome/Chromium is the risk of hidden code which reports back to "Big Brother".
                      Chromium is fully open source, the source does not (and cannot) contain any hidden code. Chrome on the other hand includes the closed source bits, including usage reporting.

                      Yes, Chromium also includes some integration to google services (google account support, malware protection, predictions etc.), like many other browsers, but these features don't have to be used or can be disabled in the settings (and aren't forced on you).

                      I can understand (and even share) the common distrust of big data companies, but if you can't trust an open source browser, there is very little in your linux installation you can trust. Yes, it would be possible for your linux distributor to put "hidden code" on the binaries they build before delivering them to you...but if they would do it for your browser, they could do it for anything else on your installation as well.

                      EDIT: I'm not really advertising Chromium, it's not my favorite browser either. But I'd trust it a lot more than I'd trust Chrome or any browser that is either closed source or includes closed source blobs.
                      Last edited by kubicle; May 12, 2018, 03:09 AM.

                      Comment


                        #12
                        kubicle;

                        Perhaps my use of the term "hidden code" was too generic. I'm not willing to dig into their (Chrome/Chromium) code, open source or not. The fact that Chromium is based on Chrome, even if it has been "purged" of the code which reports usage, is enough to put Chromium in the "untrusted" category. The fact that it even connects to Google(r) is a major negative factor and a "show stopper".

                        It still irks me that I need to test my website designs using these two browsers. I'd be more satisfied if I could tell my customer "Never, Ever use these browsers, I don't support them..." But that would be bad for business, so I keep versions for test usage and attempt to sandbox them during testing time.

                        I build my barricades tall, wide and as deep as possible... It's a jungle out there.
                        Kubuntu 23.11 64bit under Kernel 6.9.1, Hp Pavilion, 6MB ram. All Bow To The Great Google... cough, hack, gasp.

                        Comment


                          #13
                          Ken Thompson mentioned the jungle out there in his Turing Award acceptance speech, and gave an example of an undetectable hack:
                          https://www.ece.cmu.edu/~ganger/712....1-thompson.pdf
                          That hack was seen in the Delphi 4 through 7, and apps compiled with it. (I stopped using Delphi at 1). This was even after a non-trivial counter to that hack was posted by Bruce Schneier
                          https://www.schneier.com/blog/archiv...ring_trus.html
                          called diverse double-compiling.

                          The theft from the NSA/CIA of all their hacking tools has created an extremely hazardous Internet environment. The gov actors go after government and business sites (high value targets) while the play-for-pay crowd of crooks use ransom ware as an extortion technique, all with the aid of NSA tools.
                          https://www.wired.com/story/eternalb...-hacked-world/
                          "A nation that is afraid to let its people judge the truth and falsehood in an open market is a nation that is afraid of its people.”
                          – John F. Kennedy, February 26, 1962.

                          Comment


                            #14
                            GG; thanks for those links...

                            I'm frequently frustrated when I point out such problems in our world and the response back to me is "That doesn't affect me.".,,

                            Too many people in my life wear blinders.
                            Kubuntu 23.11 64bit under Kernel 6.9.1, Hp Pavilion, 6MB ram. All Bow To The Great Google... cough, hack, gasp.

                            Comment


                              #15
                              Originally posted by TWPonKubuntu View Post
                              Perhaps my use of the term "hidden code" was too generic. I'm not willing to dig into their (Chrome/Chromium) code, open source or not.
                              That's exactly my point. Most people don't read the code they run, they trust that other people do that. But Google is one of the biggest contributors to linux codebase, how can you then trust anything you run on your linux machine if you don't read the code they contribute? (Usually the answer is because it is open source).

                              Originally posted by TWPonKubuntu View Post
                              The fact that Chromium is based on Chrome, even if it has been "purged" of the code which reports usage, is enough to put Chromium in the "untrusted" category.
                              It's the other way around. Chromium is the open source project/browser that Chrome and many other browsers are based on.

                              Originally posted by TWPonKubuntu View Post
                              The fact that it even connects to Google(r) is a major negative factor and a "show stopper".
                              Basically all browsers connect to google in one way or another by default...you can disable usage of google services in the settings in chromium and other browsers if you wish.

                              Comment

                              Working...
                              X