11 comments

  • abanana 1 hour ago
    > The tradition goes back to SimCity, which only ran on Windows 95 because Microsoft wrote special code for it... Yes, Microsoft modified its OS just to cover up one game’s bug... The SimCity hack was a one-off

    The stuff around SimCity in this article is poorly written. It seems the author has misunderstood it to have been a one-off special case. I looked back at Joel Spolsky's article, and he does make it quite clear that the SimCity example was just one of many: "it still ran old 16 bit software perfectly. Microsoft obsessed about this, spending a big chunk of change testing every old program they could find with Windows 95".

    The article does later mention "Windows XP’s hidden database of app fixes" but doesn't appreciate that the concept really started with Windows 95, and in a big way, not "just to cover up one game’s bug".

    • tclancy 50 minutes ago
      Rough guess but this is all content farming of Raymond Chen posts at https://devblogs.microsoft.com/oldnewthing/ though I can't find a smoking gun. I definitely remember an article about Intuit doing something some dumb they had to keep an internal API around reporting the wrong value or something like that.
    • philipallstar 49 minutes ago
      From an article on this[0]:

      > On beta versions of Windows 95, SimCity wasn’t working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn’t free memory right away. That’s the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95.

      [0] https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii...

    • jonathanlydall 1 hour ago
      The article’s content is generally quite weak, could probably have been covered in an old school tweet with screenshots and nothing of value would have been lost.

      The only positive thing I can say about it is that it doesn’t appear to be written by AI.

      I don’t think this person truly understands what they’re writing about, they did a little research, made some screenshots and put enough words in the article so that it will show up in search engines.

      It’s reminiscent to me of many articles on Windows error codes, almost all of them are basically generic, generally quite long with drivel, and steering you to install some “fix it” software. Any technical person coming across these just finds them annoying as they clearly gamed the search results with unhelpful content.

      • pishpash 45 minutes ago
        One may even speculate the author got some, or a lot of ... "help", if it's even a real author.
        • jonathanlydall 36 minutes ago
          Nothing wrong with getting help from AI as long as you’re applying good and qualified judgment on what parts of its help is decent.
      • Chyzwar 28 minutes ago
        Your comment also do not bring anything interesting to discussion.
        • hoten 26 minutes ago
          good thing the comment wasn't swarmed in ads
          • Chyzwar 20 minutes ago
            I prefer ads over snarky dismissive hot air of someone ego.
  • LASR 34 minutes ago
    Whatever one might think of Windows and Microsoft, the idea that you can still run apps that are 30+ years old is incredible.
    • expedition32 28 minutes ago
      Also Windows has a huge community of people who will help you.

      With Linux you're stuck trying to decipher the ramblings of neckbeards.

      • officeplant 21 minutes ago
        it's not 1999 anymore, we've already moved past the golden era of stackoverflow and forums to support Linux & Windows questions into a new dawn of poorly sourced reddit bot comments.
      • Spivak 5 minutes ago
        I really want to believe you and that I've just missed the magic support forums but trying to find answers to problems on Windows is just a million forums of the same essentially "turn it off and on again" advice

        Linux forums might be obtuse but at least they'll have actual technical details about the problem. Almost without fail any "fix" they propose won't work on your system because it's for a different distro that was EoL 5 years ago but they'll at least give you something to work with.

  • sedatk 11 minutes ago
    It actually seems like Windows 11 shipping with Windows 3.1's memory manager that was kept in Windows 95 memory manager as a compatibility option.
  • Dwedit 1 hour ago
    Why show a screenshot of a different game (SimCity 2000) when discussing SimCity?
    • jonathanlydall 57 minutes ago
      You can see my other comment, but short version is that I think it’s just content for the sake of content without the person actually really understanding the topic much more than most of their readers.
    • immibis2 20 minutes ago
      Because this article is an AI slop rehashing for SEO.
  • manoDev 45 minutes ago
    This is a great example of how implementation becomes the specification.
  • Blikkentrekker 23 minutes ago
    This kind of neglect for backwards compatibility is honestly why quite a bit of free software is failing, and also why quite a bit is not that understands it.

    Like the fiasco with Python3 and Wayland. It's so clear the developers just thought “Wow, people will just switch” not realizing how much people demand an absolute drop-in replacement and then maybe later you can think of slowly deprecating features to discourage new users from adopting them. Rust realizes this with editions. Yes, it's a big investment for them to continue to support it, but the alternative is that Python library maintainers now have to have this big investment themselves because they have to maintain like 6 different versions of the same library because Python doesn't understand the value of backwards compatibility. z/OS still supports 50s COBOL frameworks and for good reason. No one is going to rewrite that.

    These developers when you talk about them really do not seem to understand that people aren't jumping to rewrite code or maintain different versions at the same time and very often even call them “lazy” for not doing it like they're not using their time for other things. Say you're a company, and you can pay a developer for his time:

    1) Have him develop new features that make you more money.

    2) Have him fix bugs that cost you money.

    3) Have him rewrite existing code that will do nothing new, and will probably introduce new bugs again so you can later go to 2.

    Which is more attractive?

  • jeffbee 1 hour ago
    This is why memory allocators should be linked into applications and should not be considered operating system components.
    • pcwalton 1 hour ago
      Userland system DLLs need to allocate memory too.
      • irishcoffee 29 minutes ago
        Whenever I write I library I don't allocate memory. If memory needs to be allocated, the program calling into the library allocates memory and passes a pointer (or reference I suppose) into the library call.

        Clearly this can't be enforced, but I've always found it bad practice to allocate memory inside a library.

    • rowls66 1 hour ago
      And when you are running more than one application at the same time how is that supposed to work?
      • hyperhello 1 hour ago
        It works fine. The processes get a fenced off piece of memory and are allowed to portion it out to themselves any way they prefer. Syscalls are designed to be mostly neutral about how the app wants to proceed.
      • bigfishrunning 1 hour ago
        On a system with an MMU, applications have their own address space that the allocator draws from; pages need to be centrally allocated, but individual allocations can be handled in userspace
  • ForOldHack 1 hour ago
    I wouldn't be surprised by windows components that use this. Wish I could run 16-bit apps tho.
  • 150g2 22 minutes ago
    And yet scamming people with direct X.
  • hyperhello 1 hour ago
    I don’t know much about CPU and memory back then, but did they not have some kind of memory access debugging mode where it would match every access against the alloc map, understanding that it could be very slow, but would find some of this kind of bug? Come to think of it, do we even have that today?
    • bboreham 32 minutes ago
    • jeffbee 1 hour ago
      This is what sanitizers do.
      • hyperhello 1 hour ago
        I know compilers have advanced, but I was wondering about a runtime debug check.
        • chuckadams 1 hour ago
          A sanitizer is that runtime debug check. The compiler just inserts those checks.
          • hyperhello 1 hour ago
            Okay. Then I have to assume that they didn't do it for SimCity! Thanks.
            • chuckadams 1 hour ago
              Sanitizers come with a lot of overhead, and the tech wasn't readily available in SimCity's day, certainly not for Windows 95.
              • hyperhello 57 minutes ago
                I was imagining more like some kind of primitive CPU mode that sends every single RAM request to a software exception. Something you would normally have turned off but available for truly heavy duty debugging.
                • chuckadams 12 minutes ago
                  That sounds pretty similar to what Valgrind does, basically runs your program in a VM with that kind of instrumentation. The details of how it works are way past the boundaries of my own knowledge though :)
  • thighbaugh 1 day ago
    What else could be expected of Redmond's finest?
    • Barrin92 1 hour ago
      are you implying the fact that they proactively threw in a custom heap manager for a game is supposed to be a bad thing? The fact that almost any 25+ year old executable runs on Windows to this day is fantastic, they're seemingly the only guys who take backwards compatibility seriously.
    • ForOldHack 1 hour ago
      A hidden z80 emulator...