No announcement yet.

Canonical Continues To Talk Up Google's Flutter UI Toolkit

  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Originally posted by dremon_nl View Post

    Qt has the following deficiencies from my point of view (I've worked with it for many years). Doesn't pretend for objectivity.

    * C++ sucks, and I mean it. Because Qt has an asynchronous event model combined with custom object system and ownership prepare for tons of memory-related issues for anything bigger than hello world.
    * There are bindings for some other languages in different maturity states but in general it's pretty hard to bind anything to C++ FFI.
    * The need for the moc compiler, so the sources are plagued with non-standard language extensions and macros. I think there is a 3rd-party library to partially overcome this.
    * The framework itself is huge. It's not practical to build any custom version of it for a particular purpose.
    * Packaging and deploying is a PITA. Tons of dependencies, plugins, helper files that must be assembled properly. And the resulting bundle is quite big.
    * The WebEngine is based on Chromium, so pulls another 50MB if your application uses web views. It doesn't support MinGW compiler which forces a complicated set of separate build scripts for Windows/Visual Studio and *nix systems with clang/gcc.
    * LGPL or very expensive license, which limits it in some contexts. This is highly subjective though.
    * Qt Company is not very fast in fixing reported issues.
    Compared to flutter though?? What are you even talking about.. LOL

    Ofcourse right from point 1. You prove yourself to have no idea what you are talking about.
    Last edited by carewolf; 20 March 2021, 04:48 AM.


    • #62
      Originally posted by Pyth0n View Post
      I am strongly against using web-derived technologies for desktop (and mobile for that matter) applications. Yes, it is easier and quicker. But soon we will need 256GB RAM and 128 cores to lift 682 instances of Chromium running concurrently. Each time I see the next Electron application I want to scream.

      I didn't manage to build an example Flutter desktop application due to missing Chrome (my distro has only Chromium), so I assume it might be something "electronish".
      EDIT: I did manage to compile an empty desktop app on my OS (Void Linux) with Chromium as Chrome.

      FFS, 54MB application to count button clicks, flickering furiously when resizing window and taking 44% CPU and 131MB resident memory sitting idle? That's the future Canonical is seeing for Linux?
      You don't need chrome to build Flutter desktop app. It compiles to machine code.


      • #63
        Originally posted by computerquip View Post

        When Gnome 3 started, Unity was better... because Unity came before Gnome 3. Unity was still some hot fiery garbage. Blatant bugs that lasted for months to years, the CLA requirements, slow clunky UI, lack of basic flexibility (plugins, modularity in the code, lack of quality integration with applications, etc.), and the list just never seemed to stop. People didn't drop Unity for Gnome because Gnome was great. They dropped Unity because it was shit software from both a user and developer perspective, to the point users would go out of their way to find alternative ISOs for Ubuntu that didn't install Unity by default.

        NIH isn't the problem. The problem is that when they push software, they push their ridiculous licensing requirements onto anyone who adopts them. If they end up getting the masses to acclimate to said software, they end up with an imbalance of power where they can sweep the rug out from the Linux community on a whim. Anything that they created that had a technical advantage was immediately squandered by the fact that anyone contributing to said software would have to give up rights of their contribution to Canonical. I can't stress enough how dangerous that is for open-source software. If Sun had this requirement with Solaris or ZFS, both of those would be absolutely gone. We wouldn't have OpenZFS or Illumos right now. So even *if* they made some software that wasn't complete garbage, their marketing and licensing completely obliterates the want for anyone who matters to give a shit. There are some exceptions to that CLA such as Bazaar and Launchpad but those are outliers.

        You really might as well treat anything with that ridiculous CLA as proprietary software because it can change its stance at any point in time, regardless of how many contributions you've made as an individual or a community.
        I'm a pragmatic, a fully free license is a nice to have, not a must have. So I don't care so much. Plus, it was sufficient for UBPorts to take over, so it was still free enough.
        Sure, Unity was kind of a hack between GTK and a compiz plugin (Unity 8 was a clean rewrite on the way though), and it outgrew the financial interests of Canonical because it became so good it gained a lot of traction. Too much traction, as the need for maintenance grew and they couldn't follow not being as big as Red Hat. Should they have started it now (having grown in revenues since then), they would have been able to maintain it. It was too big too early in their history. And the same goes for the Ubuntu Phone. Hiding in the shadows and growing for a while will give them those means. And Flutter might help with that, as skeptic as people are (me included).

        Unity had flexibility and options (contrary to the monolithic Gnome), which could accommodate many different workflows, and it created a UI experience that many DE are now offering to some extent (from Gnome to KDE to Budgie).
        People didn't drop Unity for Gnome. Unity had a rough beginning (the paradigm change), but shorter than Gnome Shell (same reason), and people dropped the original Unity (and the original Gnome) for Mate and Cinnamon early. But around 13.04 up to the end (17.04), it was stable and loved and people that had previously switched even started to come back (something that also happened to some extent with Gnome later on). That's also about when it started to appear in movies and shows from time to time for some wow effect. Arguably the ever high popularity of Linux was around that time (2014-2017).
        People only really dropped Unity (not just here and there) when it was discontinued and had to pick another DE, or kept going with whatever Ubuntu had.
        Now, there is about a dozen projects to revive it between complete projects (UBPorts/Lomiri is coming to the desktop, and a couple of Unity remixes exist), specific layouts (Budgie, KDE, Mate) or extensions (Unite, Pixel Saver, and others ...) because it is dearly missed and left its mark. Gnome has a hard time living up to it for those who came to it after as it lacks the flexibility (not of code, but of use) to tackle the same diversity of workflows.
        And there is clearly a lack of a driving vision ever since Canonical stopped their big endeavors. It's kind of been boring and stagnating on the Linux front for the last 4 years.
        Last edited by Mez'; 20 March 2021, 06:41 AM.


        • #64
          Originally posted by carewolf View Post
          You prove yourself to have no idea what you are talking about.
          Dude, after decades of programming experience with a majority of mainstream languages, platforms and frameworks (including many years of C++) I have absolutely very clear idea what I am talking about.


          • #65
            Originally posted by dremon_nl View Post

            Dude, after decades of programming experience with a majority of mainstream languages, platforms and frameworks (including many years of C++) I have absolutely very clear idea what I am talking about.
            Which is why you chose to complain about stuff based on Chromium in a discussion about Flutter? Do you imagine it has webview based on non-Chromium technology?


            • #66
              Originally posted by curfew View Post

              What the hell does a renderer have to do with toolkit performance? Kiddies talking out of their asses yet again.
              Christian Hergert has been hard at work, creating a new GL renderer for GTK. The initial motivation for this work was the desire to improve our rendering performance on MacOS, where the GL drivers are not quite as forgiving as on Linux. Apart from that, starting over with a new renderer gives us a chance to apply all the things we’ve learned while working on our current GL renderer, and to reorganize the code with an eye towards future improvements, such as reordering and batching of draw commands.

              GNOME's GTK Vulkan Renderer Faster Than OpenGL, Now Working On Windows
              ...a full redraw with OpenGL rendering takes from 55 to 62 ms. But with using the Vulkan rendering it's only 18 to 20 ms...
              Last edited by kvuj; 20 March 2021, 10:37 AM.


              • #67
                Originally posted by billyswong View Post
                We had MSHTML in Windows in the past. Why Electron Apps don't utilize Chromium engine via dynamic linking are their own issue, not the fault of web technology itself.
                That's part of what I'm saying. But actually the engine is a relatively small part of the overhead. The real overhead is the result of using the dynamic recompiler to run the script sources, which is constantly rewriting the executable representation of all the application code, which makes it impossible to share the memory between invocations even when the sources are identical. That's why I was talking about AOT and shared COW demand-paged executable representation like ELF. There's no reason web tech can't do this. It's the way it is because that's the fastest way to load from WWW but an installed app doesn't have to work this way. Nor a cached WWW app either.

                Flutter has those same problems because it depends on that same JITTed environment which creates constantly changing anon pages for all binaries.

                But to answer you more directly, the reason they don't link to a stack of shared chromium libs is because those libs are being updated every 2 weeks, and developers are afraid that the changes will break their code, so they ship the entire platform with their app. And even the developers who are not afraid and use only baseline features are stuck with that model if they use Electron, because Electron caters to that fear. Also because there's fearful people who to believe that they can protect their rights in their software by packing up their Electron app in a binary package. They are under the false impression that makes it challenging to access their source code, lol. It doesn't.

                This all goes very sadly against the whole objective of web tech - that it be an accessible platform with open sources. It's inaccessible because a large proportion of app developers are going out of their way to obfuscate their sources. And it's inaccessible to those authors because it's so bloated that it becomes undesirable and is radically less likely to achieve any market penetration.

                I've chosen to be a Linux user for 27 years because I believe in FOSS. It's important to me to have the option of fixing the software I run, and to be able to contribute back and improve it for everyone. I get that people want to make a living doing that... I'm one of them. Things don't need to be obfuscated. They need to be copyrighted and licensed. If someone abuses your license leading to damages, then you can sue them... it's just more market share for you. If it doesn't lead to damages, then consider altering your license so there's broader fair use. The world would be a crappy place if everyone had to license the wheel or reinvent the wheel every day.
                Last edited by linuxgeex; 20 March 2021, 09:07 PM.


                • #68
                  What an amazing thread. The combination of arrogance and ignorance on display here are simply staggering. Who needs "web technologies" when you can easily build complex GUIs using good ol C++, even assembly for the real pros...



                  • #69
                    Originally posted by waitman View Post

                    maybe? 'platforms that matter' is subjective I suppose. Tk is way more 'truly' cross-platform, relatively . AFAIK Flutter isn't 'truly' cross-platform.
                    I think we need to bring in some sort of "realistic" in this forum.


                    • #70
                      Originally posted by cynical View Post

                      Actually web gui programming is way ahead of almost everything in the desktop world, which mostly sticks to the same OO paradigm its always had. Android is finally trying to do declarative UI with jetpack compose, but most are stuck in the past. There’s a reason people stopped doing desktop applications and migrated to the web. It’s because for the most part the web platform is superior.
                      lol, web technology is the one stuck way in the past. Desktop toolkits never made the mistake that web technologies did of separating the elements from how they're displayed, and declarative toolkit files well predated the insanity of web apps. Both GTK and Qt had XML descriptions of widgets that could be dynamically loaded back when XML was the big thing, and Microsoft created XAML and WPF taking the XML declarative concept further, and then Qt went "You know what fuck XML let's use JSON" and then built a better XAML as QML. At the end of the day however none of this really have had anything to do with the Web and Desktop toolkits have been superior to the web the entire time. Why? Widgets and Layouts.

                      In a desktop toolkit the elements actually mean something and can be used in composable, reusable ways and they're laid out programmatically rather than having to deal with things like text overflowing outside a box because it can't constrain it.

                      The reason we're seeing everything going to web tech is because we now have a bunch of kids who only know web technologies as a hammer and think everything looks like nails.