Hacker News new | past | comments | ask | show | jobs | submit login
The Graphical User Interface Gallery (toastytech.com)
223 points by 6581 on March 26, 2023 | hide | past | favorite | 60 comments



One of the things that landed in my lap early on (System 8?) at Apple was the color picker. We were moving to PPC (PowerPC) and much of the HSL (hue, saturation, lightness)picker (HSV, hue, saturation, value?) was in raw 68K assembly.

Having never written assemble (68K or otherwise), I knew I was out of my league ... but I persisted.

Line by line, I replaced the assembler code with straight C. I was able to scare up a Motorola 68K assembler book around Apple and I recall that there was one assembler code I could not find: it turned out that it was a 68020-specific operator (and since we're talking color picker I suppose an '020 could be assumed — some kind of bit-shift-with-mask or some such weirdness, FWIW).

(I guess each pixel of the "color wheel" was a rather complex calculation that someone had found benefitted from a straight assembler implementation — keep in mind you could slide the brightness/value slider and the wheel would redraw in real-time on those underpowered Macs.)

Apart from getting the assembler over to straight C so the PPC compiler could have something to compile I also had to move over the API. Color pickers were plug-ins and had a couple of calls that, again, I believe had a different signature on PPC.

To learn the API and test it I wrote an HTML color picker that was essentially an RGB picker that gave you hex values instead of 0-255. Further I did a crayon picker as sample code (I thought this was kind of "Mac-like", right?).

I was a bit surprised when the HTML and Crayon pickers shipped. Then, much later, when someone ending up "porting" the crayon picker to Mac OS X I suddenly had regrets at having not spent more time coming up with good names for the crayons. (There was a general pattern though: naming the grayscale colors after minerals for example.)

I was almost fired I think though when my crayon picker shipped and it got out that I had slipped some T.S. Eliot quotes into the resource names in the Color Picker modules. I was called "into the office" and told that I had fucked up.

It's true though, I had fucked up. I had let the "Easter egg" thing get to my head and wanted to leave my mark. I think they had to quickly rev the OS after stripping out the offending T.S. Eliot quotes.

(There may though have still be an Easter egg lying around where the crayons would wear down until Jan 1 when they would be restored to full size.)

(Also, that was the first time I almost got fired. The second time would come when I was on the Photos team some 15 or so years later.)


You're going to leave us hanging with the Photos story?


I guess I have to reply now.

A feature was tossed in my lap for Photos. I think AppKit had added something new — maybe file handlers or something — and I was to wrap the photo export (for desktop Photos) with file handler calls. Sort of lock access to the file while writing, unlocking after — something like that.

I knocked it out rather fast but was told not to check it into the "master" branch for some reason — maybe they were trying to get some kind of stable branch for QA to test, I don't remember. In any event, the code sat in a branch and I went about other features.

Somehow months go by and suddenly we're about to ship when someone says, "Hey, where's the file locking?" Oh shit!

Well, I knew to check it in this late in the game (we had already done full suite testing etc.) was wildly irresponsible. The code was untested, I expected we would find an issue here or there. But I was told by management, nope, check it in. Somehow we needed that feature in that release of Photos.

Well, it didn't work. The export code was wildly threaded and ping-ponged between background processes. It was not easy code to wrap your head around.

For some reason one of the managers already had it in for me and it started to become clear to me that this was a kind of do-or-die moment for me. In fact, I rather think he hoped I would fail so he could give me the boot.

I confess a full on panic took a hold of me and I started experiencing levels of anxiety I had never experienced in my entire life. An engineer in Finland (I think he worked on AppKit) became my only life line. Or rather I should say he became my "smart friend". I put in consecutive 18 hours days, teleconferencing to Finland, trying to unwrap the mess that was my export code.

And as I recall, another one of the truly genius engineers that I was lucky enough to work with made some casual remark to me along the lines of:

"File handles have a bug: they store data in the thread you create them on, if you try to tear down a file handler on a different thread it crashes. The only way to guarantee you create and tear down the file handler on the same thread is to dispatch to the main thread before creation/teardown."

