I thought some of this was wrong but it turns out the BeBox lore is leaking into my NeXT memories. Wikipedia says it was a 60830@25MHz.
The power of Objective-C?
Sort of. I kind of like objective-C in that it gets more fundamentals right than it gets wrong - better than fucking reimplementing Java and then hoping with years and millions of dollars it will perform acceptably - it’s quite sad given how naive ObjC is at it’s core. But iPhone probably would have been successful even with plain C or C++ with a decent library.
Smartphones and PDAs like Palm and PocketPC arguably did relatively more with much less - (this is not to diminish the UX achievement or advancement of iPhone so please put the pitchforks down).
iPhone OS actually could multitask with jailbreaking, though you quickly discovered the limitations of that amount of RAM.
The power of AOT compiled languages instead of plain interpreter.
Apparently the original Android as it was bought by Google, was planned to use JavaScript, then they pivoted into Java, and it took decades until they got any kind of good AOT/JIT story (starting with Android 5).
On the other hand going with a basic Assembly interpreter for Dalvik, when Nokia and Sony-Ericson already had JIT compilers for Symbian, while claming Android was better, no comments.
Likewise when comparing Symbian Series 60 3rd edition phones with Android.
By the time they ditched the MO-drive as the default, NeXT already had a bad taste in people's mouths, esp. at the introductory price of US$6.5K.
Assuming you mean the 'xclock' binary you'd find in Xorg installations, it seems to use about 8MB of RES memory. But keep in mind that it drags in a bunch of libraries (objdump shows Xaw, Xmu, Xt, X11, Xrender, Xft, xkbfile and the math and C libraries as direct dependencies) and those drag their own (ldd shows 26 libraries) and all of that stuff add to the memory overhead for their own purposes even if at the end xclock didn't use them. Chances are an xclock reimplementation that talked the X11 protocol directly, used only the minimum functionality needed to display the clock lines and was statically linked to some minimal C library without any external dependencies would use much less memory.
Though even that would probably feel as too much memory since a lot of the memory used by a program in a Linux system relies a lot on what is already there - including the hardware and kernel drivers.
(which is also why these articles comparing memory usage between various desktops tend to make zero sense as they measure the entire system memory usage, the largest part of which is outside the control of the desktop environment in the first place and in most cases will vary between different computers even with the same distro)
For being something to brag against, you used XEmacs, I guess. Or X-compiled Emacs, in order to be a "big" accomplishment. UXTerm+Emacs under the CLI was "big", but manageable; the X build (even the Athena or Lucid one) wasn't a light thing at all.
On the other hand, modern OSes do a pretty good job of hiding resource abuse with excellent memory management.
Oh, yes, it was tight. But it was eminently usable (including Project and Interface Builder) with 20MB of RAM.
Heck, I think XClock is challenged to run in 20MB today.