16 ms·
The level of backwards compatibility in Microsoft products is very impressive. Microsoft Office 2019 can open .doc files created in Microsoft Office 97 and upg
by lima 7y ago
The level of backwards compatibility in Microsoft products is very impressive.
Microsoft Office 2019 can open .doc files created in Microsoft Office 97 and upgrade them to a modern format, with zero loss (except for things like OLE objects, which are no longer supported for security reasons). My parent's computer has documents which haven't been touched in 20 years and they still open just fine.
Or applications written for Windows NT that still work - unmodified! - on Windows 10 thanks to layers of compatibility hacks. A true feat of engineering.
If you want to read more about the horrors of maintaining APIs that are backwards compatible with software written decades ago, I can heartily recommend Raymond Chen's blog: https://devblogs.microsoft.com/oldnewthing/ https://devblogs.microsoft.com/oldnewthing/
- jplayer01 7y agoI was impressed when I upgraded an old Win7 system and Office 2007 still worked on W10. Makes me wonder what the oldest version of Office is that would still work. There are a lot of things to not like about Microsoft, but their dedication to backwards compatibility is great.
- lima 7y agoHas its downsides, though - one of the reasons Active Directory has been (and still is) so insecure out of the box is backwards compatibility with an ecosystem of shitty third party vendor solutions. Sometimes, change is good, even if it's painful in the short term.
- jplayer01 7y agoI'm sure. I still much prefer Microsoft's model over Apple's, even if there are some drawbacks.
- fouronnes3 7y agoReminds me of that time when they fixed a buffer overflow in the ancient Office Equation Editor by manually patching the binary because they lost the source code: https://arstechnica.com/gadgets/2017/11/microsoft-patches-equation-editor-flaw-without-fixing-the-source-code/ https://arstechnica.com/gadgets/2017/11/microsoft-patches-eq...
- jplayer01 7y agoWow, that's impressive.
- Kipters 7y agoAre are more explanations for the manual patch than losing the source code though: why spend days/weeks setting up a 20-year old dev and build environment when a two-byte patch does the trick?
- mrpippy 7y agoIt’s worth noting that a patch around 2 months later removed the Equation Editor entirely, because more security issues were found and binary patching wasn’t going to be sufficient.
- ohlookabird 7y agoOh that reminds me of learning some assembler by writing cracks to shareware programs to patch away test period warnings, license key checks, etc. using a disassembler (w32dasm I believe) on the binary executable. That was a fun learning experience, helped a 14 year old to use software he otherwise couldn't buy (me) and helped understanding quite a few internals of binaries.
- anticensor 7y agoSome binaries are obfuscated by overlapping several routines together.
- saagarjha 7y agoOh, there's a bunch of ways you can try to make reverse engineering harder, but I don't think these techniques are really that common for most software.
- mehrdadn 7y agoWhat actually impresses me there isn't that Office 2007 is still compatible with Windows 10 (I mean it does impress me, but I'm used to it by now), but rather the fact that a program like office doesn't break after an upgrade -- and I mean that from the perspective of the OS upgrade. Upgrading the whole OS underneath my programs and having them still work fine is just not something I ever expect on any OS, and it was quite unexpected the first time I saw it happen on Windows.
- Zardoz84 7y agoYou should try to upgrade a Linux machine. Not only keeps working before the upgrade. It allows you to WORK meanwhile the whole OS is upgrading! Shit! I was playing Stellaris meanwhile I was updating to Kubuntu 18.10
- AnIdiotOnTheNet 7y agoSure, sometimes, maybe. But pretty much only if you've only ever used software from the main repo and of course not anything they've dropped between versions. I've had plenty of Linux upgrades break stuff. Not just programs, but core functionality. Linux Desktop has pretty much the opposite compatibility story to Windows.
- mehrdadn 7y ago> You should try to upgrade a Linux machine. I have! > Not only keeps working before the upgrade. It allows you to WORK meanwhile the whole OS is upgrading! Yeah, and then it breaks and trashes my install after the upgrade. Happened to me many times.
- icedchai 7y agoYeah, then you reboot and find out what's really broken. About 30% of the time there's some weird problem. Last time, my Nvidia drivers weren't upgraded and my laptop's external display stopped working. Server upgrades are usually smooth (early versions of Ubuntu being an exception.)
- munchbunny 7y ago
- lbruder 7y agoI think I still have an old copy of Office 95 at home. Gotta try that with Win10 just for shits and giggles...
- userbinator 7y agoYou shouldn't be impressed that existing apps continue to work, since that's the norm for Microsoft. It's all the other things they changed around and the subtly added "telemetry" spyware that should get your attention more. ;-) Office 95 can run on Win10, with only a little difficulty: https://www.youtube.com/watch?v=mRfn4M5DXTE https://www.youtube.com/watch?v=mRfn4M5DXTE
- jplayer01 7y ago> It's all the other things they changed around and the subtly added "telemetry" spyware that should get your attention more. ;-) As if that isn't already discussed to death around here or elsewhere. I see far more disdain for Microsoft than I do any praise at all. And while I'm not particularly happy with Microsoft either, I'm still able to appreciate the good things that they do.
- 2ion 7y agoYou say it nonchalantly but I'd think twice if it wouldn't work anymore if I'd upgrade (at all). Buying new full versions of Office is not very cheap.
- Ry4N4ejc-9K_ZfQ 7y agoI have Office 2002 on my Windows 10 desktop. I don't use them often, but Word and Excel still work. The only issue (I can't remember if this affected me on older windows versions) is that it sometimes crashes when you close it and tries to restart.
- LukeShu 7y agoFunny. Microsoft Works getting discontinued, and Microsoft Office being unable to open Works documents is what pushed me toward OpenOffice (which could open Works Word Processor documents, mostly without issue), since all of my family's documents were in Works Word Processor. Years later, Microsoft finally came out with an importer for Word, but there's still no migration path to anything for Works Database.
- Crinus 7y agoWhile Microsoft Works has been discontinued, you should still be able to run it in modern Windows (which is what backwards compatibility is about - Office is a totally different product, after all).
- LukeShu 7y ago(1) The post I was responding to was about Microsoft Office 2019 being able to open documents created by older versions, not about Microsoft Office 97 being able to run on modern Windows. (2) Microsoft Works (at least the version we had a license to) definitely does not run on modern Windows. My dad's business is forced to keep a Windows XP VM alive, in order to keep running Works Database, because as I mentioned, there's still not a migration path to anything for it.
- Simon_says 7y agoMy LaTeX files from 1994 still compile, too.
- leadingthenet 7y agoAm I the only one that doesn't like this about Microsoft products?
- deleted 7y ago[deleted]
- Jonnax 7y agoYou don't like backwards compatibility? Then what do you prefer?
- londons_explore 7y agoBackwards compatibility shouldn't be some 'amazing feat' - it should be the norm. I should be able to fire up a BASIC script from 1970 and have it still run. It shouldn't require me hours of hunting retro-computing websites for the right simulators - it should just be part of the OS. I don't care how - whether that be emulation, or maintaining direct compatibility. A set of emulators for all ancient computing platforms only comes in at a few megabytes, so there really isn't an excuse not to include it. Why you say? Two reasons: 1. maintaining backwards compatibility isn't hard - you just switch to emulation every time you want to 'get rid of cruft', and then what happens inside the emulated container can be frozen in time and requires no maintanance. 2. Every time one breaks a legacy bit of code, all the users of that code have to do some work to re-invent it. It would be like shredding Leonardo da vinci's work just because we have better painters now.
- WHOh8sLondon 7y agoYou are You man. I love everything you've written. Totally agree. Perfect post. Resonates exactly with how people c/s ould feel.
- deleted 7y ago[deleted]
- stjohnswarts 7y agoEh no one wants to maintain and check all that old stuff or support people who bought something 10 years ago. If it works then great, if not then keep an old system around with that setup that supports it and make contingency plans when it inevitably fails.
- laumars 7y agoThe way desktop content is consumed hasn't changed much in 20 years though. Ok we now have OOXML instead of DOC but the layout of the content and even editors to some extent hasn't changed much. This is why PDFs still open. GIFs, BMPs, JPEGs, etc still work fine etc. Granted there will be a problem with older and/or more esoteric proprietary formats but that's a risk people should weigh up when using less common software and saving files from them. In my opinion the biggest short term threat we have at the moment isn't the popular document file formats (though that is a long term threat) but content posted exclusively online. Web standards are constantly evolving and any given website would have a multitude of files -- many of which wouldn't even be hosted on the same domain as the HTML endpoint, which itself is most likely dynamically generated. Plus our local copies of web content is just a temporary cache that routinely gets flushed so once it disappears from the web it's likely gone for good (web archive aside). I'll be more worried about classic file formats when computing undergoes it's next paradigm shift away from personal computing (arguably that's already started happening with smart phones and cloud computing).
- stjohnswarts 7y agoYep that's why I got annoyed when we moved away from Docs/PDF's and open source wiki at work for confluence. Now we're stuck forever with that software unless we hire an army of interns to move it to whatever the next platform is when we need those old documents.
- darkwater 7y agoBut AFAIK it's only thanks to European Union and pressure from various groups that we can open MS Office formats on other platforms and programs, no strings attached. Being retro-compatible in a walled garden only doesn't make all that sense.
- rubber_duck 7y agoI think in the era of cloud and web this was bound to happen anyway due to market pressure, similar how Windows/Azure embraced Linux
- lima 7y agoThe antitrust case helped, but it's only thanks to massive reverse engineer efforts by open source developers that this kind of compatibility exists. Even when you have the specs, it's a massive effort to re-implement. > Being retro-compatible in a walled garden only doesn't make all that sense. It makes perfect sense from the company's point of view.
- darkwater 7y ago>> Being retro-compatible in a walled garden only doesn't make all that sense. > It makes perfect sense from the company's point of view. Yeah, for sure, but I was criticizing OP that was praising MS for still being compatible with their own 20+ years old proprietary and hegemonic document format.
- gmueckl 7y agoWell, it was kind of the old way of inplementing a subscription based business model: want to stay compatible with the rest of the world? Pay up!
- dosy 7y agoIt makes a lot of sense if you own the garden and charge people admission. ;P ;)
- fortran77 7y agoWhy doesn't the EU pressure Apple to make sure the Apple Write and Apple Pages, etc, still work?!
- vbezhenar 7y agoBut there was formula fiasco recently. When you wasn't able to edit formulas created by early versions. https://support.office.com/en-us/article/equation-editor-6eac7d71-3c74-437b-80d3-c7dea24fdf3f https://support.office.com/en-us/article/equation-editor-6ea...
- lima 7y agoSee comment above about the Equation Editor binary patch - they apparently lost the source code and it became too much of a security risk to keep (since it's missing all of the mitigations that a modern compiler generates). https://arstechnica.com/gadgets/2017/11/microsoft-patches-equation-editor-flaw-without-fixing-the-source-code/ https://arstechnica.com/gadgets/2017/11/microsoft-patches-eq...
- vbezhenar 7y agoWell, the result is the same. There're tons of old documents with formulas flying around and there's no clear path to upgrade, so the only reasonable way outside of re-typing every formula with new editor is to keep using old vulnerable editor. IMO they should have reverse-engineered old format and upgrade it to new automatically.
- gmueckl 7y agoAs far as I know, this was a component that was licensed from a third party. The company sold the editor separately as well IIRC. So, even if there are no legal hurdles to reverse engineering the file format, delving into an undocumented format developed by a different team and no previous information is tough. This means a lot of money and effort for something that comparatively few people really need. I am not surprised that they didn't do that.
- gbuk2013 7y agoBack about 20 years ago I built a system for my Dad's company to generate export documentation, manage custom price lists for multiple customers and track inventory and factory production, all based around multiple Excel files and a fair bit of VBA code. Fast forward multiple upgrades of Office it still works to this very day! You just have to keep ignoring the scary self-signed certificate warnings. ;) I'm a die-hard Linux guy, but credit where credit is due - Excel is awesome.
- deleted 7y ago[deleted]
- fortran77 7y agoMeanwhile, your 20 year old Mac software is useless. Heck, even a lot of 10 year old Mac software and some 5-year old is useless if it was 32-bit. Style over function. And not even a lot of style anymore. Yet they're still beloved by many people here. The obvious conclusion: few of those people you see sitting around typing on their MacBooks are doing anything that will be of value 5, 10, or 20 years from now.
- derefr 7y agoWhat percentage of developers who use Macs do you imagine create macOS/iOS software, vs. POSIX software? I’m fine with using an ephemeral toolkit to create long-lasting infra, and it even makes sense to me that some people want to sometimes write new pieces of the ephemeral toolkit to help me do that (like stylish GUI text editors or SFTP clients or notification-area service managers.)
- TheRealSteel 7y agoI even have software (Drawful 2) that was released in 2016 and won't run on Catalina because it is 32-bit. That's just three years.
- jsjohnst 7y agoThat’s on the developers to be honest, less so on Apple (but Apple is not entirely guilt free). It was very clear in 2016 that they should’ve been targeting 64bit.
- userbinator 7y agoOr applications written for Windows NT that still work - unmodified! - on Windows 10 thanks to layers of compatibility hacks. I'd call that more "stable API" than anything else --- Win32 is Win32, and while they've added functionality over the years, the basic stuff remains the same.
- lima 7y agoIt's not just the formal API - features like UAC and high DPI scaling require emulation layers. And there's more to the OS than just Win32.
- anticensor 7y agoUAC's compatibility workaround is privilege exemption, not emulation. It is not like TrustedInstaller was suddenly introduced in Windows 6.
- hrktb 7y agoI am with you on the applications that still work thanks to all the love and tears of the MS engineers. A document file that can still be read decades later should be the norm though, and Office 2019 needing to 'upgrade' them is less than ideal. At that time I think people already smelt that important docs would need to exported in something else (ex. PDF) just in case MS changed its mind about how text or layouts would work.
- lima 7y agoThe old .doc format was basically serialized C structs, and it's still supported, you're encouraged to upgrade it for security reasons.
- markus_zhang 7y agoI bet engineers who work on these backward compatibility learn really a lot and learn them fast. Wondering if there is anything similar one can do with open-sourced projects.
- bbanyc 7y agoIt used to be that the .doc format changed incompatibly with every release and if you had to share documents with someone on an earlier version you had to manually select the format on the "save as" screen. I have distinct memories of opening a Word 97 doc in Word 95 and seeing a bunch of weird boxes between each character - in retrospect, obviously because they changed the internal format from some 8-bit encoding to UTF-16. But I can see how the conflicting requirements to keep the upgrade treadmill rolling and never break any old apps have made certain versions of Windows into such unholy piles of kludges.
- signal11 7y agoI'm not very sure about Word, but Excel 97 onwards, Excel's story around forward and backward compatibility has been very good -- the Excel equivalent of the scenario you describe wouldn't happen, because of the introduction of Future Record Types[1]. These are still used in the newer XLSB format[2]. [1] https://www.loc.gov/preservation/digital/formats/digformatspecs/Excel97-2007BinaryFileFormat(xls)Specification.pdf https://www.loc.gov/preservation/digital/formats/digformatsp... (Page 14) [2] https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-xlsb/abd9c7af-a345-4aaf-999d-8fffa659e6e2?redirectedfrom=MSDN https://docs.microsoft.com/en-us/openspecs/office_file_forma...
- unilynx 7y agoWord, Excel and Powerpoint were forwards and backwards compatible from 1997 to 2004. The newer versions emitted various backward compatible formatting (eg Word 2000 supported table-in-table, but emitted sufficient formatting for Word 97 to at least see one level of tables and consider the rest of the cells to be paragraphs) It was far from bug-free though.
- goatinaboat 7y agothe .doc format changed incompatibly with every release Pre-XML the .doc format was just the in-memory representation of the document serialised to disk and loading it was the converse. Conceptually you could imagine it like mmap(). It was different between versions because the code was different, not by any deliberate effort.
- scarface74 7y agoAnd it’s hurt Microsoft by making it impossible to ship operating systems that are not years late, with promised features removed and they haven’t been able to move beyond the desktop - which has become increasingly less relevant over the decade. They are now at a point where they have to base their browser on a rival’s engine, their developing a mobile device based on Android and their own cloud platform hosts fewer Windows instances than Linux instances.
- sz4kerto 7y agoAnd they have made hundreds of billions of dollars. Surviving forever is not the only possible goal for a company: if you have a company that makes 100 dollars then it goes bankrupt then that's likely better than a company making steady 1 dollar a year.
- scarface74 7y agoAnd Microsoft is only seeing a resurgence by basically marginalizing Windows. I didn’t argue that MS isn’t successful but that Windows has lost importance in the modern tech industry.
- UserIsUnused 7y agoMicrosoft is about Microsoft, not Windows. While windows is loosing relevance, my Microsoft stock keeps on getting more valued. Dividends also keep coming and growing.
- scarface74 7y agoIn the Gates/Ballmer era MS was definitely about Windows. They even withheld Office from iOS even though they had it ready during the Ballmer era to prop up Windows.
- toast0 7y agoTheir attempt to modernise their phone platform involved several rounds of effectively throwing away the existing library of developed software. If anything, that shows the value of backwards compatibility. Google supposedly didn't support windows phone, in part, because they were upset that they couldn't use the wince apps as a base. IE's backwards compat method was to simply embed the old version of the engine, and use it as necessary. That's not really a factor in the many reasons people mostly use IE to download a better browser for personal browsing, but is a major factor in why it was the corporate browser of choice for decades: it is expected to be able to continue to work the same way on a long term basis. Windows vs Linux usage rates on servers is mostly a statement of Linux is at least good enough, and a good enough solution with simpler (no) paid licensing is a clear win for ease of use. I haven't seen any Linux vs Windows server performance benchmarks in a long time; I'm assuming they're not that far apart, outside of whatever bits and pieces that either platform is truly bad at.
- _pmf_ 7y agoMy favorite of these kind of stories is https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii-chicken-and-egg-problems/ https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii... They introduced a special mode for the memory (de)allocator that allowed a (disallowed) pattern that SimCity used and that no longer worked with a new change, and used this mode when SimCity was running.
- crazyc 7y agoI think I've run into this bug while working on winevdm. https://github.com/otya128/winevdm/issues/322 https://github.com/otya128/winevdm/issues/322 I ain't trying to fix it.
- vkou 7y agoAnd yet, when I try to open my 7-year old resume in Office 365, what I see is a pile of document processor vomit on my screen. Ironically, Google Docs (Which was, for obvious reasons, not my first choice for opening an old Word document) parsed it in exactly the intended format.
- madduci 7y agoNow try it with MacOS. Can you open executables/files made with MacOS 10.0 in 10.15?
- icedchai 7y agoGood luck, right? No way your ppc32 binaries will run on x86-64.
- appstorelottery 7y agoI wish I could say the same for iWork. I can’t believe Apple is so naive in not supporting old document formats. Such a clear use case it’s ridiculous.
- robertoandred 7y agoHmm? You can open old document formats just fine.
- saagarjha 7y agoNewer versions will try to upgrade iWork '09 documents, but often they will not do a particularly good job.
- dwild 7y agoRecently I bought a large format printer for a project (a HP Designjet 488ca 36") and I was amazed when I found out that the drivers, dated from 1997, were still working on Windows 10. All you needed was to deactivate the signature verification, that didn't existed at the time. It feel crazy to me that my Windows 10 tablet can still print over a parallel port using a simple adapter.
- Aperocky 7y agoSince we’re talking about excel and VBA. Then does a program built in perl5/Java/C++ have that same problem? Assuming the code hasn’t changed for 20 years. I totally agree that Microsoft maintained compatibility to the point of breaking good engineering practices. But shouldn’t gcc/jvm count as programs too? And code developed for those program still runs assuming same input. It’s much more impressive with Microsoft because they are GUIs but functionally I think they’re pretty much the same.
- proc0 7y agoWith exception of Internet Explorer, for which backwards compatibility ended up being the bane of every UI developer's existence. It seems fixed for the most part now with Edge.
- computerex 7y agoMy work place still has to support IE 11. We were working on a skinning project a few months ago, and used CSS vars for practically every browser, but had to fallback to plain old stylesheet overrides for IE 11. It was painful.
- megablast 7y agoI wonder when the txt file was invented?
- bbanyc 7y agoIt's only in the last couple of years that Notepad's been able read txt files from Unix properly...
- EamonnMR 7y agoDoes that have a working RSS feed? The obvious link is broken.