Electron apps and Apple Silicon
I’ve been looking into some new (to me) note taking apps, Craft and Obsidian, to compare to my go-to for the past few years, Bear. And one of the perceived “negatives” of Obsidian is that it is based on the Electron framework. Some make the argument that Electron apps are bloated and slow compared to native apps like Bear and Craft.
What I’ve been wondering is how much, if any, perceivable effect these performance and system resources issues actually have when running on Apple silicon M1 based systems. The M1 has real-world single-threaded performance that beats out many best-in-class x86 processors. There’s also analysis that shows how the overall design of the M1 system-on-a-chip benefits many common operations such as those for reference counting and JavaScript interpretation. So, perhaps these make the performance difference moot when looking at the specific use case of UI frameworks. UI code tends to be single threaded, so it would really benefit from a CPU design that was able to get data out of RAM, processed, and back into RAM with low latency, while doing all the book keeping (reference counting or garbage collection) that modern language runtimes require.
Anecdotally, performing basic UI tasks on my M1 MacBook Pro feels so much more responsive and fast than on other Apple laptops with technically higher spec Intel chips. So, perhaps Electron apps are fast enough. That’d just leave the native vs cross-platform UI consideration, which is a whole other can of worms.
Emulating Mac OS X Server 1.2
Before Mac OS X 10.0 and it’s Developer Preview, the first public appearance of Mac OS X was Server 1.0, codename Rhapsody, which was released in March 1999.
This is the first time we can see the descendent of the NeXTSTEP operating system dressed up in a Mac-like theme. I was able to get Server 1.2 running in QEMU.
Instead of the logo and progress bar, our boot screen is a text console.
I suppose this would be the first piece of software that allows you to log in to your Mac as root.
Instead of Finder we have Workspace Manager.
The Server 1.x releases didn’t yet have the Carbon framework, so only newly written apps using Yellow Box (which became Cocoa) were supported. OmniWeb was one of the few apps that could run in this environment.
The Apache web server is included out of the box.
Check out how this was marketed on Apple’s website in 1999. Some of the notable features are the Mach BSD kernel, POSIX compatible APIs, and 100% pure Java. Technologies to enable web serving were also emphasized, such as Apache, QuickTime Streaming, and WebObjects.
Let’s not forget, a virtualized copy of Mac OS 8 is present.
There you have it, Mac OS X Server 1.2! The 1.0 release debuted at a price of $499 and was met with a poor reception. Even in 1999, I can’t imagine that there was much of a market willing to pay this price to host websites and run Unix network applications on Apple hardware. Despite how impractical it might have been in its time, it is an interesting piece of history showing a critical step of the evolution of NeXTSTEP into the Mac OS X we are familiar with today.