So easy for smart people.

Yeah, I survived again but I immediately looked for another team. The anxiety lingered I think for months after. (Thank you, Leo, again, for pulling me over to your team and maybe even saving my life — it was a weird thing that I needed major intestinal surgery not long after the Photos ordeal.)


Thanks for following up! A good story -- sorry you had to go through the stress though.


Were the quotes offensive, or was it just a case of someone having a stick up their behind?


Yeah, I suppose the latter. Apple was super-cautious (even then) about copyright violation (even though it was clearly outside copyright). I was too big for my britches.

“We have lingered in the chambers of the sea

By sea-girls wreathed with seaweed red and brown

Till human voices wake us... and we drown.”

(Maybe I should add that Apple was sort of circling the drain about this time. I wondered if it was the last OS we would ship and there was a kind of sadness if that were the case. Somehow the line resonated with me at the time — I felt we were a little like "drowners" (that would probably be more of a Suede reference).)


For whatever it's worth, people like you are why I stuck with Apple even when they were headed for bankruptcy. Quirky, human stuff like the crayon picker (which I remember a lot of people loved; the weardown effect especially) and easter eggs (which I spent much of my childhood hunting for in ResEdit) really defined the Mac experience for me at that point. It was one of the few platforms I can think of that actually had a sense of character.

I've been wondering this for 25 years: how did you generate the crayons? They were pretty realistic.


The T. S. Elliot estate is notoriously litigious, so I can definitely understand the oh shit moment.


> (There may though have still be an Easter egg lying around where the crayons would wear down until Jan 1 when they would be restored to full size.)

Missed opportunity to receive "new" crayons on Christmas Day!


Might have been Christmas Day. ;-)


You might also like my tiny collection of css stylesheets

* The Sims https://thesimscss.inbn.dev/

* Windows 98 https://jdan.github.io/98.css/

* Windows XP https://botoxparty.github.io/XP.css/

* Windows 7 https://khang-nd.github.io/7.css/

* Tufte https://edwardtufte.github.io/tufte-css/

Would love any suggested additions



(this is a collection of CSS stylesheets)


URLs won't get linkified in code blocks. If you want people to click them I suggest that you convert them back to normal text (delete the spaces at the start of the line).


I know I was being lazy because then I have to add two spaces between each list item. HN formatting is annoying. Updated tho


In my opinion, Windows 2000 was the best Windows GUI. Clean, elegant and to the point with no useless crap.

http://toastytech.com/guis/w2k.html


I have this theory that everyone will just pick a GUI from "their era" as the best; not because the UX was the best, but because it reminds them of the "good times".

In that regards, I'd say Windows NT 4.0 and macOS Snow Leopard would be mine!


There's far less difference between the NT4 and 2K GUIs than there is between Windows 10 and 11.


My "era" would be Win3.1, largely because i had a dinky 386 until the late 90s and yet i still find Win95 to be the superior UI. Aside from nostalgia i can't think of a good thing for the Win3.1 UX despite using it for years.


Think it is the best GUI in general, not just MS. Not perfect of course and many useful features invented later are missing but still ...


MacOS 10.5 was good, too: http://toastytech.com/guis/osx15.html

In both, just look at interface elements that are actually visible, and can be distinguished from one another. Buttons that look like buttons. Window chrome that looked like window chrome...


Leopard/Snow Leopard were pretty good, but I have one gripe with them: the gray used for "metal" (titlebars, toolbars, bottom bars, etc) was oddly dark (only visible in the last of the linked screenshots, due to them being taken while windows were inactive). To me it was reminiscent of the gloomy grays of Windows 95/98 (which themselves were replaced by lighter shades in Win2K), and back when those OS versions were current I had a theme installed that replaced all the dark metal with the lighter white-gray gradients found in titlebars and "unified" toolbars in 10.4 Tiger.

