Ask HN: How is Apple able to make quality software?
e.g. How come Microsoft is beaten by Apple in terms of resource usage in their desktop OS? Is Objective-C somehow the reason for Apple's software quality success, while Windows is put together from a messy combination of C++ and C#? Yes, Apple creates both the hardware AND software, and their M-chips are largely the reason behind the 2x battery life over Windows laptops seen in recent times, but macOS/Linux-distros are still way less bloated and more resource efficient than Windows, right...? At least that's the impression I'm left with after being a user of all three desktop OS-es. Microsoft is struggling with porting their OS to ARM and I can only imagine it's thanks to it being so convoluted and messy. Also, when Microsoft creates a new desktop application, they reach for Electron or React Native over their own in-house GUI frameworks. While Apple always create their apps natively with Objective-C or the more recent Swift.
Also, if you look at iOS vs Android, iOS has always been lightyears away in terms of performance, reliability and resource efficiency. C# and Java are closely related performance wise, is this a reason behind Apple's superior software performance?
I'm just trying to organize my own thoughts and learn on the topic of high quality consumer-facing software, and I appreciate any comments and thoughts on the topic.
23 comments
[ 4.1 ms ] story [ 62.8 ms ] threadI’m also not wholly convinced they do better software. There are some things that are better, but having been a True Believer in the past, and having left…
I can tell you that from my own experience, the software quality is nowhere near what it was 10+ years ago.
The butterfly keyboards were the final straw for me. The attitude of Apple at shoveling that crap out the door, and gaslighting their user base with the usual “a small number of users have experienced this issue” bullshit… I was done.
iOS is good. macOS is shit.
They force feed you their drivel, and by God, you’ll love it.
Oh yeah, and you’ll preach the Apple gospel while you’re at it.
He asked about software though.
Feel like it used to rule. Not any more.
> They force feed you their drivel, and by God, you’ll love it.
Reminds me of someone once saying "At Apple we know what our users want, and we give it to them good and hard."
Quality always drops if the main goal is market capture ie get as many cows into the corral focusing only on total milk flow, and afterwards worry about the quality of milk of individual cows.
Apple had already captured and locked in those who could afford higher prices (people who have 1000 bucks to throw away don't care about price). Add in the Telco's subsidizing iphone to play their own empire defense games, and Apple Quality got into the hands of enough people.
Microsoft still has had better software people and stacks than Apple, it just lost the consumer market (windows phone was any day better than android too bad they gave up on it - 2008 gfc influenced lot of decisions). For large businesses what Microsoft cloud/stacks offers is a thousand times better than what everyone else does.
Same with Gmail... How would Google transform a conventional email service into social media and manage to convince users that they wanted that change? It's like saying that MS failed to transform Outlook into social media, or that Apple failed to turn iCloud Mail into something similar. Besides, Google did make separate attempts to make both a messaging service and a social media platform, but both failed.
But to be fair, Apple has also been slipping in the UI department a bit - it's always jarring to see programs have different title bar button sizes (and title bar sizes themselves), as if it's not standardized. Also, their stubbornness to stick to the whole "workspaces, not windows" paradigm from the 90s makes macOS extra annoying to use.
Excel > Numbers
Powershell > zsh
Explorer > Finder
MS hacked in backwards compatibility with old apps and hardware, whereas Apple transitioned hardware from Motorola to PPC to Intel to Apple Silicon with incredible, seamless emulation layers as bridges.
Post-Jobs, Apple isn't really the same. For all the "simplicity" of iOS, way too much is hidden from sight like "pull down or swipe to reveal search boxes, scroll bars", etc, settings are hidden, redundant, or impossible to figure out, text is impossible to select without a mouse or trackpad, things happen after a delay (WTF) and items move around, so I am playing whack a mole. A simple "paste" key or screen button would save hours of poking and waiting around. Half my clicks are by mistake, trying to scroll. (Pages finally adopted a "lock text" toggle to fix this, a small miracle that was a few minutes work to create in HyperCard), Command C and V are adjacent on keyboards and I always hit the wrong one. (Same for the pop up copy/paste on iOS ) But mainly, the upgrade cycle is too short ( to support each year's new phones) to do sufficient testing. And it's still better than windows. My non geek brother got so fed up with windows updates repeatedly breaking his device drivers that he's now happy with Ubuntu, bought from and supported by Dell.
Microsoft seems suspended somewhere between the past, because their life depended on bespoke apps, and their "all cloud, all AI" future. No doubt, they are too large to have any kind of focus like Apple has shown. And Apple has killed off both good and bad software products. The good being HyperCard and the bad being iTunes, now part of Finder, their second worst software product behind iTunes.
When MacOS turns further into iOS, especially with lockouts, I'll go back to Linux, which I have used on and off for a long time.
Quality at Apple is the ghost of Steve Jobs. Fragility and ugliness are the ghost of the (still living) Bill Gates. The present at both seems to be a bit of scrambled eggs as they try to create an elusive future less real visionaries on board.
All IMO
Microsoft also has incredible seamless emulation layers, not for CPU differences, but for older technologies. I expect that Windows can still render bitmap fonts at least in some old applications, for example, while MacOS won’t.
The difference is that Apple tears down the bridges they build after a few years, hugely decreasing their maintenance burden. They don’t have to test compatibility of any 68k or PowerPC applications, for example, or apps using Carbon, try to have only one font layout engine on the system (I think they currently have that, but am not 100% sure), one html engine (again, I do not track things, but Microsoft likely has at least 2, one for the browser and one the ancient help system used in ancient applications) etc.
My HyperCard withdrawal has been alleviated in a way by an MacOS9 emulator that runs on the latest (as of Ventura) hardware and software, and which runs HyperCard. I just found it to be a great prototyping tool for GUI apps that passed messages between objects, quite different from straight procedural programming.
Sure, some business probably wouldn’t want to run a legacy app in an emulator of an earlier version of windows. So much legacy software out there.
They also created .NET and essentially forced it on all new development efforts.
It turns out that x86 stuck around way longer than anyone expected, AMD really helped when they came up with a good 64 but instruction set that extended things to the present.
It's sad that so much effort went into .NET, and it really wasn't necessary, in the end.
We'll likely end up using WASM instead for safe cross platform general purpose computing.
Apple's software only runs on their hardware, they regularly exclude recent and capable devices from running the latest versions and they deprecate and ignore insustry standards liberally (OpenGL, Vulkan, Nvidia GPUs). This makes their software much simpler to write. Compare that to Android, which runs on anything, or Windows, which I hear can do crazy stuff like run apps from the 3.X days.
You don’t need pixel perfect software, it’s all about how it works and the problems it solves for the end customer.
Apple users are forced to update so that stuff keeps running smoothly, now, try to tell a Windows 11 user that he can no longer run that piece of historical software that was so cool in Windows 95 ;)
Besides that, no Windows version was fully developed from scratch, all of them still have legacy code bloating around.