Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How is Apple able to make quality software?
11 points by capl 11 months ago | hide | past | favorite | 23 comments
So this might be a little controversial and I'm not trying to start a flame war, but rather look at how Apple produce their software in an objective way. Because as a developer and tech-user with attention to detail, I cannot look away from the fact that Apple is able to create software products that are 1) Performant / resource efficient 2) Reliable 3) Very user friendly and beautiful (GUI) This interests me because I personally strive to create high quality software, especially when it's user-facing (client side).

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.




The quality of their software has declined significantly in the past 15 years. That said, it's still pretty good and this is probably down to reducing scope.

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.


Anyone remember iTunes on Windows?


shudders


Android was a pure empire defense reaction by Google. Quality was not the priority but market capture through low prices was the game. Just like what they did with free email/free video. Youtube did not end up producing better Quality than Netflix/HBO/Disney. And gmail totally lost opportunities to become social media or whatsapp.

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.


I don't think the comparisons with Gmail/YouTube are really fair or accurate. YouTube doesn't have any real major competition - and not only did they never want to become a subscription-based premium streaming service, they didn't even really have a path to doing it when it started. The entire point of YouTube is user-uploaded content. Google did try expanding into selling some real films and such several years ago, but I can't imagine that ever being a major money-maker. At the end of the day, it's unmatched at what it 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.


Starting with their founders, Apple believed in quality and Microsoft believed in quantity. That's where control of hardware matters.

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


> 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.

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.


Well, I called it a hack rather than an emulation layer, and I am open to it being more formal than a patch every time the OS is upgraded. As you noted “I do not track” such things.

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.


Microsoft expended a huge amount of effort trying to get windows cross platform, with MIPS, Alpha and other versions of Windows NT.

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.


I mean, yeah, there are multiple reasons. Outside of MS having to write something that's universally compatible with way more hardware, it's also that Windows is very anachronistic and backwards-compatible in comparison to macOS. Their OS has a lot of baggage, which makes porting difficult but makes customers (especially corporate ones) happy. You can still run plenty of NT programs built in the 90s on Windows 11, while macOS will be happy to obsolete some piece of software after only a few years. This is also what leads to the whole UI inconsistency thing - the reason why you can still get the NT 3.5 dialogue boxes is because Windows has an immeasurable amount of stuff packed into it.

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.


IMHO, legacy code and backward compatibility.

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.


So many factors concur. - Windows still has 2x the market of Apple in the US only. - Windows has lots of legacy code and architecture to maintain. - Apple users are acquainted with a learning curve, while Windows users are prone, they just want features, not quality. - Apple prices are A LOT HIGHER, if not double or triple, especially for non-US buyers. - Custom hardware makes it much easier to avoid pure bugs, because hardware predictability is a good thing for software reliability.


They have a team of 10K+ developers but that doesn’t mean you shouldn’t be able to make great software. I think you need to remember they take their time to release things and don’t rush. So maybe the software you use today was 3 years in the making.

You don’t need pixel perfect software, it’s all about how it works and the problems it solves for the end customer.


iOS is generally more efficient than Android due to ARC, AOT compilation and the way it aggressively manages apps.


Android apps are compiled AOT when installed.


iOS is no better than Android when it comes to devices that have similar prices


OP's question wasn't comparing price though, rather resource usage. Generally, an Android phone with the same specs as an iOS device will require more resources to perform the same tasks.


that's true, the only price point an android will be more resource efficient / performant is around 200$ mark, but only since there is no iPhone at that price point. I think it's unfortunate and partly or entirely due to the fact Android is built upon Java instead of native code.


I’m sure fewer hardware choices is a huge factor.

I’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.


OK the butterfly keyboard was a big mess but it's now cleared. Apple Silicon macs don't seem to suffer from any hardware issues to speak of. I heard M2 Airs of early batches had thermal issues throttling the CPU but it's been quickly fixed.


Have to admit the Apple Silicon is a win. They get credit for that one, hands down.

He asked about software though.

Feel like it used to rule. Not any more.


> iOS is good. macOS is shit.

> 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."


UX wise:

Excel > Numbers

Powershell > zsh

Explorer > Finder




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: