• wizardbeard@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      9
      ·
      22 days 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
      ·
      22 days 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
        ·
        21 days 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.

      • marlowe221@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        21 days ago

        Some of my favorite PC games come from the Windows XP era. There is something about games from that time that seem to make them particularly difficult to get running these days.

        I’ve had the best luck in Linux via WINE/Proton, but it probably varies at lot from game to game.

    • Psythik@lemmy.world
      link
      fedilink
      arrow-up
      20
      ·
      21 days ago

      In the early 2000s there was this website called dll-files.com or something like that, and every time that error popped up (which happened a lot in the 90s and 2000s), you’d go to that website, download the missing file, and 99% of the time it would fix the problem. These days I’d advise against obtaining random DLL files from the internet but back then it was like magic.

      • dejected_warp_core@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        21 days ago

        Or you’d get lucky and some other program you installed happens to have the right dependencies. Just copy them to the application install dir or to C:\windows\win32\ and off you go.

      • ILikeBoobies@lemmy.ca
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        21 days ago

        On Windows people should only be downloading software from the Windows repo and using Winget to install it.

  • ChickenLadyLovesLife@lemmy.world
    link
    fedilink
    English
    arrow-up
    37
    ·
    21 days 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
      3
      ·
      edit-2
      21 days 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.

      The downside is that all the dialogs and controls are drawn by the apps and SDL, with their peculiar interaction. Though there’s some leeway to that, like calling the system’s file picker.

    • CeeBee_Eh@lemmy.world
      link
      fedilink
      arrow-up
      3
      arrow-down
      2
      ·
      21 days 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
        10
        ·
        21 days 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
          ·
          21 days 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
            ·
            21 days 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.

    • jj4211@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      21 days 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.

  • mycodesucks@lemmy.world
    link
    fedilink
    arrow-up
    30
    ·
    22 days 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.

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    13
    ·
    22 days 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.

  • collapse_already@lemmy.ml
    link
    fedilink
    English
    arrow-up
    11
    ·
    22 days 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
      3
      ·
      22 days 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
        4
        ·
        21 days 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
          2
          ·
          21 days 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
            2
            ·
            21 days 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…

        • GreenKnight23@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          21 days ago

          why install natively if already in an image? just run the image, boom, done.

          I can’t think of a good reason to not use an image if it already exists.

    • ulterno@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      22 days 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.

  • Jankatarch@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    22 days ago

    Helps that if they aren’t installed, they will be aliased to the opensource equivalent.

    I am looking at you cc. I should NOT have been able to follow a programming book that old so smoothly when I knew nothing about computers at the time.