top | item 17505247

A Clone of the Classic Mac OS Finder in Modern Cocoa and Objective-C

172 points| dannyow | 7 years ago |bszyman.com | reply

76 comments

order
[+] munificent|7 years ago|reply
It's crazy how deeply embedded the old Finder is in my subconscious. I opened the app and instantly noticed several differences from the original, even though I haven't run the old System 7 Finder in, what, twenty years?

Things I noticed:

- Command-W doesn't close a window.

- No animation when opening windows.

- Dragging outside of the close button while still holding the mouse button (uh, trackpad button) down should revert it to the non-pushed state until the cursor re-enters it.

- Obviously, the fonts shouldn't be anti-aliased. The metrics on Chicago look weird too.

I am so filled with nostalgia right now I don't know what to do with myself. I loved the System 7 Finder. It's one of the things that got me into UI design and pixel art.

[+] fineline|7 years ago|reply
Lovely little project. I saw a few little discrepancies too - I guess that's fine, but when I read "functional recreation" on the project site, my mind registered "fully functional recreation".

It's been a while since I used a classic Mac, having defected to Windows in the 90s and not returning until the 2010s, but I'm pretty sure (?) I could:

* drag the bottom right corner to resize the window * drag the scrollbar thumb to scroll * drag a rectangle inside a finder window to select multiple items (see below) * click the top right corner to "maximise" (kind of) the window

Regarding dragging rectangles, I remember my awe as a kid when I first saw a GUI system (a Lisa being demoed at an Apple expo in the early 80s) and I rushed home to write a "drag a rectangle" program on the Apple 2 (a ][ or a //e - my Dad was a dealer for a while) with game paddles :) Hence why I think you could do that in the old Mac finder.

[+] toufka|7 years ago|reply
Yep. Weirdly, felt the same. I immediately tried to resize the window from bottom corner, use arrow keys to select, and then command arrow-down to open the file, and command-I to get-info. They didn't work, but that's okay. It's weird, the window was close enough in my memory to invoke those old navigation mechanisms and expect them to work even though I haven't used a classic MacOS in a very long time.
[+] saagarjha|7 years ago|reply
Command-W works out-of-the-box in Cocoa, but it looks like the author has unfortunately customized the menu bar and disabled this feature.
[+] masklinn|7 years ago|reply
The author notes that they mostly re-created it from screenshots and having an OS9 box running, so I expect they just missed the more subtle behaviours.

Now I was going to say you should report these issues on the project[0]'s bug tracker, but it looks like the author has disabled the bug tracker.

[0] https://bitbucket.org/bszyman/classic-finder-app/overview

[+] inspector-g|7 years ago|reply
> A smaller, more secondary reason for creating this was to sort of observe how a Classic-era app might run on today’s hardware. As our hardware gets beefier, it seems like our software gets chunkier. If we could port yesterday’s software to run natively on today’s hardware, how might it perform? Very fast, I’d imagine.

This reminds me of a small personal project I decided to take on a couple years ago. I did it both as an experiment in performance and for nostalgia's sake.

I bought as pristine an example as possible of Apple's last machine that could run Mac OS 9 natively, a PowerMac G4 (the 2003 MDD vintage). I upgraded the CPU and RAM as much as possible (dual 1.25 GHz G4, 2GB RAM), and replaced the hard drive with as fast an SSD as the system could handle (don't recall which SSD model at the moment).

In short, I was astonished at the "snappiness" of the system. Boot time took no more than 15 seconds. Shutting down took only about one second. The system entered sleep mode near-instantly. Opening and closing windows within an app happened as fast (or faster) than I could react to it. Opening and closing classic apps themselves was at least an order of magnitude faster than what I would consider reasonable analogs from today.

I already had a decent amount of disdain for how much time I spend on a modern Mac/iOS device waiting for the system to catch up to my inputs, but it got worse after having done this experiment. A simple example, but which pains me near-daily, is the creation of folders in the modern Finder. After typing cmd+shift+N, I often must wait an amount of time that must be on the order of several hundred milliseconds before typing the name of the folder (if I don't wait, the first couple characters I type will be missing from the folder's name, which is yet another time-sink to go back and fix the missing characters). And this is on an iMac Pro! I tried this exact test on my old-but-quick PowerMac G4, and I never had to wait nor lost any chars no matter how quickly I attempted to type the command and the subsequent folder name.

[+] HyperTalk2|7 years ago|reply
Classic Mac OS always perfectly queued any number of input events and executed them in order exactly as expected, regardless of how much the system was lagging. None of the input would be silently discarded or mishandled like it is today. You could easily do something like this:

>type command-N to create a folder

>type its new name "abc"

>type command-O to enter folder "abc"

>type command-N to create another folder within folder "abc"