The most refined iteration of Aqua overall IMO is that of Mavericks, aside from its scrollbars. It still had plenty of dimension, color, shading, etc while also feeling a touch more sharp and professional than earlier versions.


Windows 2K was pretty good from a UI standpoint but the best GUI is old-school Mac OS. Apple got it right, the first time.

AmigaOS and NEXTSTEP are also leagues ahead of anything Microsoft did.


The lack of any Smalltalk or Lisp machine examples stands out to me. I guess those were always niche. But still, would be nice to consider adding for completeness.

On an unrelated note, I've always loved the look of the NeXTSTEP desktop. I know WindowMaker exists, but most modern Linux software nowadays simply clashes with its design and provides an awkward experience at best. It's not a desktop environment I'd use daily, but if enough graphical software played nicely with it, I'd definitely consider using it on Linux machines.


Yeah it’s kinda sad that GNUstep never really took off.


Yes, I believe the course of the history of the Linux desktop would have been very different had GNUstep took off, especially around the crucial years of 1996-1998. In our timeline KDE started in 1996 and GNOME started in 1997, and neither desktop adopted GNUstep, instead preferring the Qt and GTK+ GUI frameworks, respectively. However, suppose instead of KDE and GNOME being developed, the community rallied behind GNUstep, speeding up its development. Had GNUstep been completed by 1998 or 1999, this would've been revolutionary, especially if some type of Wine-like compatibility layer was built to support NEXTSTEP/OPENSTEP binaries, thus immediately providing the Linux desktop high-quality commercial applications such as those from Lighthouse Design (https://en.wikipedia.org/wiki/Lighthouse_Design), as well as providing a path for companies with legacy NEXTSTEP/OPENSTEP codebases to bring their code over to GNUstep running on Linux or one of the open source BSDs (IIRC, NEXTSTEP was built on top of a 4.2BSD userland running on the Mach microkernel).

