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.
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.
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.
> 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.
Super daft and somewhat insulting take. 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 not Gen-Z, and 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. "Classic windows" makes sense if you also use it in a classic way, meaning launching and using one full screen app opened at a time, maybe two and that's it, with the desktop being the center piece from which you launch apps, instead of the browser, like it is today.
>Good that there is Cygwin, so I could move most stuff there.
Cygwin is CLI, not UI, which is what I was 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. You can't customize it anymore in the W95 way, such as having a Matrix or Rollercoaster Tycoon theme on it, but I don't need that anymore since I'm old and don't have time for that anymore.
>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. Please explain yourself here what you mean since you seem to be contradicting yourself. Or do you just mean corporate windows and not home 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...
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!
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!
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.
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.
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.
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.
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.
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.
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.
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 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.
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
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.
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.
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.
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.)
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.
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) :)
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.
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.
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.
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.
If that was the case they wouldn't put giant margins around every UI element and dead space everywhere.
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 :)
Super daft and somewhat insulting take. 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 not Gen-Z, and 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. "Classic windows" makes sense if you also use it in a classic way, meaning launching and using one full screen app opened at a time, maybe two and that's it, with the desktop being the center piece from which you launch apps, instead of the browser, like it is today.
>Good that there is Cygwin, so I could move most stuff there.
Cygwin is CLI, not UI, which is what I was 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. You can't customize it anymore in the W95 way, such as having a Matrix or Rollercoaster Tycoon theme on it, but I don't need that anymore since I'm old and don't have time for that anymore.
>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. Please explain yourself here what you mean since you seem to be contradicting yourself. Or do you just mean corporate windows and not home windows?
How are you running the classic GUI?
Pointing this out without a trigger warning is just rude ;-)
Some of us are older than we think, yo.
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!
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...
LLMs are quite good at tedious tasks such as keeping multiple GUIs in different languages in sync with each other.
A lowest common denominator idea of "everywhere" is just not that useful.
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.
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
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.)
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