• ChickenLadyLovesLife@lemmy.world
    link
    fedilink
    English
    arrow-up
    24
    ·
    9 hours ago

    As a programmer, it’s pretty wild how much of Windows under the hood has remained completely unchanged. I started writing software synthesizer applications back in the late '90s, using a part of the Win95 API called “winOutX”. The functions are kind of clunky to use but they allow you to programmatically create your own audio buffer arrays filled with whatever sounds you’re up to creating and dump them into the playback stream for seamless audio. This shit has remained in place, working pretty much perfectly, for the last 30 years. It was even there in WinCE/Windows Mobile, which allowed me to write software synthesis applications for early smartphones circa 2005. And it’s still all there today.

    I like to rip on MS as much as the next guy (not least for them completely dropping the fucking ball as far as smartphones were concerned), but sometimes their incredibly long-term conservatism can work to your benefit.

    • [object Object]@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      25 minutes ago

      Wait until you hear about SDL. I have two music apps on my Android phone that also work the same on the three desktop platforms. And one of them, Sunvox, also existed twenty years ago on Palm and WinCE. The UI’s reaction to my actions in both apps is so snappy it’s unsettling after using other apps.

    • CeeBee_Eh@lemmy.world
      link
      fedilink
      arrow-up
      4
      arrow-down
      2
      ·
      8 hours ago

      It sounds like the app you wrote is doing 99% of the work. And I’m guessing it was written in C, which means it’s an x86 binary and could theoretically run on any x86 system.

      Modern Windows actually has a lot of problems running older software. In some cases, the only way to get those applications working again is using Wine on Linux.

      • ChickenLadyLovesLife@lemmy.world
        link
        fedilink
        English
        arrow-up
        11
        ·
        8 hours ago

        It was originally written as a C DLL utilized by a Visual Basic front end. The C DLL used the Win95 API, though, so it wouldn’t have worked on anything but Windows 95 and onwards. I subsequently ported the entire thing to C# but still using the same API to do the actual playing of the audio (I experimented with using DirectSound instead but that was really not appropriate for an application doing its own audio mixing). Now I’m working on an iOS version and I couldn’t give two fucks about Windows at this point.

        • CeeBee_Eh@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          6 hours ago

          it wouldn’t have worked on anything but Windows 95 and onwards

          I know what you mean. All I was saying is that the binary would execute on an x86 processor regardless of the OS. Now the OS knowing what to do with it is another matter.

          This is actually what Wine does, it’s a translation layer that intercepts the Win APIs and converts it to a Linux API and vice versa. The actual binary runs on the processor just the same.

          • ChickenLadyLovesLife@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            5 hours ago

            I wonder if my old app circa 2000 would actually run on Linux/Wine. One of my projects for this winter is to install Linux on one of my Windows laptops. I’ll have to give the old app a try.

  • codingitwrong@lemmy.zip
    link
    fedilink
    arrow-up
    140
    arrow-down
    1
    ·
    15 hours ago

    macOS, can I install this 2 year old program?

    No, the architecture is no longer supported in this version of macOS

    • Ironfacebuster@lemmy.world
      link
      fedilink
      arrow-up
      86
      arrow-down
      3
      ·
      15 hours ago

      “no because the dev hasn’t paid us to certify it as safe so you’ll have to jump through 37 hoops in order to allow you to right click, hold options, and click open. THEN we’ll give you an option to install it”

      • muusemuuse@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        5 hours ago

        THIS! I can support apple cutting legacy cruft while designing their products. But the gatekeeping of otherwise functional code you can already observe and cockblock at any time remotely is psychotic.

      • mintiefresh@piefed.ca
        link
        fedilink
        English
        arrow-up
        16
        ·
        13 hours ago

        Is this a LibreWolf on Mac reference, because I hate this so much about LibreWolf on Mac lol.

        • Ironfacebuster@lemmy.world
          link
          fedilink
          arrow-up
          11
          ·
          10 hours ago

          Not so much a librewolf reference as much as a “any app you download from the Internet” reference lol

          I’ll have to try installing librewolf when I’m feeling frisky though

      • TrickDacy@lemmy.world
        link
        fedilink
        arrow-up
        13
        arrow-down
        2
        ·
        15 hours ago

        I mean, macOS has a lot of issues but the one hoop needed to run any unsigned app is “right-click app icon, click open”.

        • adb@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 hour ago

          OMG thanks.

          I think I actually knew this at some point but somehow it completely slipped my mind.

        • Ironfacebuster@lemmy.world
          link
          fedilink
          arrow-up
          21
          arrow-down
          1
          ·
          14 hours ago

          Sometimes it won’t let you even get to that step without going into the settings and finding a secret security notification that it blocked it from opening

          • adb@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 hour ago

            What version are you running? I just tried on Ventura, worked fine on both a .dmg package and some terminal script, both unsigned, and both would need the settings thing if I simply double clicked to open. You still get a prompt, but you have an “open anyways” option.

            • Ironfacebuster@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              53 minutes ago

              I’m on the latest version right now, but can’t remember a time I’ve actually installed something on this version. On at least the previous version I believe I had a mix of annoying and the “open anyways” prompt, and then before that just annoyance. I can’t remember exactly what I was installing off the top of my head though, sorry

          • MrLLM@ani.social
            link
            fedilink
            English
            arrow-up
            11
            ·
            13 hours ago

            Yeah, and in rare instances, you’ll need to take the app/binary out from the quarantine

          • TrickDacy@lemmy.world
            link
            fedilink
            arrow-up
            4
            arrow-down
            4
            ·
            14 hours ago

            I guess that is true, yes. I do think it’s generally a good thing that they’re locking down specific permissions like that though.

        • Ironfacebuster@lemmy.world
          link
          fedilink
          arrow-up
          7
          ·
          13 hours ago

          Is it? The only hoop I can remember jumping through is the (usually) singular UAC popup

          Unless you’re Ubisoft and pop up 5-8 of them every time you open Ubisoft connect 🫩

    • excral@feddit.org
      link
      fedilink
      arrow-up
      1
      ·
      1 hour ago

      I never tried this but your comment made me wonder: there are probably some programs that run better using WINE in WSL than running them directly in Windows 11.

    • TheRealKuni@piefed.social
      link
      fedilink
      English
      arrow-up
      113
      ·
      edit-2
      18 hours ago

      I’m really sorry to do this, but 25 years ago was 2001.

      Now that the painful part is out of the way, 32-bit software from 2001 should work in Windows 11.

      • jj4211@lemmy.world
        link
        fedilink
        arrow-up
        10
        ·
        10 hours ago

        Oh cool, let me install this software, what, it won’t install because it’s missing quicktime? Oh it needs directx 8 runtime? That could be a problem. Let’s advance the clock, 2004, that should be fine… What do you mean you can’t run .NET 1.1 applications and so that won’t run?

        Ironically, wine is more likely to have a path to easily run those programs under Linux, but if you had a Linux binary from that era you’d likely have a hard time getting that to run, probably harder than the microsoft scenario. So old Windows software is more likely to run under Linux than old Linux software…

      • korte7@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        9 hours ago

        I ran into old software (for Windows XP), especially games not working even with compatibility mode used for the install and opening of the app. Now if the publisher or Steam or some party puts a tad bit of effort, then yes, those games can work, although I guess a big part of that is also hardware and driver related if talking about 3D games for instance.

      • hissing meerkat@sh.itjust.works
        link
        fedilink
        arrow-up
        56
        arrow-down
        2
        ·
        17 hours ago

        Oh, it should work and it will if you put all the files in the right places yourself by say installing it on wine and copying the changes to the wine system directories over, but starting in Windows 11 running the installer gets a deliberate “this program isn’t meant for this version of Windows” error.

          • hissing meerkat@sh.itjust.works
            link
            fedilink
            arrow-up
            17
            arrow-down
            1
            ·
            17 hours ago

            Didn’t work. Application doesn’t even need compatibility mode to run. Running the app copied by someone else from their previous Windows 10 computer sorta works but didn’t find files installed to system directories. Windows 11 just deliberately refuses to execute the installer probably based on recognizing the old family of installer programs specifically.

            The users wanted a new Linux laptop. I installed LMDE, showed them how to run the installer with wine. It made a menu item. Drag and drop from whatever the cinnamon file manager is doesn’t work, and there was no file association to open the program’s files. I added one that just opens them with wine and lets it figure it out. I also showed them where their wine c drive was.

            After a few weeks they wanted to print to pdf as well as their printer from wine and I had them install cups-pdf

        • PacMan@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          5
          ·
          15 hours ago

          You will run into a lot of old Library issues. Like elf binary missing, lack of 32 bit is starting to become a problem. If you have any old 2.4 kernel dependencies your probably gonna have a problem in Linux

    • Dyskolos@lemmy.zip
      link
      fedilink
      arrow-up
      11
      ·
      15 hours ago

      Windows sucks, but I made some tools 20 yrs ago and they still just run in win11. As they did on all other windows before since…I dunno, 95? Or 3.11?

      But anyhow: Windows sucks.

    • wizardbeard@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      16
      ·
      edit-2
      18 hours ago

      Depends on the program. I’ve got a handful of that old on CDs that still install fine. Checked when I was backing them up to ISO. There’s little bits of weirdness and unintended behavior while running them now, but they still install and run to a fairly acceptable degree.

      That experience varies wildly though. Wine tends to handle things better and more consistently.

    • WolfLink@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      15 hours ago

      I’ve tried getting Windows XP games to run both in windows 7/10/11 and wine with little success. However, I have gotten them to work in Windows XP virtual machines.

      • Redkey@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        5 hours ago

        The problem I find with many games made for Win95/98/XP is that the game uses one or more third-party libraries that were only “valid” for a year or two. After that, updates to the OS closed loopholes that the poorly-written old versions of the libraries relied on, but the poorly-written newer versions of the libraries released to deal with those issues then break compatibility with the previously-released game, which was never updated or patched.

  • SillyDude@lemmy.zip
    link
    fedilink
    arrow-up
    28
    ·
    15 hours ago

    I wanted to do the cool neofetch thing all the femboys in thigh highs are doing. Shits already installed on mint. My boring ass win98 clone is doing the femboy thing no questions asked.

  • mycodesucks@lemmy.world
    link
    fedilink
    arrow-up
    36
    ·
    16 hours ago

    “Old tools” does not mean obsolete or bad. It means tested, hardened, and reliable. And crucially, probably runs in a couple megabytes of memory, which you might need if the cost of RAM suddenly quintuples for no reason.

  • collapse_already@lemmy.ml
    link
    fedilink
    English
    arrow-up
    13
    ·
    15 hours ago

    My issues are not install, but uninstall. Why do I have so much crap installed? I used it on a project once 7 years ago and haven’t since. Why not uninstall it? It is useful, just not currently. It took less than a minute to install when you installed it the first time and your connection is faster now? But what if the archive goes down or it is retired or obsolete? It is small, keep it!

    Turns out lots of small adds up to big.

    • nek0d3r@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      2
      ·
      11 hours ago

      And yet some linux devs look at me using containers for development like I’m the Demon Lord of Overhead

      • jj4211@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        10 hours ago

        If you use it to make sure your deployment is sane and that your dev system didn’t have an invisible component that you assumed as a dependency, great. Containers are a great tool for simulating minimalist clean setups and not incurring surprise hidden dependencies.

        If your application carries a whole container with it for the user to use and that’s the only way to use the software, that’s going to be annoying. ‘docker style’ for bloat, flatpak/snap depends on the app but sometimes the application functionality is broken by the container boundaries. Admittedly flatpak/snap is frequently acceptable, really depends on if the program has a lot of interoperability features that get broken in the flatpak/snap runtime model.

        If your application only is deployable as a pod… I’m almost certainly going to want to avoid it if at all humanly possible. Pods as a self-hosted approach to do what you want, ok, fine and I own all that. If a third party pod is happening, I tend to see some part of it fall over it and no one can figure it out because the application is microserviced into oblivion and no human actually understands the whole flow… It’s possible also to do this with ‘traditional’ application delivery, but a pod is a very high sign that no one even bothered thinking hard about how it should come together and play nice with others.

        • nek0d3r@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          8 hours ago

          Yeah, all of mine are usually just there to spit out binaries to use locally and alert me to any new dependencies slipping by. I once worked at a company that would ship web apps with databases that only ran in a container so that they could make each layer of its image a migration. It made CI take upwards of 40 minutes for just regular PR builds.

          And then there’s people who are just allergic to containers. If you want me to work on your C project, I’m not leaving dev libraries lying around or wondering why something works on my system and not on others. I’m building a Dockerfile that has only what should be needed to build and feeding make through a container and volume binding the output.

          Edit: I hate flatpak and snap so much actually lol. Most of the Dockerfiles I write are just building apps from source that don’t distribute any other way. I’ll even accept AppImages, but if you make me use flatpak, I will not hesitate to start building from source.

          • jj4211@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            6 hours ago

            What i find funny are people building golang binaries without cgo and still wrapping them in full distro containers. Your binary uses nothing from the container and still it gets packaged that way…

            Seen so many developers incur a huge headache trying to figure out overly complicated container setup when they could just run their already static binary without any drama…

    • ulterno@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      13 hours ago

      Specially for rolling release distros.
      I had fun installing everything I thought of just checking out once, including games and stuff (assets tend to be large).
      But after a few updates and not actually using most of them, I realised how much load I was putting on the network and removed many of them.

    • ViatorOmnium@piefed.social
      link
      fedilink
      English
      arrow-up
      46
      ·
      18 hours ago

      You can still compile it against the modern version.

      And if it’s static linked it will either run or you can ask Linus to murder someone for you.

      • pewpew@feddit.it
        link
        fedilink
        arrow-up
        13
        ·
        18 hours ago

        I was trying to compile the first version of SuperTuxKart just for fun, how naive I were… Nowadays it’s like translating ancient runes and good luck finding those ancient libraries

      • If I may, is there a way to quickly and easily have a disposable/revertible environment for building? For Fedora specifically. It’s annoying to install a whole suite of packages because I need them just this once and then either manually delete the ones I didn’t manually install before and actually need or just live with a whole bunch of devel packages that’ll never be used again

    • jj4211@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      10 hours ago

      It’s funny because that’s true that an old Linux binary is likely to have issues under Linux, but an similarly old Windows application might work better under Wine on Linux than modern Windows.

      libc is actually relatively less likely, glibc is awfully conservative about changes, but there are a maze of likely service and library dependencies that were abandoned or didn’t regard backwards compatibility with the same importance.

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    17
    ·
    edit-2
    18 hours ago

    Initial release of dd was for Unix in 1974 and it’s still updated for use in modern systems.

    I used it just the other day and it was already installed.

    • Malgas@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 hours ago

      I don’t have hard data, but if my experience is at all representative then you’re much more likely to be able to run a 25 year old Windows program on Linux than on Windows.

  • Digestive_Biscuit@feddit.uk
    link
    fedilink
    English
    arrow-up
    5
    ·
    16 hours ago

    We have a 22 year old version of RedHat 4. It works fine and is reliable but has problems with out dated security.

    • fartsparkles@lemmy.world
      link
      fedilink
      arrow-up
      16
      ·
      18 hours ago

      It does work but if you’re using Wayland, it won’t. But one would be rather silly to expect an X11/Xlib tool to work without X11.

      • FishFace@piefed.social
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        10
        ·
        18 hours ago

        Yeah, I wouldn’t expect it to work, so I wouldn’t expect a meme to imply that Linux has great backwards compatibility, when things change somewhat rapidly in mainstream Linux, making it quite hard to maintain.

        • fartsparkles@lemmy.world
          link
          fedilink
          arrow-up
          10
          ·
          17 hours ago

          X11 isn’t Linux… Linux is excellent for backwards compatibility. Can’t say the same about userspace though.

            • MotoAsh@piefed.social
              link
              fedilink
              English
              arrow-up
              7
              ·
              edit-2
              16 hours ago

              Yes, it does. Not only for servers, but every single application that wasn’t written for X11 specifically continues to just work. Which is the vast majority.

              • FishFace@piefed.social
                link
                fedilink
                English
                arrow-up
                4
                arrow-down
                4
                ·
                16 hours ago

                Would you enjoy trying to explain this to your grandma or other stereotypically tech-un-savvy relative after you got her to install Ubuntu and something she was able to do before stopped working after an update?

                You’re interested in backwards compatibility on servers, and in backwards compatibility for a subset of applications. Cool. Convenient for you! Recognise that there’s more to it than that, that when people meme about how awesome Linux is compared to Windows, focusing on servers and non-graphical applications isn’t good enough.

                • MotoAsh@piefed.social
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  11 hours ago

                  Not backwards compatibility. Straight up compatibility.

                  and yes, I wouldn’t mind. I enjoy explaining things.

        • TrickDacy@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          14 hours ago

          The meme isn’t implying great backward compatibility. It’s implying great tool maintenance and availability.

    • palordrolap@fedia.io
      link
      fedilink
      arrow-up
      3
      ·
      18 hours ago

      I’m going to miss xdotool (and wmctrl) when my distro eventually ditches X11.

      I don’t use them often, but I do use them, and their functionality is nice to have.

      There are partial replacements out there, but last I checked, they were very weak approximations.

        • palordrolap@fedia.io
          link
          fedilink
          arrow-up
          2
          ·
          14 hours ago

          They allow the user to script changes to, and pull information from, windows in the window manager. Like read, if not also set, a window’s title, change a window’s dimensions, move it around, send it to a different desktop, send keypresses, bring a window to the foreground, etc. etc.

          Basically, anything the user can do with the mouse, keyboard or window manager via the GUI, and a little more besides, can be automated.

          The two commands work slightly differently to each other and one can often do something the other can’t.

          As an example, I have a script that resizes the active window to a 4:3 ratio at full vertical height on my 16:9 monitor. I’ve then bound that script to a keypress in the window manager. It’s a lot like having something halfway between window mode and maximised mode.

          Couldn’t I do that with the mouse? Sure. But with the script I don’t have to gauge by eye and spend multiple mouse clicks and movements trying to get it just right.

          • Pika@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            4
            ·
            edit-2
            13 hours ago

            That sounds absolutely amazing and something that I’m definitely going to be looking up when I go on my desktop later. Thank you for informing me

            • palordrolap@fedia.io
              link
              fedilink
              arrow-up
              3
              ·
              13 hours ago

              Be aware that a lot of distros will be switching from X11 to Wayland at some point in the not-too-distant future and these ancient tools will not work there.

              People have tried to write equivalents (ydotool is one I’m aware of), but Wayland has intentionally been written to make doing such things difficult, for “security” reasons.

              I will be grumpy until I can make my scripts work again, but that’s for future me to deal with.

              • Pika@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                2
                ·
                edit-2
                13 hours ago

                Yeah, sadly, I’m aware. I know that Wayland is making its rounds. I’m not looking forward to it. I try it every once in a while to see if it’s gotten better, but so far, every time I’ve tried, I have artifacting and tearing, which just doesn’t happen on X11