Why did we end up with KDE and GNOME instead? I wrote about it in more detail here (https://mmcthrow-musings.blogspot.com/2019/06/some-thoughts-...), but in short, my opinion is that (1) GNUstep wasn't ready when KDE and GNOME were under development; the developers involved preferred to use existing GUI toolkits, and (2) there might have been a reluctance to using Objective-C in the mid-to-late 1990's.

Another fascinating consequence of a world where GNUstep took off is two competing implementations of the OpenStep API: Apple's (Cocoa) versus GNUstep's. Would Cocoa and GNUstep have diverged from each other, or would GNUstep have followed Cocoa like in our actual timeline? Would a GNUstep desktop have (1) stuck to OPENSTEP's UI conventions, (2) moved to Mac OS X's UI conventions, or (3) chartered a new path? We'll never know, but it's fascinating to think about what could have been.


On "being ready", Gimp first used Motif, then it created it's own toolkit, and Gnome took GTK+ to create Gnome. I think GNUStep was far more complete than the first GTK+ releases.

On Gnome being "corporate" founded, yes. First Helix Gnome and then Ximian Gnome. But Gnome with Sawfish was far more scriptable than Gnome 3 with JS.


No one can ever change my mind: QNX had/has the best designed GUI of all-time.

http://toastytech.com/guis/qnx621.html

The custom pixel font, the modest yet vibrant colours, the icon design, the entire desktop shell, the fact that it is actually a UNIX-compatible OS, from a time Windows had a Fisher-Price UI and Linux looked... quite utilitarian.

Every time someone posts a GUI gallery site like this one, the first thing I do is navigate to the QNX section, and just marvel at what looks like a BeOS/Windows 95 love child from an alternate universe, and get all nostalgic for what seems to be a niche embedded RTOS I and many other have never used.

I would love SerenityOS to make a couple steps closer to this aesthetic ideal than the Windows 95 look.


no doubt the realworld desk UI is the best of them all:

http://toastytech.com/guis/desk.html

it claims that it doesn't have a bootscreen, but there are desks in cabinets with a roll-up or fold down cover (i had one of those), which were even key-proteccted. (like password protected desktops today)


Ha! I love that one of the bottom photos shows a trash can literally placed on top of the desk itself.

Which makes me suddenly realize, how did it never occur to me before that the trash icon does not belong on the desktop?

I think, at least on my first Mac, I must have been too busy being even more confused about why the trash icon was also where you dragged a floppy to eject it.


Bookmarked for Reasons.


It's funny in a sad way how nearly every modern app seems to adhere to these guidelines

http://toastytech.com/guis/uirant.html


I was following along and thinking "wtf no", and then I realized..


any examples?


I'm hard pressed to think of one modern app that avoids all of these antipatterns.

But if you want some UX abominatione let's start with Slack, Chrome, VSCode, Unreal Editor, Blender. That's just a sampling from my frequently used apps.


This is cool.... but where is the lisp machine(s)? It's sort of there as it mentions xerox early stuff but not directly. Needs a whole category for symbolics on the left I reckon.


It’s quite tricky to find interesting screen shots of Symbolics stuff. Weirdly I found more interesting stuff in old product demonstration videos on YouTube than I did in still images.


As a would be game developer I quite like this game UI database: https://www.gameuidatabase.com/

It's really helpful when doing a deep dive on random GUI elements such as for example minimaps.


> http://toastytech.com/evil/index.html

Now that's a blast from the past... these days, everything is in the cloud, so we have server-side evil rather than client-side evil :-P


The rant on the Windows 11 page is so on-point:

http://toastytech.com/guis/win11.html

What isn't mentioned is that the spacing of the files in Explorer list view is much wider, and (at least for now) you can turn it back to the original spacing with the "compact" view option. A completely useless change for everyone not using a tiny touch screen as their sole pointing device. I absolutely hate this trend of hieroglyphic UI elements floating in a sea of white(or black)space...


In fairness to Microsoft's decision, more space around filenames is probably easier to read for the common man.

I hope this remains an option for power users like us who are just used to the old spacing, of course.


Another great site from back in the day is the GUIdebook Gallery: https://guidebookgallery.org/guis


Instead of Man Shouting at Clouds, this is Man Shouting at GUIs. Still pretty entertaining. :)


Some additional ones I would suggest are Open Look, latter days Solaris, and Irix.

EDIT Never mind about the CDE era Solaris. That's already there.


There are screenshots for IRIX 6.5 too: http://toastytech.com/guis/irix.html


Oh, I see. This brings back so many fond memories of my first programming job...


What decent reviews. So precise. However, I should note there is lack of reviews for MS Windows Servers (there is for server 2003 only).

Author should pay attention to server edition of recent (8,10,11) versions of MS Windows. There are not such silly advertisement and are much less annoying garbage apps and other spyware. I try to switch to server editions as the lesser evil where possible.


Man, this guy is a real edgelord.


A lot of late 90s to early 2000s geeks had extremely strong opinions and didn't keep them to themselves. Less of it now. Compare the typical Reddit to old Usenet posts.


It’s quite crazy how tangible nostalgia these evoke in me. Something about seeing a screen I used to watch a lot and have not seen since makes it really strong. I’d even argue it’s stronger than seeing old photos.


DECWindows wasn't just on VAX. It was also used on Ultrix workstations.


Mac OS 7 is the superior and ultimate aesthetic. Objectively. Which has nothing to do with the fact it was the first computer I had access to. No connection at all.


I’d like to see the Sun brand come back in some form. High end Linux workstations - with a custom UI and subtle hints back to SunOS.


Hadn't seen Windows 11, it looks like a somewhat tidier KDE, going full circle there.


> Hadn't seen Windows 11

Win 10, 11, iOS (at least 16), Android are not GUIs. They are (the worst) UX. /s


PalmOS isn't in there?



Stuck in the "Micro$haft Winblows" era. Off-putting.


Man that windows 3.1 control panel sent me


Why the hate for win11? Microsoft made some questionable changes to accounts etc, but the UI is actually pretty fine.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: