Announcement

Collapse
No announcement yet.

System76's Pop!_OS COSMIC Desktop To Make Use Of Iced Rust Toolkit Rather Than GTK

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #91
    Originally posted by Alliancemd View Post

    `iced` is not a Linux "toolkit". They write their apps in whatever they want, why do you care?
    Why shouldn't we care? A system that looks chaotic because every app users another UI toolkit looks simply unprofessional. So especially a Distro that wants former Windows users as their users, that shouldn't be the goal

    Comment


    • #92
      Originally posted by DMJC View Post

      Are you high? Unity winning the hearts and minds of users? LOL!!! Hell no. Not even close. Gnome 2.0 was the only GTK based desktop that a clear majority liked/used. As soon as Gnome 3.0 and Canonical moved away from the classical Gnome 2.0/Start Menu paradigm, the users abandoned it and forked gnome to make Mate / Cinnamon (a ton moved to XFCE4 until Mate / Cinnamon got up) etc. The biggest leap backwards Linux ever made as a desktop platform was in adopting a tablet PC interface. It crippled the desktops for years as no one knew what to make or how to make it. How to make it effective/integrated (not to mention support multi-monitor like anyone who cared about productivity was using it). And the worst thing of all: How to make it without screwing up the workflow of users who had happily adopted/worked with Gnome 2.0 for years.
      There is always an outcry when any big GUI shakeup happens, which is entirely predictable. The predictability of it isn't evidence that the users are wrong to be mad, nor is the outcry at the latest shakeup evidence that people were wrong to be mad last time.

      Ubuntu started out using Gnome 2, and so over time the userbase 1) was selected for people who liked Gnome 2, and 2) built workflows around Gnome 2. When the Unity change came down, those users either had to leave or re-learn workflows.

      When the Gnome 3 change came down, the new users from the Unity years were selected for people who liked Unity, and all the Gnome 2 initiates who stuck around had adapted to Unity. These people either had to leave or re-learn workflows.

      When the Gnome 40 change came down, ditto!

      Whenever you change the UI, you are forcing people to leave or re-learn workflows, or if you are KDE, the burden is on the developers instead of the users. No matter what, change is very expensive and that cost must be balanced by a large expectation of better UI efficiency.

      Comment


      • #93
        Originally posted by ClosedSource View Post

        First of all, I am a maintainer for multiple stacks at a local university distribution.
        Secondly, they don't rebuild single packages when gtk3 gets bug fixes because the applications which just use the updated shared library. Your framework may be tiny but the app code won't. Imagine rewriting evolution-data-server or gstreamer or ffmpeg as rust crates and expecting everything to embed them. You don't make much sense here. Rust is not the correct tool for this.
        None of this makes sense. ffmpeg is indeed huge, but there are two things wrong with how you're thinking about it. a) most programs that use ffmpeg call a very small portion of it and b) there's literally nothing stopping a hypothetical Rust ffmpeg from having a stable Rust dynamic ABI (as well as a C ABI). For what it's worth, ffmpeg is already split up into several libraries, and a lot of programs only use ffmpeg to unpack a single container type out of libavformat.

        Second, "we don't rebuild single packages for GTK3 fix releases" is a descriptive statement. There is nothing normative here. You know what packages use something that has updated, and if you truly believe that these updated dependencies don't cause regressions, it's your prerogative as a maintainer to rebuild the batch: but also the maintainers of the dependent packages can publish the desired dependency spec with their crate, and that should indicate that they've validated their package with that dependency version.
        Last edited by microcode; 03 October 2022, 08:31 AM.

        Comment


        • #94
          Originally posted by ClosedSource View Post

          First of all, I am a maintainer for multiple stacks at a local university distribution.
          Secondly, they don't rebuild single packages when gtk3 gets bug fixes because the applications which just use the updated shared library. Your framework may be tiny but the app code won't. Imagine rewriting evolution-data-server or gstreamer or ffmpeg as rust crates and expecting everything to embed them. You don't make much sense here. Rust is not the correct tool for this.
          I have a lot of experience with developing and packaging software. You completely missed the point of my response. You skipped the first, third, fourth, and fifth paragraph. You can create dynamic libraries in Rust, and I have done so with adding additional panels to GNOME Control Center written in Rust. It just isn't always the best choice. And those who maintain repositories still have to validate that a dependency update has not caused a regression in affected packages depending on it. You're really conflating small bumps in a Rust development library with big releases of a huge C toolkit containing hundreds of bug fixes. Development libraries which are the responsibility of the developer to manage, not someone packaging it.
          Last edited by mmstick; 03 October 2022, 08:41 AM.

          Comment


          • #95
            Originally posted by Artim View Post

            Besides the fact that it throws completely uninformative errors that make it impossible to help novice users (other than use apt and tell us what it says), like I said it falling apart left and right with graphics glitches hiding important details or making the drop-down for selecting deb or Flatpak unusable, or just plain refusing to install/update (only showing an animation but not actually doing anything). Also it doesn't seem to handle multi user environments that well, I have yet to find a way to completely disable update notifications system wide.

            But to see the problems you literally just have to look through the Pop OS Reddit. Pretty much not a single day goes by without someone needing help with the Pop Shop because it's either throwing unhelpful errors or just not doing what it's supposed to. Sure, I'm not using that thing anymore, apt is way more reliable. But you shouldn't need to tell novice users to do so. A well working software shop should be one of the highest priorities for a Distro catering to absolute beginners, first impression is key. If you can't even deliver that, you shouldn't be taking about reinventing the wheel, just because.

            Besides the fact that support for Pop could be improved a lot. If you got problems that are less common, just nobody gives a rats ass. Not on Reddit and not on their own git. And yes, I am talking from experience.
            You claim that no one cares and yet here I am fixing issues in Pop Shop and submitting a patch upstream.​ If you have issues then you should report them upstream. The error dialog details the error(s) given by apt. it doesn't get informative then that. Most of the community support requests are from people having issues with PPAs. The most recent support request in the Pop subreddit is about PPAs that aren't supported on Ubuntu 22.04. And as always, I recommend enabling automatic system updates from the OS Upgrade panel in Settings. Set your desired schedule for updates and it will automatically update Flatpaks, Debian packages, etc. Along with automatically repairing any potential packaging issues and removing unused Flatpak runtimes.

            Comment


            • #96
              Originally posted by mmstick View Post

              You claim that no one cares and yet here I am fixing issues in Pop Shop and submitting a patch upstream.​ If you have issues then you should report them upstream. The error dialog details the error(s) given by apt. it doesn't get informative then that. Most of the community support requests are from people having issues with PPAs. The most recent support request in the Pop subreddit is about PPAs that aren't supported on Ubuntu 22.04. And as always, I recommend enabling automatic system updates from the OS Upgrade panel in Settings. Set your desired schedule for updates and it will automatically update Flatpaks, Debian packages, etc. Along with automatically repairing any potential packaging issues and removing unused Flatpak runtimes.
              So I'm only imagining all those screenshots like this one with questionably helpful error messages where the solution you yourself posted is the typical Microsoft way of pretty much reinstalling your whole system instead of even trying to fix things in a much less intrusive way.

              Comment


              • #97
                Originally posted by Artim View Post

                So I'm only imagining all those screenshots like this one with questionably helpful error messages where the solution you yourself posted is the typical Microsoft way of pretty much reinstalling your whole system instead of even trying to fix things in a much less intrusive way.
                That is entirely unrelated to the Pop Shop. That screenshot is from the OS Upgrade panel in GNOME Settings. This is a system on a release that Ubuntu has marked End of Life and its repositories taken offline. It is no longer supported. There is an upgrade window that everyone on the non-LTS release has to use before the time is up. If you miss the deadline then the easiest way to upgrade is installing a new image. This has nothing to do with Microsoft and is a common practice on Linux to reinstall the system if you break it or are on a very old unsupported point release. Furthermore, you're just proving that I listen to people's support requests and provide support in the subreddit. So much for that "not caring" spiel. I'm not going to continue arguing with someone that clearly has an agenda and is grasping at straws.
                Last edited by mmstick; 03 October 2022, 10:57 AM.

                Comment


                • #98
                  Originally posted by mmstick View Post

                  That is entirely unrelated to the Pop Shop. That screenshot is from the OS Upgrade panel in GNOME Settings. This is a system on a release that Ubuntu has marked End of Life and its repositories taken offline. It is no longer supported. There is an upgrade window that everyone on the non-LTS release has to use before the time is up. If you miss the deadline then the easiest way to upgrade is installing a new image. This has nothing to do with Microsoft and is a common practice on Linux to reinstall the system if you break it or are on a very old unsupported point release. Furthermore, you're just proving that I listen to people's support requests and provide support in the subreddit. So much for that "not caring" spiel. I'm not going to continue arguing with someone that clearly has an agenda and is grasping at straws.
                  That you are grasping for straws is obvious as you do conveniently don't want to get points. The Pop shop was just the most obvious problems, I've listed enough points about what's wrong with it. And no, the first thing to try should always be to manually set the current version in the source files. Only after apt making it clear that that won't be a good idea, then you do a fresh install. That's what's called user friendly. And that you conveniently ignore me talking about less common issues that simply get ignored, was also obvious from the get-go. But obviously I refuse to let that go that easily. I reported months ago about packages being held back and even refusing to update, at quite a few others had. The only answer you have on Reddit was basically "I don't have that problem so I don't give a damn". I also created an issue on the Pop GitHub, as upstream regularly refuses to give any support to anything not under their direct control (in this case, any Ubuntu based distro not being officially supported by Canonical). As you can see, there was not even a try to find the cause of the issue, let alone to fix it. But of course I'm only having an agenda and imagining things. But go ahead, make yourself a complete fool, that's not my problem. Not that your argument of only being able to prove a software shop that works more than just half the time when rewriting everything in Rust isn't doing that already pretty well.

                  Comment


                  • #99
                    Originally posted by mmstick View Post
                    You can create dynamic libraries in Rust
                    How does that work exactly? You generate C style header files and an implementation shared library, then rust has some mechanism to bind to C code?

                    FYI, I'm a developer too. I write desktop applications using Qt, Android applications, Linux system services using C, and web backend services using nodejs and dotnet.

                    Comment


                    • Originally posted by ClosedSource View Post
                      How does that work exactly? You generate C style header files and an implementation shared library, then rust has some mechanism to bind to C code?

                      FYI, I'm a developer too. I write desktop applications using Qt, Android applications, Linux system services using C, and web backend services using nodejs and dotnet.
                      I explained in my first response that we have:

                      - CGlue, a high level framework for Rust-to-C that can carry data as trait objects: https://docs.rs/cglue/latest/cglue/
                      - Rust-to-Rust compatibility with abi_stable: https://docs.rs/abi_stable/latest/abi_stable/
                      - Rust-to-C++ and C++-to-Rust with Google's CXX project: https://cxx.rs/​
                      - Rust-to-C binding generator cbindgen: https://github.com/eqrion/cbindgen

                      Additionally, see the FFI section of the Rustonomicon: https://doc.rust-lang.org/nomicon/ff...st-code-from-c

                      The Nala team is creating libapt bindings for Rust using CXX with great success. I have used cbindgen for small libraries with basic requirements. CGlue is a must if you want to pass and use more complex Rust types based on traits safely across FFI boundaries. CGlue is possible to use safely with Rust libraries built from a different version of the compiler thanks to abi_stable. abi_stable essentially defines some standard abstractions for distilling Rust into a C API that the consumer can reconstruct back to Rust.

                      Comment

                      Working...
                      X