9 ms·
I worked on Windows back in 2014, probably the most surprising thing joining there out of college was looking through the bug database. Every issue that gets co
by pantaloons 5y ago
I worked on Windows back in 2014, probably the most surprising thing joining there out of college was looking through the bug database. Every issue that gets complained about online -- and many more -- are in there, and have been for a long time, marked WONTFIX due to a potential compatibility break, lack of priority, or some other policy reason.
I don't know if anyone even owned Notepad or any other older inbox apps like the command prompt, but the issues were pretty well understood and WONTFIXed. Single undo, unicode support, unix LF support, etc, etc.
For Notepad a frustrated engineer had produced a change-set to fix all of them, and it had sat there attached to the bug for some time. It would surface on internal mail threads from time to time as a joke or a bitter reflection on bureaucracy, and if I recall a VP once chimed in to say they had looked at it, and sadly none of it could be committed due to backwards compatibility issues.
Of course the compat issues were real (you could view reports on which obscure apps hooked into this or that internal code of cmd.exe or Notepad and would break), but I always though they served as a nice justification for whichever investments were being made at the time: certainly not Notepad.
It's nice to see the wind change on that, even if it took a decade or two.
- signal11 5y agoI suspect it's a mindset change. Not heeding demand and staying stuck in the past was how Windows became a punchline, although I'm sure enterprise customers loved it. At some point it did begin to change -- I suspect it hasn't changed enough for HN readers. For instance, Unix LF support was added to Notepad back in 2018 (at last!) with a few registry switches for compatibility.[1] [1] https://devblogs.microsoft.com/commandline/extended-eol-in-notepad/ https://devblogs.microsoft.com/commandline/extended-eol-in-n...
- pjc50 5y agoThey tried about one-and-a-half times to do a big compatibility break: https://en.wikipedia.org/wiki/Windows_RT https://en.wikipedia.org/wiki/Windows_RT and Windows Phone. It was a failure, of course. I'm not entirely clear whether the "current" API set called "WinRT" is the continuation of "Windows RT". It sounds plausible but it could just be Microsoft being terrible at naming.
- the-dude 5y agohttps://xkcd.com/1172/ https://xkcd.com/1172/
- MisterTea 5y ago> you could view reports on which obscure apps hooked into this or that internal code of cmd.exe or Notepad and would break Wait what, external software calls into notepad?
- hvgk 5y agoSurprisingly I actually deal with a fairly hefty integration that does some horrible win32 shit I don’t understand after opening notepad to integrate it into their app. There’s so much of that out there it’s unreal.
- tonyedgecombe 5y agoMicrosoft's win32 moat is looking more like an anchor.
- svieira 5y agoYep - read some of the awesome / horrific horror stories from having too large an API surface area from Raymond Chen here: https://ptgmedia.pearsoncmg.com/images/9780321440303/samplechapter/Chen_bonus_ch01.pdf https://ptgmedia.pearsoncmg.com/images/9780321440303/samplec... Patching other people's binaries, turning off features if the app making the request is "problematic-app", re-introducing bugs, fixing should-be-impossible-to-happen calls from programs that were written by hand, it's all there!
- jamesfinlayson 5y ago> one useful shim is known as HeapPadAllocation; it is applied to programs that have heap buffer overrun bugs. The shim intercepts calls to the HeapAllocate function and adds a specified amount to the requested size. That way, when the program overruns a buffer, it merely corrupts the padding rather than corrupting the next heap block. Oh good grief.
- rkagerer 5y agoWow, amazing how they bent over backwards to keep customers up and running. I wish they cared that deeply about their users today. (Not saying the approach should be the same, just wish the attitude and motivation were as intense and that Win 10+ were less user-hostile.)
- racl101 5y agoI imagine then at least 80% of Excel's bug tracker must have WONTFIX as a designation, cause I tell you, the same fucking bugs seem to come with every release.
- hvgk 5y agoI think if they fix them the global finance sector will crash overnight.
- favorited 5y agoNot to mention Excel inherited bugs from Lotus 1-2-3 for the sake of compatibility, and therefore incorrectly treats the year 1900 as a leap year: https://docs.microsoft.com/en-us/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year https://docs.microsoft.com/en-us/office/troubleshoot/excel/w...
- Osiris 5y agoI have an app that has run on every version of Windows from 2000 through Windows 10. It now doesn't work in Windows 11 because they didn't reimplement the IDeskBand interface for the taskbar that my app uses to show remaining battery time. My app is even part of their compatibility test suite (they asked me for permission and a license). I understand the need to move forward and that BW compatibility can be hinder that, but it's really frustrating for me to 1) respond to thousands of people asking why it doesn't work after they upgrade, and 2) lose income because there's nothing I can do to make it work the same in Windows 11.
- inetknght 5y agoBreaking backwards compatibility is one thing. Removing functionality is a bigger problem.
- userbinator 5y agoTell your users to vote with their money and stay on Windows 10. If enough people do so and get enough of a "Windows 11 breaks all your software" sentiment going, MS may start to reconsider. There is no "need to move forward".
- robertoandred 5y agoAnd there's no supported way to show info in the taskbar?
- wbkang 5y agoAre you the author of the BatteryBar pro by any chance?
- bschwindHN 5y agoYes, check their profile ;)
- tinus_hn 5y agoSo how does the little turd that shows news and weather work?
- ch_123 5y agoNitpick: Unix line endings and UTF-8 have been supported in Notepad for the last few years. See: https://blogs.windows.com/windows-insider/2018/12/10/announcing-windows-10-insider-preview-build-18298/ https://blogs.windows.com/windows-insider/2018/12/10/announc... and https://devblogs.microsoft.com/commandline/extended-eol-in-notepad/ https://devblogs.microsoft.com/commandline/extended-eol-in-n...
- CWuestefeld 5y agoYears ago I reported a bug in a VB function, something to do with date calculations. I spent quite a while on the phone with them, feeling like I was banging my head against a wall. They readily admitted that the output of their function was wrong, yet steadfastly maintained that they would not fix it because other programs might depend on that incorrect output. If the answer to any bug report is that the buggy behavior is now the baseline standard, what's the point in reporting any bugs?
- bombcar 5y agoExcel famously has a date calculator bug that cannot be fixed without breaking spreadsheets everywhere (which of course now expect the bug).
- grishka 5y agoThis all can be worked around given enough will. Excel files do have a format version number in them somewhere, right? I'm sure they do. So support the old behavior for older files, and the new one for the newer ones. All files created with the new version of Excel won't be affected by that bug, but the older ones, that might rely on it, won't break either.
- wiseleo 5y agoIt gets worse. This workaround is also in VBA, which has an enormous install base. Books on Excel programming explicitly call out this issue. This is one thing I definitely would not want fixed. You will break countless workflows that have operated for decades.
- bombcar 5y agoAnd even better non-excel spreadsheets have to know the bug and imitate it when opening excel docs.
- WalterBright 5y agoThe way to break free of this is to create Notepad2, leaving Notepad as it is.
- deleted 5y ago[deleted]
- grishka 5y agoI've always liked Apple's approach more. There are public APIs that are mostly guaranteed to work across system versions. Then there are private ones. You can reverse engineer them. You can use them in your apps. They might even do what you wanted. But you're on your own with them, as Apple rightfully considers itself free to break anything that isn't part of the public SDK. Microsoft, on the other hand, sees that some app calls an undocumented internal function, or has a bug that causes it to misuse an API call that just happens to still work correctly, or even worse, hooks into a system library or something, and considers that now to be a part of the public SDK that is to be maintained and made compatible with everything that might use it, forever.
- lazugod 5y agoHow do the various Linux flavors handle this kind of thing?
- grishka 5y agoI did a bit of cross-platform development in C++, and I'm glad to report that Linux is an API clusterfuck in regard to anything going beyond system calls. None of the desktop-related stuff is part of the system and there's always more than one way to do something, and you have to support all of them because else someone would complain that your thing doesn't work on their particular configuration.
- native_samples 5y agoThey just break everything and tell users/devs to suck on it.
- valleyer 5y agoI worked on macOS for many years. Apple's policy is more like Microsoft's than you describe. It was commonplace to have to revert changes that broke a "must-not-break" application that was dependent on undocumented APIs or behavior, and the source of certain projects is littered with app-specific workarounds.
- benhurmarcel 5y ago
- jeffmill 5y ago> For Notepad a frustrated engineer had produced a change-set to fix all of them Hey, that was me (JeffMill). I was a dev lead for the Windows shell team at the time, and I got frustrated with notepad not getting any attention, so I spent a weekend and made the changes you describe and more, and had one of my reports code review it. I checked the changes in, and that week, some of the members of test team (remember those?) had a cow and my lead pulled out all of the changes. I'm still at MSFT, now as an architect, so it turned out not to be a career limiting move, but I certainly should have discussed my plans more broadly rather than just "cowboying" those changes in.
- tasogare 5y agoWhy not releasing it as NewNotepad or something? This way it keeps the old one working but provides a newer alternative. Like Paint and 3DPaint or whatever it is called.
- watersb 5y agoIf I could upvote you ten points, I would. I love Notepad. I love the .LOG feature. I hit F5 for fun. For some reason, the dead-simple text editors have always fascinated me. It's damn near good enough.
- UnFleshedOne 5y agoFirst thing I do on any windows machine is replace notepad with notepad2 [0], there are installs of it that hides original notepad and uses notepad2 in all the "Edit" context menus etc. https://notepad2.com https://notepad2.com