I’m curious how software can be created and evolve over time. I’m afraid that at some point, we’ll realize there are issues with the software we’re using that can only be remedied by massive changes or a complete rewrite.

Are there any instances of this happening? Where something is designed with a flaw that doesn’t get realized until much later, necessitating scrapping the whole thing and starting from scratch?

    • Possibly linux@lemmy.zip
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      My only two concerns are one, Rust is controlled by a single entity, and two, it is young enough we don’t know about all of its flaws.

      • d3Xt3r@lemmy.nzM
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Third concern: dependencies.

        I installed a fairly small rust program recently (post-XZ drama), and was a bit concerned when it pulled in literally hundreds of crates as dependencies. And I wasn’t planning on evaluating all of them to see if they were secure/trustworthy - who knows if one of them had a backdoor like XZ? Rust can claim to be as secure as Fort Xnox, but it means nothing if you have hundreds of randoms constantly going in and out of the building, and we don’t know who’s doing the auditing and holding them accountable.

      • PseudoSpock@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        Needs to be replaced already. They’re having to change to explicit sync, which they should have done from the start. So throw it out, start over, make X12.

    • Spectranox@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Seriously, I’m not a heavy software developer that partakes in projects of that scale nor complexity but just seeing it from the outside makes me hurt. All these protocols left-right and center, surely just an actual program would be cleaner? Like they just rewrite X from scratch implementing and supporting all modern technology and using a monolithic model.

      Then small projects could still survive since making a compositor would almost be trivial, no need to rewrite Wayland from scratch cause we got “Waykit” (fictional name I just thought of for this X rewrite), just import that into your project and use the API.

      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Wayland and X are very very different. The X protocol is a protocol that was designed for computer terminals that connected into a mainframe. It was never designed for advanced graphics and the result is that we have just built up a entire system that balances on a shoe box.

        Wayland is a protocol that allows your desktop to talk to the display without a heavy server. The result is better battery life, simplified inputs, lower latency, better performance and so on

      • dsemy@lemm.ee
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        I agree in the sense that Wayland adoption would have definitely gone quicker if that was the case, however in the long run this approach does make sense (otherwise you will eventually just run into the same sorts of issues X11 had).

        Btw what you’re describing is not that far off from the normal way of using Wayland protocols in development - you use wayland-scanner to generate C source files from the protocols, and you include those to actually “use” the protocols in your programs. Admittedly all my Wayland development experience has been “client-side”, so I really don’t know how complex it is to build a compositor, but dwl (minimalist Wayland compositor) is only around 3k lines of code (only slightly more than dwm (minimalist X wm)).

          • Spectranox@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            0
            ·
            3 months ago

            What was stopping X just undergoing some gutting? I get it’s old and covered in dust and cobwebs but look, those can be cleaned off.

            “Scoop out the tumors, and put some science stuff in ya”, the company that produced that quote went on to develop the most advanced AGI in the world and macro-scale portable on-demand indestructible teleportation.

            • TheGrandNagus@lemmy.world
              link
              fedilink
              English
              arrow-up
              0
              ·
              3 months ago

              Imagine calling developers who have a cold relationship with Nvidia due to Nvidia doing the bare minimum for Linux development “bigots” lol

              I think you must be a fanboy.

              • PseudoSpock@lemmy.dbzer0.com
                link
                fedilink
                arrow-up
                0
                ·
                edit-2
                3 months ago

                I’m no fanboy of any video card. I just have ton of laptops with NVidia in them, and the bigots making Wayland never gave a darn about our plight… and then they started pushing distros to switch before they did anything to fix it. Their callous attitude toward the largest desktop linux userbase is insulting and pushing the distros before they fix the problem should be criminal. Every one of them should be put away for trying to ruin Linux by abandoning it’s largest desktop user base. We dislike them, dislike them so much.

                Now, will it keep us from using that crap when it finally works? No. We don’t have much choice. They’ve seen to that. x11 will go the way of the dodo. But can we dislike them forever for dragging us through the mud until they were finally forced to fix the darn thing? Yeah. Wish them nothing but the worst.

            • deadbeef79000@lemmy.nz
              link
              fedilink
              arrow-up
              0
              ·
              3 months ago

              That’s kind of what I was trying to imply.

              We needed a new X with some of the archaic crap removed. I.e. no one needs X primitives anymore, everything is its own raster now (or whatever it’s called).

              Evolving X would have given us incremental improvements over time… Eventually resulting in something like Wayland.

      • SMillerNL@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        That would work if the only problem they wanted to solve was an outdated tech stack for X. But there are other problems that wayland addresses too, like: how to scale multiple monitors nicely, is it a good idea to give all other apps the keystrokes that you do in the one in focus (and probably a lot more)

    • Max-P@lemmy.max-p.me
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      Wayland is incomplete and unfinished, not broken and obsolete and hopelessly bad design. PulseAudio was bad design. Wayland is very well designed, just, most things haven’t been ported for it yet and some design by committee hell, but even that one is kind of a necessary tradeoff so that Wayland actually lasts a long time.

      What people see: lol Firefox can’t even restore its windows to the right monitors

      What the Wayland devs see: so how can we make it so Firefox will also restore its windows correctly on a possible future VR headset environment where the windows maintain their XYZ and rotation placement correctly so the YouTube window you left above the stove goes back above the stove.

      The Wayland migration is painful because they took the occasion to redo everything from scratch without the baggage of what traditional X11 apps could do, so there is less likely a need for a Wayland successor when new display tech arrives and also not a single display server that’s so big its quirks are now features developers relied on for 20 years and essentially part of the standard.

      There’s nothing so far that can’t be done in Wayland for technical implementation reasons. It’s all because some of the protocols aren’t ready yet, or not implemented yet.

      • PseudoSpock@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        There’s nothing so far that can’t be done in Wayland for technical implementation reasons.

        Then make it fully X11 backwards compatible. Make Wayland X12. C’mon, they already admitted NVidia was right and are switching the sync and working to finally support the card they’ve been busting a hate boner over the driver simply because they’re bigots against the licensing. Time to admit breaking the world was a mistake, too.

        • Max-P@lemmy.max-p.me
          link
          fedilink
          arrow-up
          0
          ·
          3 months ago

          It’s slowly happening. KDE can now do global Xwayland shortcuts, they also implemented XWaylandVideoBridge and compositor restart crash recovery for apps. We’re getting proper HDR, we have proper per-monitor refresh rates and VRR, I can even hotplug GPUs. Some of that stuff works better in XWayland because we can just run multiple instances with different settings. For the particularly stubborn cases, there’s rootful XWayland. X12 would have to break things too, and I doubt an Xorg rewrite would be all that much further than Wayland is. Canonical had a go at it too with Mir which was much less ambitious.

          NVIDIA was right on that one indeed, but Wayland also predates Vulkan and was designed for GLES, pretty much at the tail end of big drivers and the beginning of explicit and low level APIs like Vulkan. They could very well have been right with EGLStream too, but graphics on Linux back then was, erm, bad. But in the end they’re all still better than the kludge that is 3D in Xorg.

          It’s getting a lot of momentum and a lot of things are getting fixed lately. It went from unusable to “I can’t believe it’s not Xorg!” just this year for me. It’s very nice when it works well. We’ll get there.

        • atzanteol@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          I can’t up-vote this enough. The “architectural purists” have made the migration a nightmare. Always blaming everyone else for simply not seeing their genius. I’m honestly surprised it’s gotten as far as it has.

      • I_Miss_Daniel@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Can’t even update Firefox in place. Have to download a new copy, run it from the downloads folder, make a desktop shortcut myself, which doesn’t have the Firefox icon.

        Can’t remember if that was mint or Ubuntu I was fiddling with, but it’s not exactly user friendly.

        • Max-P@lemmy.max-p.me
          link
          fedilink
          arrow-up
          0
          ·
          3 months ago

          This has nothing to do with Wayland, it’s just AppImages kinda sucking. Use Flatpak or the one in your distro’s repos, not the AppImage. AppImages are the equivalent of portable apps on Windows, like the single exe ones you’d put on a flash drive to carry around.

          Also the AppImage developer is very against Wayland and refuses to support it, which is why Wayland support is a shitshow on AppImages.

          If you pick the Flatpak it’ll get updated in the background, have a proper launcher and everything.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        3 months ago

        X11 is 40 years old. I’d say it’s been rather successful in the “won’t need to be replaced for some time” category. Some credit where due.

        There’s nothing so far that can’t be done in Wayland for technical implementation reasons. It’s all because some of the protocols aren’t ready yet, or not implemented yet.

        I mean … It doesn’t matter why it can’t be done. Just that it can’t be done.

        • Max-P@lemmy.max-p.me
          link
          fedilink
          arrow-up
          0
          ·
          3 months ago

          40 years old is also what makes it so hard to replace or even reimplement. The bugs are all decade old features, everything is written specifically for Xorg, all of which needs to be emulated correctly. It sure did serve us well, it’s impressive how long we’ve managed to make it work with technology well beyond the imagination of the engineers in the 80s.

          There’s this for the protocols: https://github.com/probonopd/wayland-x11-compat-protocols

          It can be done, it’s just nobody wants to do it. It’s not really worth the effort, when you can work on making it work properly in Wayland instead. That way you don’t need XWayland in the first place, but also XWayland can then implement it using the same public API everyone else does so it works on every compositor.

  • limelight79@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    We haven’t rewritten the firewall code lately, right? checks Oh, it looks like we have. Now it’s nftables.

    I learned ipfirewall, then ipchains, then iptables came along, and I was like, oh hell no, not again. At that point I found software to set up the firewall for me.

    • catloaf@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Damn, you’re old. iptables came out in 1998. That’s what I learned in (and I still don’t fully understand it).

    • XTL@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      I was just thinking that iptables lasted a good 20 years. Over twice that of ipchains. Was it good enough or did it just have too much inertia?

      Nf is probably a welcome improvement in any case.

    • theshatterstone54@feddit.uk
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      Wayland is THE replacement to broken, hack-driven, insecure and unmaintainable Xorg.

      Pipewire is THE replacement to the messy and problematic audio stack on Linux to replace Pulseaudio, Alsa etc.

      SystemD is THE replacement to SysVinit (and is an entire suite of software)

  • MonkderDritte@feddit.de
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    3 months ago

    Alsa > Pulseaudio > Pipewire

    About 20 xdg-open alternatives (which is, btw, just a wrapper around gnome-open, exo-open, etc.)

    My session scripts after a deep dive: full rewrite, structured to be Xorg/waylamd/terminal independent, uses sx instead startx and custom startxfce4 as base. Seriously, startxfce4 has workarounds from the 80ies and software rot affected formatting already.

    Turnstile instead elogind (which is bound to systemd releases)

    mingetty, because who uses a modem nowadays?

    • Samueru@lemmy.ml
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      About 20 xdg-open alternatives (which is, btw, just a wrapper around gnome-open, exo-open, etc.)

      I use handlr-regex, is it bad? It was the only thing I found that I could use to open certain links on certain web applications (like android does), using exo-open all links just opened on the web browser instead.

  • IsoKiero@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    I’m tempted to say systemd-ecosystem. Sure, it has it’s advantages and it’s the standard way of doing things now, but I still don’t like it. Journalctl is a sad and poor replacement from standard log files, it has a ton of different stuff which used to be their separate own little things (resolved, journald, crontab…) making it pretty monolithic thing and at least for me it fixed a problem which wasn’t there.

    Snapcraft (and flatpack to some extent) also attempts to fix a non-existing problem and at least for me they have caused more issues than any benefits.

  • sunbeam60@lemmy.one
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    Be careful what you wish for. I’ve been part of some rewrites that turned out worse than the original in every way. Not even code quality was improved.

      • sunbeam60@lemmy.one
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        3 months ago

        Funnily enough the current one is actually the one where we’ve made the biggest delta and it’s been worthwhile in every way. When I joined the oldest part of the platform was 90s .net and MSSQL. This summer we’re turning the last bits off.

  • Strit@lemmy.linuxuserspace.show
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    there are issues with the software we’re using that can only be remedied by massive changes or a complete rewrite.

    I think this was the main reason for the Wayland project. So many issues with Xorg that it made more sense to start over, instead of trying to fix it in Xorg.

    • phoenixz@lemmy.ca
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      And as I’ve understood and read about it, Wayland had been a near 10 years mess that ended up with a product as bad or perhaps worse than xorg.

      Not trying to rain on either parade, but x is like the Hubble telescope if we added new upgrades to it every 2 months. Its way past its end of life, doing things it was never designed for.

      Wayland seems… To be missing direction?

      • UnfortunateShort@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        Wayland is the default for GNOME and KDE now, meaning before long it will become the default for the majority of all Linux users. And in addition, Xfce, Cinnamon and LXQt are also going to support it.

      • LeFantome@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        I do not want to fight and say you misunderstood. Let’s just say you have been very influenced by one perspective.

        Wayland has taken a while to fully flesh out. Part of that has been delay by the original designers not wanting to compromise their vision. Most of it is just the time it takes to replace something mature ( X11 is 40 years old ). A lot of what feels like Wayland problems actually stem from applications not migrating yet.

        While there are things yet to do, the design of Wayland is proving itself to be better fundamentally. There are already things Wayland can do that X11 likely never will ( like HDR ). Wayland is significantly more secure.

        At this point, Wayland is either good enough or even superior for many people. It does not yet work perfectly for NVIDIA users which has more to do with NVIDIA’s choices than Wayland. Thankfully, it seems the biggest issues have been addressed and will come together around May.

        The desktop environments and toolkits used in the most popular distros default to Wayland anlready and will be Wayland only soon. Pretty much all the second tier desktop environments have plans to get to Wayland.

        We will exit 2024 with almost all distros using Wayland and the majority of users enjoying Wayland without issue.

        X11 is going to be around for a long time but, on Linux, almost nobody will run it directly by 2026.

        Wayland is hardly the Hubble.

        • phoenixz@lemmy.ca
          link
          fedilink
          arrow-up
          0
          ·
          3 months ago

          Well, as I said, it’s what I read. If it’s better than that, great. Thanks for correcting me

          Also, X is Hubble, not Wayland :)

      • ComradeKhoumrag@infosec.pub
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        I’ve been using Wayland on plasma 5 for a year or so now, and it looks like the recent Nvidia driver has merged, so it should be getting even better any minute now.

        I’ve used it for streaming on Linux with pipewire, overall no complaints.

  • d3Xt3r@lemmy.nzM
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    Are there any things in Linux that need to be started over from scratch?

    Yes, Linux itself! (ie the kernel). It would’ve been awesome if Linux were a microkernel, there’s so many advantages to it like security, modularity and resilience.

  • SplashJackson@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    Basically, install Linux on your daily driver, and hide your keyboard for a month. You’ll discover just what needs quality of life revising

    • 5714@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      What’s your latest disfavor?

      Mine is the priorisation of devices. If someone turns on the flatshare BT box and I’m listening to Death Metal over my headphones, suddenly everyone except me is listening to Death Metal.

      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        Not to mention bluez aggressive conne ts to devices. It would be nice if my laptop in the other room didn’t interrupt my phones connection to my earbuds.

        Then again, we also have wired for a reason. Hate all you want but it works and is predicable

      • IsoKiero@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        It’s been a while (few years actually) since I even tried, but bluetooth headsets just won’t play nicely. You either get the audio quality from a bottom of the barrel or somewhat decent quality without microphone. And the different protocol/whatever isn’t selected automatically, headset randomly disconnects and nothing really works like it does with my cellphone/windows-machines.

        YMMV, but that’s been my experience with my headsets. I’ve understood that there’s some propietary stuff going on with audio codecs, but it’s just so frustrating.

      • TropicalDingdong@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        Just being… crappy?

        Not connecting automatically. Bad quality. Some glitchy artifacts. It gets horrible The only work around I’ve found is stupid but running apt reinstall --purge bluez gnome-bluetooth and it works fine. So annoying but I have to do this almost every day.

          • TropicalDingdong@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            3 months ago

            I don’t know why this works, but if im having issues, i do this, and it fixes all of them across the board. Even just restarting the service is not as effective as this. That some times works, sometimes doesn’t.

            I’m confident its not a drive or ram issue. Its a blue tooth issue/ audio. But I also can’t explain why it is so consistent.

    • 0x0@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      Bluetooth in general is just a mess and it’s sad that there’s no cross-platform sdk written in C for using it.

  • nycki@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    Starting anything from scratch is a huge risk these days. At best you’ll have something like the python 2 -> 3 rewrite (leaving scraps of legacy code all over the place), at worst you’ll have something like gnome/kde (where the community schisms rather than adopting a new standard). I would say that most of the time, there are only two ways to get a new standard to reach mass adoption.

    1. Retrofit everything. Extend old APIs where possible. Build your new layer on top of https, or javascript, or ascii, or something else that already has widespread adoption. Make a clear upgrade path for old users, but maintain compatibility for as long as possible.

    2. Buy 99% of the market and declare yourself king (cough cough chromium).

      • flying_sheep@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        In a good way. Using a non-verified bytes type for strings was such a giant source of bugs. Text is complicated and pretending it isn’t won’t get you far.