Live data from Hacker News

Windows 1.0 and the WinAPI, 40 Years Later

medium.com

11–20 of 55 posts

Re: Windows 1.0 and the WinAPI, 40 Years Later

#11
post #5

While I haven't daily driven Windows in years and am usually the first to criticize Microsoft. You have to give credit where credit is due; Windows backwards compatibility is simply nuts. I had never run into compatibility issues with programs or games built for older Windows version, nor have I heard of anyone who did.

> I had never run into compatibility issues with programs or games built for older Windows version Try running a real-mode Windows program on a modern version of Windows.

Intel backwards compatibility has meant that real mode is still with us more of less, but to give context to people who aren't as familiar: real mode was superseded by protected mode with the introduction of the 80286, in 1982.

Re: Windows 1.0 and the WinAPI, 40 Years Later

#12
post #6

Winapi has exploded the last years in terms of functionality, still it was never sanitized to follow any C standard in terms of types.

To be fair, the C standard for types is pretty dreadful. How big is an int? A long? Want an integer type that matches the size of a pointer? did fix a lot of the issues, but people targeting an early C version don't have this header available.

Windows type names have stayed mostly stable since Win32, but some of them are still misleading. DWORD, UINT and ULONG are all 32-bit unsigned integer types. But in C#, "ulong" is a 64-bit type despite having the same name, this leads to making mistakes when transcribing Win32 type names into C# code.

Windows came up with its type names before existed, so you won't see any uint32_t in there, just DWORD.

Re: Windows 1.0 and the WinAPI, 40 Years Later

#13

While I haven't daily driven Windows in years and am usually the first to criticize Microsoft. You have to give credit where credit is due; Windows backwards compatibility is simply nuts. I had never run into compatibility issues with programs or games built for older Windows version, nor have I heard of anyone who did.

Lots of old games dont work anymore, but you can still run them by compabtibility modes.

16 bit programs dont seem to work at all though - you need wine or dosbox

Re: Windows 1.0 and the WinAPI, 40 Years Later

#15
> That was probably the most surprising part of the entire experiment: internally, Windows has changed enormously over the decades, yet the application interface has stayed so stable that code written in the mid-1980s still looks completely familiar.

Imagine if Linux stuck to that same level of interface compatibility. Think of the thousands of man-hours lost to rewriting perfectly good code just chasing the new shiny thing. In an OS built by volunteers we're wasting all developers' time to rebuild their software for the new interface, instead of having on developer spend time to keep the old interface working with the new implementation. And don't try to go "uhm akchyually Linux is the kernel and the kernel is stable", nobody cares. I mean the whole OS, from the kernel to the GUI layer. Is it any surprise that the best tools on Linux are all console programs using the POSIX interface, which has remained stable for the lifetime of the OS? I would go as far as to say that GTK is the Linux Desktop's original sin (followed closely by Qt). Motif and CDE were already established as the Unix GUI API, they should have been reimplemented with an optional separate GTK-native API. Maybe the next generation will learn from our mistakes.

Re: Windows 1.0 and the WinAPI, 40 Years Later

#16
post #15

> That was probably the most surprising part of the entire experiment: internally, Windows has changed enormously over the decades, yet the application interface has stayed so stable that code written in the mid-1980s still looks completely familiar. Imagine if Linux stuck to that same level of interface compatibility. Think of the thousands of man-hours lost to rewriting perfectly good code just chasing the new shin…

Ah but what about (dun dun dun) “innovation”

Re: Windows 1.0 and the WinAPI, 40 Years Later

#17
post #7
post #5

Earlier quoted context omitted.

> I had never run into compatibility issues with programs or games built for older Windows version Try running a real-mode Windows program on a modern version of Windows.

You just need to install 86Box as a compatibility layer. Everything runs perfectly. You only have to copy-paste one .exe file and then you can launch your app from Windows, that’s it. Sounds perfectly reasonable.

86box is a PC emulator, not a compatibility layer.

Re: Windows 1.0 and the WinAPI, 40 Years Later

#18
The M6 Bolt has been around since it was first standardized in 1898.

An M6 nut from then will fit a bolt made today, and vice versa.

Compatibility over a long time period isn't hard to achieve. Simply don't mess with the standard - don't break what doesn't need fixing.

Re: Windows 1.0 and the WinAPI, 40 Years Later

#19
post #2

This article has the bones of something interesting, but the style is too barren and the content really needs to be fleshed out more. I feel like if a human had written it, they would have thought of more to write. Like a human wouldn't be content with two paragraph section about K&R C without actually writing about difficulties encountered with this, parts that were interesting to implement and parts that weren't, e…

I respect your tastes but, as a human, I like the objectivity in the article. I actually couldn't care less about the backstory and I tend to skip articles that wander around without getting to the point. I prefer to read a book when I want that.

In other words, different people sometimes want different things...

Post reply on HN