>type its new name "123"

>type command-O to enter folder "123"

>change mind and type command-W and command-delete to put folder "123" in the trash

>type command-shift-W to close all windows

>type "Macintosh HD"

>type command-O

>type "Applications"

>type command-O

>type "Adobe Photoshop"

>type command-O

>type command-N to create new Photoshop document

>type command-S to open the save dialog

>type command-D to navigate to desktop

>type "abc" to select your new folder

>type command-O

>type the return key to save the new document

It doesn't matter whether the system was able to keep pace with your input. You were guaranteed to have a new folder named "abc" and your new Photoshop document already saved inside.

Now in OS X (I'm sorry, "macOS"), you need to pause at every step and wait until it's done executing before doing the next. Otherwise your input will be lost in the multithreaded abyss.

I hate it.

[+] SyneRyder|7 years ago|reply
>A simple example, but which pains me near-daily, is the creation of folders in the modern Finder. After typing cmd+shift+N, I often must wait an amount of time that must be on the order of several hundred milliseconds before typing the name of the folder

If it helps, I might have a solution for this one - if you have Dropbox installed, something about it causes delays when creating new folders or right-clicking anywhere in the Finder. I used to get beachballs for a half-second when creating a new folder, but after doing a clean install of macOS & not installing Dropbox, everything is snappy.

But I totally agree with your main point. I have a Pismo PowerMac G3 and was similarly surprised at its UI speed compared with modern machines. (I'd love to try again with BeOS or Haiku on that machine sometime too...)

[+] 1996|7 years ago|reply
Some of us run an old OS on old machines because it just works.

I got an old Thinkpad for an experiment with coreboot. I found it sexy, so I upgraded it like you did.

It feels "snappier" than anything else I have tried. All I need is SSH, and a confortable keyboard, so has become my work computer! No maintenance, no distractions. Just ssh.

I highly encourage everyone to do the same experiment you did, to realize how poorly we are served by current offerings. (or maybe I am just in retrocomputing. I don't know. I just like it)

[+] vidarh|7 years ago|reply
My "favourite" (well, it's really a bit depressing) example is that I can boot AROS (an AmigaOS API reimplementation) in its Linux-hosted form on Linux, into Workbench (Amiga desktop) using a startup script that then automatically starts an Amiga GUI based text editor called FrexxEd on my laptop in less time than it takes a near pristine terminal-only Emacs install to start on the same machine.

If this was some incredibly primitive editor it'd be one thing, but it's an editor with a bytecode compiled C-like extension language build in, as well as AREXX support, so it's fully programmable.

[+] sgt|7 years ago|reply
> A simple example, but which pains me near-daily, is the creation of folders in the modern Finder. After typing cmd+shift+N, I often must wait an amount of time that must be on the order of several hundred milliseconds before typing the name of the folder (if I don't wait, the first couple characters I type will be missing from the folder's name, which is yet another time-sink to go back and fix the missing characters). And this is on an iMac Pro!

That is very odd. I tried this a few times now on my 4 year old MacBook Pro and it was instantaneous each time. No delay. I wonder what may be causing the delay on your side. iMac Pro is after all absolutely state of the art.

[+] treve|7 years ago|reply
I had the same experience running Ubuntu on a (somewhat again) Macbook air. After that, my next machine was a XPS13.
[+] Joeri|7 years ago|reply
I’ve learned many things throughout this journey. One of them is that modern user interfaces are absolutely gigantic compared to the user interfaces of the earlier days.

I mean, I guess it kind of has to be that way, in the age of high DPI monitors and bad eye sight, but WOW. Run Classic Finder just once and you’ll see what I mean.

Classic mac os ran at 72 dpi, compared to the modern 1x dpi of 96 to 110, so those controls were actually much bigger on screens of the day.

[+] pseingatl|7 years ago|reply
It looks like the link is undergoing some problems:

RuntimeException (500) Failed to read /var/www/bszyman-dc/user/pages/07.feed/listing.md: Unexpected characters near ": '/blog'" at line 3 (near "items: 'page.descendants': '/blog'").

[+] djsumdog|7 years ago|reply
Seems weird to run a React app for a static content blog. (I think this is React?) and also to run it in development mode in production.
[+] jinonoel|7 years ago|reply
I really miss the top-right button in classic Finder windows, the one that resizes the window to just the right size to show all it's contents.
[+] JonathonW|7 years ago|reply
The zoom button (option-click the green traffic light button, or double-click the title bar) in the (current) macOS finder is still supposed to do that, if Finder's in its "spatial" mode (turn off the toolbar and, optionally, switch to view "as Icons"-- back in the day, there was a window control that did this in one step).

It's actually broken in current macOS, though-- using the zoom button on a Finder window ends up forcing some of the content underneath the title bar where you can't reach it. Guess that shows how much attention Apple's putting into the "little details" of their operating systems these days (very little, it seems).

[+] city41|7 years ago|reply
I also miss the destructive button being on the opposite side of the window from the non destructive button. In many ways, classic Mac OS was more thoughtful and usable than OSX.
[+] 1996|7 years ago|reply
I absolutely love the idea (fitting more data on the screen, ala Tufte), the execution (brings back memories of trying MacOS on an emulator) and the design (flat!! yes!!)

I don't understand why flat design gets such a bad press.

One of the best thing I have ever used was a classic windows phone. Efficient, organized, straight to the point.

Maybe it is just part of a retrocomputing trend, but I really like that.

[+] sjwright|7 years ago|reply
> I don't understand why flat design gets such a bad press.

Classic MacOS isn't flat design, there are hard borders all over the place and (by today's standards) subtle cues of dimension throughout.

Flat design gets bad press because when it is done poorly, usability suffers greatly. I love the iPhone—and I like many aspects of its current UI aesthetic—but the UX design is woeful in many places, with countless problems that arose when the dumped the "classic iOS" appearance.

Most critically is that unless you're an experienced user of iOS, it is no longer obvious what (or where) is tappable. Buttons used to be obvious through design, now they are just text on the screen, sometimes in a different colour. Sometimes they're on the bottom, sometimes they're top-left, sometimes top-right. This all used to make sense when there were title bars and arrow-shaped back buttons that visually reacted when touched; now it is an ambiguous mess.

[+] drb91|7 years ago|reply
I wouldn’t call OS9 or before flat—sans compositing, sure, but the interface is skeuomorphic and textured: the file icon still has a corner bent, the window has a rough texture to indicate draggability.

Note, I’m not a designer, Skeuomorphism is probably not the right word, but it’s certainly not flat.

[+] etaioinshrdlu|7 years ago|reply
Awesome. The author should make it such a great general purpose file manager that we all switch to it. That would be awesome :)
[+] randcraw|7 years ago|reply
Especially if it let you change the sort order of files. Apple's goofy nonstandard ordering drives me nuts.
[+] GeekyBear|7 years ago|reply
One of the things that I missed for quite some time from the classic Finder was the ability to drag Finder windows to the edge of the screen where they would shrink down to a tab you could click to instantly access that folder or hover over while dragging objects so the folder would expand and allow you to drop objects into that folder.

However, the sidebar and spring loaded folders now offer functionality that is largely the same.

[+] apple4ever|7 years ago|reply
This is really cool. I'd love to contribute, but it doesn't seem that easy with the way he has BitBucket setup.
[+] ChristianGeek|7 years ago|reply
Meh...if it doesn’t involve constantly swapping floppy disks while you’re launching an app then it’s not a true emulation.
[+] johnzim|7 years ago|reply
What a great project!
[+] golem14|7 years ago|reply
Made me wish for my trusty Atari ST GEM TOS again. And the excellent SM124 monitor.

Probably pure nostalgia, but I did like the simpler and more monochrome UI back in the days...

[+] extc|7 years ago|reply
Your site is down
[+] dreamcompiler|7 years ago|reply
> It will really (probably poorly) perform Finder operations on your computer’s file system.

Ha! Given how horrifically bad the OSX Finder has always been at file management (not to mention its numerous unfixed bugs), I can't imagine how it could be much worse.

[+] fit2rule|7 years ago|reply
I believe that the abandonment of the Finder interface by Apple (both old and new) is having a devolutionary effect on computing. Generations of people are learning to use computers without understanding the differences between a folder and a file system, with little skill in maintaining a hierarchical system for organising their material, and so on.

Also, the fact that, today, you can't open a folder full of files and have the Finder window auto-size to fit the content (in list view, for example) is an indicator that Apple just doesn't seem to care about keeping this paradigm.

And thats a pity, in my opinion, because it makes stupid users. Being able to fundamentally organize ones cache of documents on filesystem is a key first step in gaining computer literacy, since very few computer systems out there achieve anything without a folder and a few files in it.

So, I'm quite encouraged by the effort to rebuild Finder - if we had an open source Finder alternative out there, which works to exceed the features of the built-in Finder, I'm quite sure I'd contribute to it. The devolution of Finder, and of filesystems in general, is personally a pet peeve of mine - there is nothing more frustrating than having to explain the concept of organising ones data to a user who really should know these things already - but don't, because Apple (and others) have decided the user doesn't need to have control over the fundamental building blocks of their system.

This deleterious effect, devolutionary in nature, of 'technologically refined simplicity for the sake of the user' is a real issue. I expect to see more examples of its negative effect in the coming decade ..