No announcement yet.

Canonical Continues To Talk Up Google's Flutter UI Toolkit

  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    So, the default toolkit for developing apps is limited to Dart? Can you build your apps using C or C++ only without having to mess up your project with Dart glue code all over the place?


    • #32
      Originally posted by kaprikawn View Post
      Yeah, let's all get on board with another GUI framework written in a web technology [/sarcasm]

      I wish these idiots would use proper tools, or to put it another way, actual systems programming languages. Web technologies suck. GC sucks.

      We're just throwing performance down the drain because people won't learn to program properly in something like C, C++, or even Rust (not a fan of Rust myself, but at least it's a proper systems programming language).
      Flutter does NOT use web technologies.


      • #33
        Originally posted by dremon_nl View Post

        Rust is not particularly good for classical GUI programming because of the ownership/borrow checker. Most GUI frameworks are MVC with sea of objects referencing each other, which is far from idiomatic Rust (possible though with Rc/Arc). Garbage collector fits much better here in my opinion. So most of the attempts to create Rust-based GUI framework are variations of DOM-based models (description and logic in one go).
        Problem is, fundamentally, a sea of objects is exactly what UI constraints are. Take text layout: Each letter is an object with multiple attributes and many MANY rules affecting their positioning that you'd often want to modify with "if it's capital I, check for serif and adjust this or that..." type rules. This is very painful to do in Rust. It's possible. Don't get me wrong. But it will be needlessly verbose and hard to debug.

        Go *might* fit this better. We'll see. But again, in the meantime, having stuff like flutter to at least flesh out the description language in the real world is good at least for now.


        • #34
          Originally posted by 60Hz View Post
          Why would any developer care about anything Canonical says or recommends? They've proven themselves time and time again to be completely incompetent.
          We all know it's a troll, but I'll bite.

          They've proven competent time and time again. Ubuntu is still from a long way the most used distro, Unity was better than Gnome (imo) and 10 years ahead of Gnome Shell as some Gnome recent improvements show (some of them in the original Unity), Ubuntu One was better than Google Drive (imo). They are user-centric, pulling the design from the users, hence why it's so popular and growing. They're the only one to oppose Red Hat and have the guts to impose another direction if they feel their suggestions were wrongly dismissed or that they weren't listened to towards users' best interests (as opposed to developers), and it's better for them to pursue their own path. Sure, they did some NIH but it was often justified for these reasons. Like the Gnome ecosystem is full of NIH apps for their own reasons.
          They're the counterweight that the Linux world needs for getting at least 2-3 solid visions so people can freely decide and not be imposed one. Of course, they fail sometimes and take bad decisions, or some projects outgrow their financial means and they have to pull the plug, like it happens for any company.
          I'm using Manjaro but I personally would follow the direction of Canonical (never blindly though, like the lobotomized 144hz here with Gnome) rather than any other as the directions they've taken have often proved to be more pragmatic for users and the decisions for their benefits.
          They're currently growing in the shadows of the corporate world, far from the spotlight of the desktop, a bit hidden, but I'm sure it'll bring them the financial means to succeed in their future projects this time around. The calm before the storm.


          • #35
            Originally posted by cynic View Post

            Java GUI apps are actually awesome (those who are well programmed, of course).
            Just take a look ad IntelliJ for example: It's fast and beautyful.

            Also, the Swing library is (was?) actually pretty decent to use (I admit I never worked with any other toolkit, so I can't make an informed comparison).
            Intellij idea and eclipse seem pretty modern looking. I've also heard javafx is pretty decent. Maybe java 17 lts will revive this ecosystem? I think both c#/clr and java are pretty decent platforms for larger client applications. For some reason these electron web apps seem to be attracting all the developers.


            • #36
              Originally posted by om26er View Post

              Flutter does NOT use web technologies.
              you're wasting your time. the ignorance in this thread is staggering.


              that being said, flutter is mobile-oriented, and so far it seems to have huge performance problems under iOS (stuttering related to shader compilation). many devs got pissed because of that. another thing is, native toolkits are usually better. flutter mimics native look on android and iOS, but it isn't native - it renders everything on its own, meaning that any additional features from the native UI, like custom input methods or whatever else, may be absent. it simply doesn't have feature parity with the native UI.

              on the desktop it's a bit different, since people can - and do - live with apps using different toolkits. still, canonical has to really hate gtk. it's a mistake, people are starting to get disillusioned with flutter in the mobile app space, and once it gets dropped there, it's as good as dead.

              i also disagree with the overall sentiment regarding web technologies (which flutter is not) - they're not that slow and are getting faster (webasm, webgpu). heck, even regular js with webgl can do wonders. it's less about the technology, more about what's done with it. take electron-based editors for example: atom is a memory-leaking resource hog, whereas vscode runs much, much better.

              still, if it's multiplatform desktop apps they're after, perhaps they should look in a different direction: - i would even expect microsoft to throw some money at them in such case.


              • #37
                'Flutter is a truly cross-platform tool' is an overstatement? I don't believe it even runs on all Linux distributions. I've read it has a systemd requirement? I don't think it runs on any BSD or Unix systems, either. I think it's just windows, mac os, some Linux systems and chromeos and for mobile i guess ios and android. And is that just google's android or other people's android?


                • #38
                  Originally posted by Pentarctagon View Post
                  I wonder what the odds are that Google discontinues Flutter development within the next couple years.
                  "It's high. Very high."
                  K2S0 in Star Wars Rogue One
                  K2S0 in Star Wars Rogue One


                  • #39
                    Since Microsoft still has not bought Canonical I guess they are now trying with Google?


                    • #40
                      Originally posted by unic0rn View Post
                      i also disagree with the overall sentiment regarding web technologies (which flutter is not) - they're not that slow and are getting faster (webasm, webgpu). heck, even regular js with webgl can do wonders. it's less about the technology, more about what's done with it. take electron-based editors for example: atom is a memory-leaking resource hog, whereas vscode runs much, much better.
                      The real problem isn't webtech itself. It's the fact that it's not integrated into the OS. Instead, it's implemented as it's entire own operating system, and each app you run boots its own OS. And each copy of the OS that's spawned is dynamically built, so there's next to no shared memory between apps - it's all anon memory. That means that even two copies of the same app running will thrash the CPU caches when they're on the same core because they have nothing in common.

                      It's grossly inefficient - not because the tech itself is inefficient, but because the implementations are. And there's endless implementations. When you run Electron apps, each packages its own version of its OS, so even the small amount that could have been shared between instances is a complete one-off. It's worse than Docker, Snap, Flatpak, and AppImage. It's very much like firing up a copy of Windows 32-bit in VirtualBox for every app you run. Except even that would have more shared memory!!!

                      And before you cry that it's not an OS, let me remind you that Netscape 2.0 was considered its own competing OS by all the major OS vendors. As is Java (for contrast, not for similarity). They manage their own processes. They implement their own runtimes and filesystems. Chromium, from which Electron is built, even implements its own device drivers.

                      And that's why the amount of RAM and number of cores we need for a functioning desktop has ballooned faster than Moore's Law in the past few years. It's not because these apps are easier to code or providing superior functionality. It's not because they are grossly inefficient in and of themselves. It's because the implementations are grossly inefficient, and no 2 apps want the same release of the same implementation, because they're constantly evolving standards.

                      It's great because each person gets to build apps in an environment they are comfortable with, and package up that entire environment with the app. Like Docker. Which is orders of magnitude more efficient. Maybe some day there will be a Docker for Web Apps. Maybe some day there will be a stable binary representation for Javascript which can be AOT-compiled, COW demand-paged like ELF binaries, and shared between Web Apps, so the 200MB required to show Hello World can at least be shared.

                      This criticism doesn't come from a place of hate. It comes from a place of love and despair. I've been developing Web Apps for 17 years and been watching with marvel and dread at the directions things are going lol.

                      As much as I dislike Apple's proprietary, vertical, Black Box mentality, I gotta say that their demands that no iOS app bring its own Web Engine to the platform, is worth applauding. It's a step in the right direction... but a step that will never ever happen on the desktop sadly.
                      Last edited by linuxgeex; 19 March 2021, 06:37 PM.