One crucial part of my role as my family's de facto IT support was making sure my mom's FreeCell score record (which was just a Windows registry value) made it from each computer to the next across countless upgrades. She hated the new version that came out somewhere along the way because the card decks changed. (Windows 7? Windows 10? I switched to Linux full time in the XP era so my memory is a little fuzzy.) So I made sure to keep a backup of the Win32 version she was used to, and loaded it onto every machine she ever owned. It wasn't quite the 33 years of its lifetime, but probably close to 30.
Mom passed earlier this year, so the FreeCell score record won't ever increment again, but I still made a point to back it up one last time when going through her desktop this summer.
I deplore the day we lost the menu bar and replaced it with "mobile first" designs. The desktop UI was perfected around the time of Windows 95 and has gotten worse with every iteration since then. That, and the increased reliance on non-native frameworks and libraries instead of working with directly with the Windows API in C.
Long-press and the ••• menu in the overflow is a far superior UI paradigm than having a purpose built menu button.
90% of the time, even in Android that was pre-Honeycomb, the menu ended up just showing what would have been in the overflow anyways.
Android really did end up doing a lot better on the UX side that iOS with the contextual action bar and long-press to select. The idea of selection mode on iOS is still a weird process, and it's been mostly worked around since with higher PPI screens and touch sensors, instead doing a small area to "select" items on iOS
For me, long-press is one of the most infuriating UX features of mobile.
Probably the top on the offenders list for me is the copy-paste with the handles (which of course relies on long-press to trigger).
Hard buttons beat soft buttons for UX any time. You can use them with a glove, you can feel where the are located and you don't accidentally click because your finger was close enough for the capacitive touch sensor to trigger.
But they were not too far removed from how the standard Windows buttons looked. Office had its own look in a lot of ways back then, e.g. with the extra handles on the toolbars.
Now, if I take a couple of current applications, the differences are much bigger: from the top of my head, Explorer, Settings, Edge, Office, Steam, Spotify all have much more unique UIs.
They had a different look, but usage and UI conventions including keyboard navigation worked basically the same. Since the mixing of mobile and desktop with web technology, it’s the Wild West.
They are handy on a tablet. At the same time they are not since dynamic content might be loaded so the true size of the page is not shown to me by the scroll bar.
Scroll bars have always been both control (press here to move around) and indicator (how much of this document is there, and how far through it am I?).
Always-on-screen scrollbars are only useless if you think that indication is useless. Many people find it quite valuable.
Windows 95 was the last release that had serious user testing in controlled environments. (They were also cribbing lots of notes from NeXT, which helped.)
Something fundamentally switched around 1998-2002 in how interface design was viewed and approached. I started my career in software as a design summer intern at a company that made a Windows “groupware” application in 1997. They took pride in following the platform’s guidelines and actually testing their designs with real users being videotaped trying to use it. The company’s UI design department was tiny, but employed both an industrial designer and a cognitive scientist.
Five years later, everybody I met in UI design was a graphic designer who was drawing glossy website mockups in Photoshop. The elder lore of science-based UI design was completely lost when Web 2.0 happened and app designs became vibes-based. Even Apple couldn’t resist the tide. (Indeed Steve Jobs’s return to Apple in 1997 was a major contributor because he had developed a taste for user-hostile skeuomorphism like the brushed metal QuickTime Player.)
You’re not wrong that they aren’t directly correlated. I can see the argument though that making Notes look exactly like a yellow legal pad was not an automatic gain for usability compared to say, wordpad.exe with its super simple toolbar that showed you every option.
I think a fair take is that going full skeuomorphic may take some options off the table for you because they would conflict too much with the metaphor you’re leaning hard into.
I’m still 100% Team Forstall though, considering the massive violence that ios7 and its copycats have wrought on usability.
Although I started with 98, I think Vista / 7 was the peak. It was user friendly enough for newbies but didn't sacrifice advanced controls. Just organized them better to bring focus to the more used parts.
In terms of aesthetic, I love Windows 7-era Aero glass design (and to a lesser extent, Vista), but I also love the classic Windows 9x/2000 look. If I had to choose between the two, I'd go with Aero simply because of the start menu search bar.
Maybe on the OS side. However, Vista coincided with the release of Office 2007. That release of Office introduced the dreaded Ribbon, which made functions much harder to find.
I just learned that X Window System came out a year before the first Windows release. Interesting. Thanks for pointing out the compiz ripoff. It spurred me to look up the original release dates.
As computers, and smartphones got more popular, the audience got larger and the use scenarios got more and more distant from professional use. Dedicated professionals, like software engineers and stock brokers still prefer CLI and Bloomberg terminal even today. Ordinary office workers late 90s and early 00s window-based interfaces (the ones you're talking about). But smartphone users who just want to play their free games and scroll through facebook actually prefer the mobile-first UIs.
If you see this UI transition through the same lense as CLI-GUI one, a lot of things become more clear, in my opinion.
> Some apps eschew it, like browsers, but not because they are “mobile first”, but because they are trying to maximize screen space.
I don't think this is true. If anything, we see more oversized buttons and empty space nowadays. It's as if developers forgot that PC users have keyboards and mice. Remember, display resolutions and monitors were a lot smaller back then, and making space count was arguably more important 20 years ago than it is today.
Two things can both be true. An app can create more space around controls and get rid of the menu bar to save space.
The space also really has nothing to do with “mobile first”. It’s for touch screens (and also modern aesthetic that avoids crowded controls).
To be clear, I am not saying that all apps are optimizing for saving screen space. I was specifically talking about browsers, which are broadly optimized to give as much area as possible to the content.
You’re getting closer… “crowded” and “cluttered” are the most taboo words in the “UX” charlatans’ holy book. It’s so scary to them that they’ll sacrifice anything to avoid even a possible accusation of “crowdedness.”
It was a mildly useful point of view when they were designing things meant to be the first computer program someone might ever use. Like Microsoft Bob or Apple “At Ease.” But it’s idiotic to have things following that dogma as the only interface to tools that people need to use daily and will become expert users of.
To think some of us nerds complained about the Luna theme of XP as too “Fisher Price.” Fisher Price products look like industrial control panels compared to today’s contemporary operating systems and apps.
Ironic to say on hackernews which shows massive whitespace in the margins-- and if I try to widen my tab sidebar it actually indents the margin rather than eating into it.
One can look across the computing space as a whole and see that, it is surely not the case that we're "maximizing screen space".
Totally agree. But this does not take away from his point that maximizing screen space is the motivation in Firefox. In fact, all you have done is demonstrate why they are driven to do so.
Oh really? I, sadly, use nearly none. Open on my desktop right now: Slack, Outlook, Zoom, Windows Terminal, Edge, Claude, Obsidian, whatever the Windows image viewer is called, Cursor, and VS Code.
Only the last 2 have menu bars. And I can’t be certain that I didn’t dig through the preferences of one or both of them when I first installed them to tell them to knock off the bullshit and give me back the menus. Once in a while, there is an option buried somewhere like that.
In fairness I did not do a full inventory of all the apps I use. I see Word and VS Code. It may be less than I thought of I inventories everyone I regularly use.
A see some have gone the “browser” direction with tabs folded into the title bar and the menu bar dropped. Windows Terminal, File Explorer, and Notepad are all that style now.
Edit: Actually Notepad has the tabs in the titlebar thing but retained the menu bar and folded it into the command bar.
The Menu + quick access bar was good for developers but terrible for users, at least compared to the ribbon.
Ribbon is absolutely an improvement for users but is more work for the XML layout and learning how to organize it.
I'm rather convinced that Ribbon is still the best way to organize quick actions, show their shortcuts (Alt to see keyboard shortcuts), and also have enough text to describe all the buttons. But it'd be nice if it were easier to make good Ribbons.
Menu was braindead easy, albeit through ancient process of .rc files and whatnot
I think it's the other way around. Well organised menus can help users discover what functions are available at quick glance without having to hover each icons with the mouse to know what they do. For power users, the ribbons mean you can click directly on the function you need without having to click through menus and sub-menus.
I'm just not sure why it has to be one or the other. Look at NeXTStep. They had a menu bar (or I guess a menu panel) and a ribbon, although that term didn't exist yet, and it was definitely not 100% there yet.
> Well that can't be entirely true, the desktop experience on Windows 10 improved on Windows 8 by leaps and bounds.
In large part, windows 10's ui is more like that of windows 95 because it undid the changes away from the windows 95 paradigm that windows 8 did. Furthermore, those changes away from windows 95 in windows 8 were the exact kind of thing that might be called "mobile first".
>Are you nuts? Or wait.. you must be Gen Z then, never really used Win95.. If so, you cant make any statements in the subject.
What a terrible attitude to have as a comment reply. I've been using Windows since Windows 95, meaning I have plenty of experience and some emotional attachment to it and I'm as millenial with knee pain as they get, so not Gen-Z, and I can't imagine going back to using W95 today productively in a non-ironic way.
Windows 95 was perfect ... for what people did on computers back in 1995, not for what I do now in 2026 on the HW of today. May W95 rest in peace, but I'll take my modern OS for my moderns entertainment and productivity tasks on modern HW. There's no way in hell I'd want to go back to W95 even if that's what popped my cherry. People calming otherwise have rose tinted glasses and only remember the good parts of that era without the downsides.
Can you tell me more? What are you doing that good old classic windows would be barely usable? Im really curious, because I was using corporate Win10 and hell, it was really driving me crazy. Good that there is Cygwin, so I could move most stuff there. Classic Windows just works, and if you care, you can even customize it.
>Can you tell me more? What are you doing that good old classic windows would be barely usable?
In modern WIndows, from 7 onward, I can hit the meta key and type the first letters of the app I want to open, hit enter and boom, it's opened. I can mouse snap the two app windows side by side on my large monitor. I have 125% scaling so things don't look tiny on my 4k monitor.
Win 95 had none of that, the only way to launch an app was via shortcuts on the desktop or navigating a long and tedious star menu tree, which was perfectly fine for 1995 since you had ~10 app on your PC and you used it sparingly, but is really shit UX if your PC has 50+ apps like in 2026 and you use it for half a day. "Classic windows" only makes sense if you also use your PC in a classic way like it's the 90's, with like 1-2 concurrent apps opened at once, instead of 10+ leaving them on for days/weeks.
>Good that there is Cygwin, so I could move most stuff there.
Cygwin is CLI, not UI, which is what we were talking about. Are your complaints about the Windows CLI or about UI, because those are different topics you seem to mix up?
>Classic Windows just works, and if you care, you can even customize it.
I can also customize modern Windows, at least in the ways I need it to be productive. Sure, you can't customize it anymore in the W95 way, such as having a Matrix screensaver or Rollercoaster Tycoon theme on it, but I don't need that anymore since I'm old now and don't have time for that anymore. If I want a short hit of nostalgia I boot up my vintage Windows XP machine, but that's not my daily driver.
>Im really curious, because I was using corporate Win10 and hell, it was really driving me crazy.
If Win10 was driving you crazy, then "classic windows" would also drive you crazy even harder because it doesn't have any QoL over Win10. Please explain yourself here what you mean since you seem to be contradicting yourself. Or are you only talking about your limited corporate windows experience and and not what you can do as an admin on "home" windows?
> In modern WIndows, from 7 onward, I can hit the meta key and type the first letters of the app I want to open, hit enter and boom, it's opened.
I mean in theory I can also do that on my Win 11 machine... In practice if I actually performed those exact steps I will probably have edge open up with a web search of the letters I typed.
The amount of times I actually have to use the now even less user friendly way of finding an app in the start menu regardless is infuriating, give me both, a star menu that is deterministic and a search that works...
Just because I want the older stuff does not mean I have to give up some of the newer stuff.
> In practice if I actually performed those exact steps I will probably have edge open up with a web search of the letters I typed.
Not for me since I disabled web search feature of the start menu, but I get what you mean. I still prefer this option than being limited by the Win95 way. I always have 10+ apps opened at once. Having to manually launch them via the menu tree every time I boot up my OS would be a nightmare. This wasn't an issue in Win95 because I only had 16mb of RAM so I only launched one or two apps simultaneously, like for example MS Word for a school project and Winamp for listening to music while working and that's it. The kind of multitasking people do today without even thinking (50+ Chrome tabs, IDEs, Discord, Signal, Spotify, Steam, WSL, Plex, etc) was unheard of in Win95.
>Just because I want the older stuff
Yes, but you failed to explain exactly what "old stuff" UI did Win95 had that you don't have today and really need? You can still launch apps via the desktop shortcuts or the tedious start-menu tree view in Modern Windows as well like it's 1995, if that's what you miss from Win95, nobody forces you to use the broken search feature you dislike of modern windows.
Im still running Win2003 here, hence classic GUI (Win2000 like). Works like a charm :) I do some hacking (programing, reverse engineering) and playing games (old of course) on it.
Typical insulting boomer reply. Personal attacks, against the rules, and nothing useful added to the discussion. And the guy you insulted isn't even Gen Z...
> The desktop UI was perfected around the time of Windows 95
There’s no need to be hyperbolic or blinded by nostalgia. Yes, user interfaces have suffered several setbacks in the years since, but even if we concede every change was for the worse (they weren’t) it was by no means “perfected” and there was still plenty of area for improvement.
I agree with you generally but I don't think desktop UI is remotely close to perfected. Unless you mean the desktop as a skeumorphic concept than maybe.
I think we've actually completely stagnate on the human interaction side of OSes and only emacs has made any progress and then only for those willing to put the work in, not as a vanilla user ui.
> That is because, duh, my computer doesn’t have a CD-ROM drive. But you can use a small DLL (cdemu.dll) to emulate one with some fake audio data and actually get it to play audio
This makes me curious to know if CDPLAYER.EXE would still work (unmodified, without extra DLLs) with a real CD-ROM drive if you ran it on a Windows 11 machine with one installed.
The finished patch DLL ended up being a tour of the stuff that broke.
The game did launch on Windows 11 but the main issue was that the 8-bit pre-DirectDraw behaviour was broken - for 256 colour screens, Windows 11 resolvesld palette indices only once, but the game relies on being able to change the palette for fades etc. Most of the screeen ended up black, but you could see the animated parts just fine.
So most of fix ended up being to hook every draw call and implement a virtual GDI that acted like a graphics card of the day.
There was a 32-bit disc space check that overflowed, a couple of use-after-free crashes and some racey threading calls that can't have been tested on a machine with 2 CPUs.
Backwards compatibility from Microsoft was almost all there, and probably would have kept Orly running for a couple of subsequent Windows releases. But it relies on a developer meeting them half-way, it's not an emulation layer.
Your project's readme suggests that you tested on Proton. How poorly does the unmodified game run in Proton and/or Wine when you limit it to a single CPU? Very? Somewhat?
Along these lines, I'm always amused with the videos (e.g. https://www.youtube.com/watch?v=C8CIhCTVyqQ) showing you can update a [virtual] device from Windows 3.1 to Windows 11.
The oldest web app code of my own that I still maintain/evolve turned 20 this year, so yours is older than mine. I think it's largely a Ship of Theseus at this point, though I did just remove some code the other day that was absolutely untouched since 2008.
Speaking of FreeCell, a couple weeks ago I was visiting my 95yr-old grandmother and noticed she still plays oldschool FreeCell, specifically a variant that's really hard to track down now called FreeCell Pro [https://cards.fandom.com/wiki/FreeCell_Pro]
It inspired a weekend project. I always liked that you could swap the card backs in OG FreeCell and play with different "themed" decks, so I vibecoded something a little more modern. I got carried away and added a roguelite mode too (yeah I know how "Roguelite FreeCell" sounds). Anyway, it's free to play on the web, no ads: [https://freecellworlds.com/]
Basically a 1992 rogue-lite where each room is a different solitaire game. eg: front parlor == clock solitaire, first bedroom == regular solitaire, upstairs is blocked by freecell, etc...
It's a fairly rich concept, you have a ton of different gameplay bound together by a very loose plot/quest mechanisms (eg: blue key == blue door ; boss == win 2 games of solitaire).
Definitely worth sharing if you've got some solitaire fans in your life!
Yeah classic FreeCell only lets you move one card at a time. No stacks. A lot of FreeCell implementations have a QoL feature that let you move stacks if there's enough free cells or empty columns to allow the move.
I remember having installed Win32s package to our Windows for Workgroups 3.11 machines at Osmangazi University in 1995. The idea was that Windows, as a 16-bit operating system, could run a subset of Win32 apps that were compatible with the Win32s API surface. However, the release of Windows 95 had almost immediately made it obsolete. I'm sure it was useful in certain scenarios, but our only win was Freecell. :)
In 2026 does it still make sense to build new Windows app using Win32 API? I was building a simple image viewer similar to QuickLook on Mac using Win32. I found it's very responsive. The code is less readable compared to React. For me Win32 is a good option if the UI state machine is simple enough.
While Win32 tends to deliver the most resource-efficient and responsive apps if the complexity is not high, I have settled on the latest .NET + C# + Windows App SDK / WinUI 3. Making an app look good and fit into the modern Windows look is extremely hard with Win32 C/C++ and writing and maintaining it requires energy that I'd rather spend elsewhere. Besides, modern frameworks are making great strides in speed, efficiency and QoL features. .NET 11 is full of optimizations, for example.
I've tried this and found the WinUI deployment model frustrating and user hostile. There are like 5 open issues on GitHub where people seem deeply confused (I'm one of them) as to if it's possible to build a plain .NET .exe. Some people have tried it and it "works", others try it and get obscure errors, it's a real mess.
I think the sweet spot is WPF or actaully its FOSS version: AvaloniaUI. It is high level enough to be cross-platform and not stupidly verbose, however it is rather light pn resources. However, Win32 still wins in absolute minimalism.
yeah, it's still pretty good for a lot of things. I've found with AI it's now super easy to do native win32 apps really easily. It used to be doing all the plumbing was a PITA. There were wrappers to make it easier, but now you can do it directly. It means you get super performant, tiny binaries, that start instantly. Like windows should be. However, at home I've moved to linux a while back so way less useful to me now, though works fine with WINE. I still use it to make little utilities for work though.
Win32 API is great and responsive; ATL/WTL (and MFC) are still very useful abstractions with little cost. The biggest pain point is having to handle a lot of things manually, like DPI awareness (and themed controls). Even things like Emoji and other modern text features are not available through GDI and require DirectWrite iirc. Still, I'm surprised how useful it manages to be regardless how old it is.
Unless your name is Raymond Chen, you probably want to at least use ATL/MFC, which are frozen but still supported. Me, I'd take Qt any day, or wxWidgets if I wanted to go minimal.
I wouldn't, because I do not think we should put up barriers in our application between OSs (Nor have to maintain separate UI code bases for each OS you think might use it). So I use cross-platform kits. There are compromises, but I don't care about the looks native qualification compared to works anywhere. Yes, the software looks like an EGUI app (etc. Substitute Qt), instead of Looks native, but I appreciate how I'm not setting up barriers between OSs or making extra work.
So instead you are creating a bad UI for all of your users. That’s very Java application (or perhaps Electron these days) of you, but seems like a poor trade-off to me.
These days, with LLM assisted development, with relatively simple GUIs, I would go towards platform native GUIs per platform. And then all the shared business logic goes in a shared "core", with the GUIs only serving as "dumb" inputs and outputs, with all business logic shared between them.
LLMs are quite good at tedious tasks such as keeping multiple GUIs in different languages in sync with each other.
You still need to test all of those separate GUIs though so it's still costing more.
You also generally don't want them to actually be in sync because there are actual UX differences between platforms that you need to align with to really be native. If you don't follow that then what's the point?
I couldn’t disagree more, when it comes to UIs. They should match the platform they are being used on. Cross-platform always produces a very sub-par experience. But us developers tend to care primarily about what makes development easiest for us.
What does this mean in practice for software you write? What OSes to you build it for, and what OS or GUI-specific conventions to you follow which don't apply to others?
edit: Link software you wrote's installation instructions.
I also don't care how if things _look_ native, I care if the work like a native app. For example, on the rare occasions I touch Windows, I expect standard keyboard shortcuts to work. On macOS, I expect full integration with the accessibility frameworks and OS affordances like services.
A lowest common denominator idea of "everywhere" is just not that useful.
How do you handle this for your own software? Could you please link me to one of your project's websites and install instructions? What specifically do you find that one OS has that's mandatory for a good/native UIs that others don't?
I hear you on the native UI is better all things considered. I'm trying to figure out how that works in practice. I.e., to accompany a "cross-platform UIs are inferior to native ones", you would be effective to also include the workflows you use. In a realm where you choose options, eliminating one should come with illuminating another, as one must choose a path, and others could be eliminated for their drawbacks as well, leaving none available. What is your path here?
I mean, if I was building a windows app, I would. Microsoft always tries to convince people to stop using it, but Win32 keeps working.
If Microsoft ever makes something that actually meets all the needs that Win32 addresses, they'll probably build a compat layer and a) your win32 code will still work in compat mode, b) that new thing may be worth targeting.
I like that we are amazed by this. And yet all of my books from 34 years ago open up just fine (without cheating, no book opening emulator required!). I can even open a book on my shelf from 1896 without emulation. Not trying to troll too hard but I do think it is shocking how accustomed we've gotten to zero backwards compatibility in the world of software.
I think the oldest cartridge that would still work in a modern firearm would be .22 Short, which is from 1857.[1] It was developed into .22 Long, which was developed into .22 Long Rifle, which new firearms are still chambered in today. It wouldn't cycle a semi-auto though. Another contender would be .38 Long Colt, which is from 1875 and will work in firearms chambered in .38 Special or .357 Magnum.
The main causes of incompatibility were the transition from ball-and-powder to rimfire cartridges, then the transition from rimfire to centerfire. It's surprising how little firearms have changed in the past century. 9mm Parabellum is 125 years old. The Browning short recoil action (used by most handguns today) is over a century old.
Many militaries are still buying rifles that chamber a cartridge introduced in 1891 (7.62x54mmR). I'd argue a cartridge initially developed for a long bolt action rifle (Mosin-Nagant) that can now be fired out of a variant of a AK-patten select-fire bull-pup (Vepr) fits the analogy.
If you live in a country or region where the gauge didn't change, you can put a 1845 train on a modern track just fine. If the gauge did change, you'll need a train from another country. Standard Gauge was first applied in 1825 after all.
It is amazing, though. Wintel is basically a Matryoshka doll (Russian nesting dolls), where each version contains all the previous versions. (Just look at how a PC boots up!)
The dedication to compatibility is commendable, and you don't really see it on the other OS's. On that note, this is one of my favorite articles:
I often think old GUIs have a nice, functional look to them. This one is no exception. I notice (what I assume is) the shuffle toggle looks unfamiliar. This is from way back before that UI became a convention! I see the repeat icon has stuck around. So interesting!
Microsoft (and Apple) poured a ton of money into usability research in the early 90s and it showed. I vaguely remember the story through how many versions of the trash icon Microsoft went for Windows 95 to get it right.
For me it was a bit sad to see the mad and creative UX world of the homecomputer era being bulldozed over with the minimalist uniform results of the scientific usability research.
Little did I know that a mere quarter century later we are back were we once started and everyone as clueless as we were in the 90s goes overboard everywhere as if there was no tomorrow.
Yeah, and it sadly makes me miss the nicely ordered and easily usable world - I'm gettin' old I guess.
Functionality isn't hidden and buttons looked like buttons (instead of the modern trend of having unstyled text or tiny icons having a 50-50 chance of being a button).
The flat design trend really confused me. It really took off when high resolution screens started getting popular too, really made no sense. Wish we'd bring back Skeuomorphic design. Bring back that wood grain and metal textures. Bring back the fun UI's and app themes. Bring back real buttons!
Yeah I was kind of on the fence with this, but since the last version of Windows that shipped with NTVDM was Windows 10 32bit, and Windows 11 doesn't have a 32bit edition, I decided that using 3rd party tools would be cheating
I was aiming for something you could double click on vanilla Windows and would just work out of the box
I can't even run a binary from one Linux distro to the other, let alone one from a random Unix from the 80s. If a rebuild from source is allowed (which would need to allow modifications to the build system) that's a completely different game.
I had to run a Linux binary compiled for Ubuntu 10.something a few years ago. I couldn't get the drivers to work properly in libvirt and getting the binary to run on modern Linux was practically impossible, even with 32 bit support installed.
The downside of dynamically linked binaries: every tool of medium complexity needs a close-enough version of a common library, and once those get upgraded, the tool dies.
Most statically compiled version should work with a compatible enough libc, but I haven't seen many old programs like that.
Wine, on the other hand, runs tools from the 90s just fine, as long as they're 32 bit.
Many programs are dynamically linked to at the very least, libc. If the system libc is older than what the binary was developed for, it will often fail. Failures going the other direction are less common, but can and do still happen. If the binary was statically linked with everything it needs, you've got a pretty good chance it'll work, but that's a bit harder to do with GUI programs that need to interact with X or Wayland.
It depends. I've found for example, if i compile on Ubuntu or Debian, it will probably work on any Ubuntu, Debian, or Debian-based distro released at or newer than the one I compiled it on. There are other cross-compatible examples.
More broadly, there are things like manylinux and MUSL which allow cross-distro applications.
I agree - the model I use for why containers (Docker etc) exist is to abstract over Linux ABI incompatibility. I don't think they're a great solution, as it complicates software distribution. I should be able to distribute an executable and have it just work.
From the article, the time to beat is November 16, 1992. This might be possible on one of the BSDs, as FreeBSD and NetBSD both document support for running a.out executables with the 4.3BSD ABI. I guess it would depend on whether anyone had ported X11 to run on a BSD on i386 before then. Alternatively, maybe you'd be able to get something running on SCO OpenServer (if you count that as a current OS, it IS still getting security patches). It documents support for XENIX x.out binaries ( https://www.scosales.com/ta/kb/126704.html ) so you might be able to run software compiled in the late 1980s for XENIX/386.
NetBSD has excellent binary compatible with 80s "unix", the problem is most (all?) of the 80s unix platforms it supports aren't x86.
Current NetBSD still has good support for running SunOS binaries, though, including graphical ones. I'm certain you could get a SunOS 4.x binary from pre-1992 to run on NetBSD/SPARC. I've no idea how far back you could potentially go on NetBSD/m68k -- probably quite a ways, especially if the binaries are statically linked. SunOS pre-1988 was all static linking!
(Running "real" 4.3BSD binaries might be hard -- I think NetBSD/VAX defaults to ULTRIX compat, which is an either/or thing versus strict Berkeley Unix compatibility. Same binary format, similar but incompatible syscalls/data structures.)
Wrote a few small utilities in Win32 in the early 90s; still use them today unmodified, but most recently in WINE. I have some slightly older DOS utilities that are also quite usable.
> Sadly, Windows 11 can’t run 16-bit Windows programs by itself, because 64-bit Windows has no NTVDM, so we’re going to have to find something from the early NT era.
I remember a recent-ish post on here that really, I mean really, dived deep into this whole thing. It turns out that it was mostly a lack of willpower or maybe political that stopped Windows 64bit running 16 bit apps.
Somewhere in the kernel, with some obscure mechanism there is support for some kind of emulation that if implemented would allow it to run NTVDM and therefore these 16 bit apps.
The author of the post even had some kind of proof of concept of running a 16 bit DOS app directly under Windows 64 bit with this.
The details are blurry, but I believe that that had the Windows team really wanted to this emulation could have been built in and totally seamless.
I got the impression that this was actually a fairly new finding which is why I suppose no one has tried it.
I'm imagining a future where Microsoft's Copilot pops up in the corner, Clippy style, and gives you a message like, "Hey, I noticed you're running an app that looks like it was developed when Windows Vista was new. Want me to freshen that up for you?" Then it runs a decomp/recomp process that updates the app at the binary machine code level so that it looks and feels like a modern app without any translation layers or weird bugs. No more user complaints about Windows having an inconsistent GUI.
Related: "Chain of Fools : Upgrading through every version of windows (HQ)" (2011), they upgrade Windows 1 through to Windows 7, and demonstrate Doom II and Monkey Island working still at the end. Would be interesting to extend it to Windows 11.
I can tell that the person making the video never actually tried to run Doom on a real Windows 2000 or XP machine, otherwise they would have noticed that the game has absolutely no sound. Sound support for DOS games in Windows 2000+ was not built into the operating system. You needed to install a third party tool called "VDMSound" if you wanted sound blaster emulation for DOS games.
At one tine, Slackware Linux would not recompile binaries unless the program was patched. So there was a time you could find rather old binaries on Slackware, and maybe still on other distros.
I wonder what the oldest unchanged source/program running on Linux or BSD ? My vote goes to cat(1) :)
Mom passed earlier this year, so the FreeCell score record won't ever increment again, but I still made a point to back it up one last time when going through her desktop this summer.
90% of the time, even in Android that was pre-Honeycomb, the menu ended up just showing what would have been in the overflow anyways.
Android really did end up doing a lot better on the UX side that iOS with the contextual action bar and long-press to select. The idea of selection mode on iOS is still a weird process, and it's been mostly worked around since with higher PPI screens and touch sensors, instead doing a small area to "select" items on iOS
Hard buttons beat soft buttons for UX any time. You can use them with a glove, you can feel where the are located and you don't accidentally click because your finger was close enough for the capacitive touch sensor to trigger.
Still the best navigable phone I had when coupled with the Nova Launcher gestures.
This precisely coincides with the web developers being allowed to wrap stuff into "apps" in Electron and the like.
Now, if I take a couple of current applications, the differences are much bigger: from the top of my head, Explorer, Settings, Edge, Office, Steam, Spotify all have much more unique UIs.
Always-on-screen scrollbars are only useless if you think that indication is useless. Many people find it quite valuable.
Something fundamentally switched around 1998-2002 in how interface design was viewed and approached. I started my career in software as a design summer intern at a company that made a Windows “groupware” application in 1997. They took pride in following the platform’s guidelines and actually testing their designs with real users being videotaped trying to use it. The company’s UI design department was tiny, but employed both an industrial designer and a cognitive scientist.
Five years later, everybody I met in UI design was a graphic designer who was drawing glossy website mockups in Photoshop. The elder lore of science-based UI design was completely lost when Web 2.0 happened and app designs became vibes-based. Even Apple couldn’t resist the tide. (Indeed Steve Jobs’s return to Apple in 1997 was a major contributor because he had developed a taste for user-hostile skeuomorphism like the brushed metal QuickTime Player.)
I think a fair take is that going full skeuomorphic may take some options off the table for you because they would conflict too much with the metaphor you’re leaning hard into.
I’m still 100% Team Forstall though, considering the massive violence that ios7 and its copycats have wrought on usability.
https://www.softpedia.com/get/Desktop-Enhancements/Themes/Mi...
We could even have unified desktop.mobile codebases, with different GUI layouts. 280 North's objective-J/Cappuccino proved this.
IDK what we're even doing anymore.
If you see this UI transition through the same lense as CLI-GUI one, a lot of things become more clear, in my opinion.
What does this mean? I use lots of apps that still have a menu bar.
Some apps eschew it, like browsers, but not because they are “mobile first”, but because they are trying to maximize screen space.
I don't think this is true. If anything, we see more oversized buttons and empty space nowadays. It's as if developers forgot that PC users have keyboards and mice. Remember, display resolutions and monitors were a lot smaller back then, and making space count was arguably more important 20 years ago than it is today.
The space also really has nothing to do with “mobile first”. It’s for touch screens (and also modern aesthetic that avoids crowded controls).
To be clear, I am not saying that all apps are optimizing for saving screen space. I was specifically talking about browsers, which are broadly optimized to give as much area as possible to the content.
It was a mildly useful point of view when they were designing things meant to be the first computer program someone might ever use. Like Microsoft Bob or Apple “At Ease.” But it’s idiotic to have things following that dogma as the only interface to tools that people need to use daily and will become expert users of.
To think some of us nerds complained about the Luna theme of XP as too “Fisher Price.” Fisher Price products look like industrial control panels compared to today’s contemporary operating systems and apps.
If that was the case they wouldn't put giant margins around every UI element and dead space everywhere.
Ironic to say on hackernews which shows massive whitespace in the margins-- and if I try to widen my tab sidebar it actually indents the margin rather than eating into it.
One can look across the computing space as a whole and see that, it is surely not the case that we're "maximizing screen space".
The key element missing from this thread is that the Internet going from a text based to a multi-media (and increasingly video-centric) experience.
A lot of Internet users, at this point, do as much reading on their phone or laptop as I do reading on my TV (almost none).
Oh really? I, sadly, use nearly none. Open on my desktop right now: Slack, Outlook, Zoom, Windows Terminal, Edge, Claude, Obsidian, whatever the Windows image viewer is called, Cursor, and VS Code.
Only the last 2 have menu bars. And I can’t be certain that I didn’t dig through the preferences of one or both of them when I first installed them to tell them to knock off the bullshit and give me back the menus. Once in a while, there is an option buried somewhere like that.
A see some have gone the “browser” direction with tabs folded into the title bar and the menu bar dropped. Windows Terminal, File Explorer, and Notepad are all that style now.
Edit: Actually Notepad has the tabs in the titlebar thing but retained the menu bar and folded it into the command bar.
The Windows SDK samples like Hilo make use of C++ with COM.
Ribbon is absolutely an improvement for users but is more work for the XML layout and learning how to organize it.
I'm rather convinced that Ribbon is still the best way to organize quick actions, show their shortcuts (Alt to see keyboard shortcuts), and also have enough text to describe all the buttons. But it'd be nice if it were easier to make good Ribbons.
Menu was braindead easy, albeit through ancient process of .rc files and whatnot
Well that can't be entirely true, the desktop experience on Windows 10 improved on Windows 8 by leaps and bounds.
In large part, windows 10's ui is more like that of windows 95 because it undid the changes away from the windows 95 paradigm that windows 8 did. Furthermore, those changes away from windows 95 in windows 8 were the exact kind of thing that might be called "mobile first".
I still run Windows Classic GUI here, because its fast and confortable to use. Can you do better? Hmm, maybe. But im not conviced :)
What a terrible attitude to have as a comment reply. I've been using Windows since Windows 95, meaning I have plenty of experience and some emotional attachment to it and I'm as millenial with knee pain as they get, so not Gen-Z, and I can't imagine going back to using W95 today productively in a non-ironic way.
Windows 95 was perfect ... for what people did on computers back in 1995, not for what I do now in 2026 on the HW of today. May W95 rest in peace, but I'll take my modern OS for my moderns entertainment and productivity tasks on modern HW. There's no way in hell I'd want to go back to W95 even if that's what popped my cherry. People calming otherwise have rose tinted glasses and only remember the good parts of that era without the downsides.
In modern WIndows, from 7 onward, I can hit the meta key and type the first letters of the app I want to open, hit enter and boom, it's opened. I can mouse snap the two app windows side by side on my large monitor. I have 125% scaling so things don't look tiny on my 4k monitor.
Win 95 had none of that, the only way to launch an app was via shortcuts on the desktop or navigating a long and tedious star menu tree, which was perfectly fine for 1995 since you had ~10 app on your PC and you used it sparingly, but is really shit UX if your PC has 50+ apps like in 2026 and you use it for half a day. "Classic windows" only makes sense if you also use your PC in a classic way like it's the 90's, with like 1-2 concurrent apps opened at once, instead of 10+ leaving them on for days/weeks.
>Good that there is Cygwin, so I could move most stuff there.
Cygwin is CLI, not UI, which is what we were talking about. Are your complaints about the Windows CLI or about UI, because those are different topics you seem to mix up?
>Classic Windows just works, and if you care, you can even customize it.
I can also customize modern Windows, at least in the ways I need it to be productive. Sure, you can't customize it anymore in the W95 way, such as having a Matrix screensaver or Rollercoaster Tycoon theme on it, but I don't need that anymore since I'm old now and don't have time for that anymore. If I want a short hit of nostalgia I boot up my vintage Windows XP machine, but that's not my daily driver.
>Im really curious, because I was using corporate Win10 and hell, it was really driving me crazy.
If Win10 was driving you crazy, then "classic windows" would also drive you crazy even harder because it doesn't have any QoL over Win10. Please explain yourself here what you mean since you seem to be contradicting yourself. Or are you only talking about your limited corporate windows experience and and not what you can do as an admin on "home" windows?
I mean in theory I can also do that on my Win 11 machine... In practice if I actually performed those exact steps I will probably have edge open up with a web search of the letters I typed.
The amount of times I actually have to use the now even less user friendly way of finding an app in the start menu regardless is infuriating, give me both, a star menu that is deterministic and a search that works...
Just because I want the older stuff does not mean I have to give up some of the newer stuff.
Not for me since I disabled web search feature of the start menu, but I get what you mean. I still prefer this option than being limited by the Win95 way. I always have 10+ apps opened at once. Having to manually launch them via the menu tree every time I boot up my OS would be a nightmare. This wasn't an issue in Win95 because I only had 16mb of RAM so I only launched one or two apps simultaneously, like for example MS Word for a school project and Winamp for listening to music while working and that's it. The kind of multitasking people do today without even thinking (50+ Chrome tabs, IDEs, Discord, Signal, Spotify, Steam, WSL, Plex, etc) was unheard of in Win95.
>Just because I want the older stuff
Yes, but you failed to explain exactly what "old stuff" UI did Win95 had that you don't have today and really need? You can still launch apps via the desktop shortcuts or the tedious start-menu tree view in Modern Windows as well like it's 1995, if that's what you miss from Win95, nobody forces you to use the broken search feature you dislike of modern windows.
How are you running the classic GUI?
There’s no need to be hyperbolic or blinded by nostalgia. Yes, user interfaces have suffered several setbacks in the years since, but even if we concede every change was for the worse (they weren’t) it was by no means “perfected” and there was still plenty of area for improvement.
I think we've actually completely stagnate on the human interaction side of OSes and only emacs has made any progress and then only for those willing to put the work in, not as a vanilla user ui.
This makes me curious to know if CDPLAYER.EXE would still work (unmodified, without extra DLLs) with a real CD-ROM drive if you ran it on a Windows 11 machine with one installed.
The finished patch DLL ended up being a tour of the stuff that broke.
The game did launch on Windows 11 but the main issue was that the 8-bit pre-DirectDraw behaviour was broken - for 256 colour screens, Windows 11 resolvesld palette indices only once, but the game relies on being able to change the palette for fades etc. Most of the screeen ended up black, but you could see the animated parts just fine.
So most of fix ended up being to hook every draw call and implement a virtual GDI that acted like a graphics card of the day.
There was a 32-bit disc space check that overflowed, a couple of use-after-free crashes and some racey threading calls that can't have been tested on a machine with 2 CPUs.
Backwards compatibility from Microsoft was almost all there, and probably would have kept Orly running for a couple of subsequent Windows releases. But it relies on a developer meeting them half-way, it's not an emulation layer.
Pointing this out without a trigger warning is just rude ;-)
Some of us are older than we think, yo.
The oldest web app code of my own that I still maintain/evolve turned 20 this year, so yours is older than mine. I think it's largely a Ship of Theseus at this point, though I did just remove some code the other day that was absolutely untouched since 2008.
It inspired a weekend project. I always liked that you could swap the card backs in OG FreeCell and play with different "themed" decks, so I vibecoded something a little more modern. I got carried away and added a roguelite mode too (yeah I know how "Roguelite FreeCell" sounds). Anyway, it's free to play on the web, no ads: [https://freecellworlds.com/]
Basically a 1992 rogue-lite where each room is a different solitaire game. eg: front parlor == clock solitaire, first bedroom == regular solitaire, upstairs is blocked by freecell, etc...
Screenshots: https://www.mobygames.com/game/1986/solitaires-journey/scree...
It's a fairly rich concept, you have a ton of different gameplay bound together by a very loose plot/quest mechanisms (eg: blue key == blue door ; boss == win 2 games of solitaire).
Definitely worth sharing if you've got some solitaire fans in your life!
"In 1996, Computer Gaming World declared Solitaire's Journey the 72nd-best computer game ever released."
The bar has moved up a tad I think :D
LLMs are quite good at tedious tasks such as keeping multiple GUIs in different languages in sync with each other.
You also generally don't want them to actually be in sync because there are actual UX differences between platforms that you need to align with to really be native. If you don't follow that then what's the point?
edit: Link software you wrote's installation instructions.
A lowest common denominator idea of "everywhere" is just not that useful.
I hear you on the native UI is better all things considered. I'm trying to figure out how that works in practice. I.e., to accompany a "cross-platform UIs are inferior to native ones", you would be effective to also include the workflows you use. In a realm where you choose options, eliminating one should come with illuminating another, as one must choose a path, and others could be eliminated for their drawbacks as well, leaving none available. What is your path here?
If Microsoft ever makes something that actually meets all the needs that Win32 addresses, they'll probably build a compat layer and a) your win32 code will still work in compat mode, b) that new thing may be worth targeting.
The main causes of incompatibility were the transition from ball-and-powder to rimfire cartridges, then the transition from rimfire to centerfire. It's surprising how little firearms have changed in the past century. 9mm Parabellum is 125 years old. The Browning short recoil action (used by most handguns today) is over a century old.
1. https://en.wikipedia.org/wiki/.22_short
you can do that, in fact I know that Austria still has a mid 19th century train in regular operation (https://de.wikipedia.org/wiki/SB_alt_23)
if you're looking for commuter trains a lot of early 20th century ones still operate around the world.
https://m.youtube.com/watch?v=pQHX-SjgQvQ
It is amazing, though. Wintel is basically a Matryoshka doll (Russian nesting dolls), where each version contains all the previous versions. (Just look at how a PC boots up!)
The dedication to compatibility is commendable, and you don't really see it on the other OS's. On that note, this is one of my favorite articles:
Win32 is the only stable ABI on Linux
https://blog.hiler.eu/win32-the-only-stable-abi/
I think that's very funny. Speaking of which, EasyToon also runs in WINE, of course :)
https://news.ycombinator.com/item?id=50250809
It's a thing for making little black and white animations. (With GIF export.)
It was popular in the early 2000s and there was a subculture around it on animation forums.
English version (hey, still online!):
https://www.superfundungeonrun.com/easytoon/
Original version (Japanese, w/ screenshots):
https://web.archive.org/web/20020111185602/http://www.radium...
There's also a forked version on a French website (also available in English) with some extra features. But I like to keep it simple :)
https://www.flat2d.com/easytoon.html
For me it was a bit sad to see the mad and creative UX world of the homecomputer era being bulldozed over with the minimalist uniform results of the scientific usability research.
Little did I know that a mere quarter century later we are back were we once started and everyone as clueless as we were in the 90s goes overboard everywhere as if there was no tomorrow.
Yeah, and it sadly makes me miss the nicely ordered and easily usable world - I'm gettin' old I guess.
https://guidebookgallery.org/screenshots/cdplayer/
I always liked the look of the more complicated ones like this:
https://ctrl-alt-rees.com/2021-09-29-media-rack-download-win...
Honestly, if NTVDM was part of Windows then it seems fair to use it, even 3rd party clones.
I was aiming for something you could double click on vanilla Windows and would just work out of the box
And if you want to run them on Wayland, Worg will do that for you. https://github.com/jmalcolm137/Worg
The downside of dynamically linked binaries: every tool of medium complexity needs a close-enough version of a common library, and once those get upgraded, the tool dies.
Most statically compiled version should work with a compatible enough libc, but I haven't seen many old programs like that.
Wine, on the other hand, runs tools from the 90s just fine, as long as they're 32 bit.
More broadly, there are things like manylinux and MUSL which allow cross-distro applications.
As long as the container bundles the right libc, the program should work.
Current NetBSD still has good support for running SunOS binaries, though, including graphical ones. I'm certain you could get a SunOS 4.x binary from pre-1992 to run on NetBSD/SPARC. I've no idea how far back you could potentially go on NetBSD/m68k -- probably quite a ways, especially if the binaries are statically linked. SunOS pre-1988 was all static linking!
(Running "real" 4.3BSD binaries might be hard -- I think NetBSD/VAX defaults to ULTRIX compat, which is an either/or thing versus strict Berkeley Unix compatibility. Same binary format, similar but incompatible syscalls/data structures.)
I remember a recent-ish post on here that really, I mean really, dived deep into this whole thing. It turns out that it was mostly a lack of willpower or maybe political that stopped Windows 64bit running 16 bit apps.
Somewhere in the kernel, with some obscure mechanism there is support for some kind of emulation that if implemented would allow it to run NTVDM and therefore these 16 bit apps.
The author of the post even had some kind of proof of concept of running a 16 bit DOS app directly under Windows 64 bit with this.
The details are blurry, but I believe that that had the Windows team really wanted to this emulation could have been built in and totally seamless.
I got the impression that this was actually a fairly new finding which is why I suppose no one has tried it.
https://www.youtube.com/watch?v=vPnehDhGa14
At one tine, Slackware Linux would not recompile binaries unless the program was patched. So there was a time you could find rather old binaries on Slackware, and maybe still on other distros.
I wonder what the oldest unchanged source/program running on Linux or BSD ? My vote goes to cat(1) :)
Otoh, /usr/bin/true has only minor changes since initial import (1994) https://github.com/freebsd/freebsd-src/commits/main/usr.bin/...
/usr/bin/false is similar